Version 1.16.0-dev.0.0

Merge commit '00e6b92e2099ad2055a857020add7837c903874d' into dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7695a3d..f8fe8f0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,18 @@
+## 1.16.0
+
+### Analyzer
+
+*   Static checking of `for in` statements. These will now produce static
+    warnings:
+
+    ```dart
+    // Not Iterable.
+    for (var i in 1234) { ... }
+
+    // String cannot be assigned to int.
+    for (int n in <String>["a", "b"]) { ... }
+    ```
+
 ## 1.15.0 - 2016-03-09
 
 ### Core library changes
@@ -54,10 +69,18 @@
 
 [configuring the analyzer]: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer
 
-## 1.14.2 - 2016-02-09
+## 1.14.2 - 2016-02-10
 
-* Fixes a bug where pub would download packages from pub.dartlang.org even when
-  a different hosted URL was specified.
+Patch release, resolves three issues:
+
+* VM: Fixed a code generation bug on x64.
+  (SDK commit [834b3f02](https://github.com/dart-lang/sdk/commit/834b3f02b6ab740a213fd808e6c6f3269bed80e5))
+
+* `dart:io`: Fixed EOF detection when reading some special device files.
+  (SDK issue [25596](https://github.com/dart-lang/sdk/issues/25596))
+
+* Pub: Fixed an error using hosted dependencies in SDK version 1.14.
+  (Pub issue [1386](https://github.com/dart-lang/pub/issues/1386))
 
 ## 1.14.1 - 2016-02-04
 
diff --git a/DEPS b/DEPS
index 38ccb51..97ab2cc 100644
--- a/DEPS
+++ b/DEPS
@@ -48,11 +48,11 @@
   "http_multi_server_tag" : "@2.0.0",
   "http_parser_tag" : "@1.1.0",
   "http_throttle_rev" : "@a81f08be942cdd608883c7b67795c12226abc235",
-  "idl_parser_rev": "@6316d5982dc24b34d09dd8b10fbeaaff28d83a48",
+  "idl_parser_rev": "@7fbe68cab90c38147dee4f48c30ad0d496c17915",
   "intl_rev": "@a8b480b9c436f6c0ec16730804c914bdb4e30d53",
   "jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
   "json_rpc_2_tag": "@1.1.1",
-  "linter_rev": "@ce7aa0ec03ee738f4d314138228e0b4742845810",
+  "linter_rev": "@f90572f9be203a0ec9744aa3fb3b9509e3ca143d",
   "logging_rev": "@85d83e002670545e9039ad3985f0018ab640e597",
   "markdown_rev": "@4aaadf3d940bb172e1f6285af4d2b1710d309982",
   "matcher_tag": "@0.12.0",
@@ -92,7 +92,7 @@
   "when_tag": "@0.2.0+2",
   "which_tag": "@0.1.3+1",
   "web_components_rev": "@0e636b534d9b12c9e96f841e6679398e91a986ec",
-  "WebCore_rev": "@5ecb723fd9ffcc0d108f5e0e24d12b8b3df7b200",
+  "WebCore_rev": "@a86fe28efadcfc781f836037a80f27e22a5dad17",
   "yaml_tag": "@2.1.5",
   "zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
   "barback-0.13.0_rev": "@34853",
@@ -129,7 +129,7 @@
       Var("chromium_git") + "/chromium/src/third_party/ply.git" +
       Var("ply_rev"),
 
-  Var("dart_root") + "/third_party/idl_parser":
+  Var("dart_root") + "/tools/idl_parser":
       Var("chromium_git") + "/chromium/src/tools/idl_parser.git" +
       Var("idl_parser_rev"),
 
diff --git a/dart.gyp b/dart.gyp
index 918e5d6..9ac4105 100644
--- a/dart.gyp
+++ b/dart.gyp
@@ -28,7 +28,7 @@
         'runtime/dart-runtime.gyp:dart_noopt',
         'runtime/dart-runtime.gyp:dart_precompiled_runtime',
         'runtime/dart-runtime.gyp:dart_product',
-        'runtime/dart-runtime.gyp:dart_no_snapshot',
+        'runtime/dart-runtime.gyp:dart_bootstrap#host',
         'runtime/dart-runtime.gyp:run_vm_tests',
         'runtime/dart-runtime.gyp:process_test',
         'packages',
diff --git a/pkg/analysis_server/lib/plugin/analysis/analysis_domain.dart b/pkg/analysis_server/lib/plugin/analysis/analysis_domain.dart
index 821a81e..5040087 100644
--- a/pkg/analysis_server/lib/plugin/analysis/analysis_domain.dart
+++ b/pkg/analysis_server/lib/plugin/analysis/analysis_domain.dart
@@ -33,7 +33,7 @@
     show AnalysisService;
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analyzer/src/generated/engine.dart'
-    show AnalysisContext, ComputedResult;
+    show AnalysisContext, ResultChangedEvent;
 import 'package:analyzer/src/generated/source.dart' show Source;
 import 'package:analyzer/task/model.dart' show ResultDescriptor;
 import 'package:plugin/plugin.dart';
@@ -62,14 +62,14 @@
 abstract class AnalysisDomain {
   /**
    * Return the stream that is notified when a new value for the given
-   * [result] is computed.
+   * [result] is computed or invalidated.
    *
    * This method should be used by plugins that need to perform some additional
    * processing after analysis has completed. One example would be a plugin that
    * needed to send a notification to the client because some data was now
    * invalidated.
    */
-  Stream<ComputedResult> onResultComputed(ResultDescriptor result);
+  Stream<ResultChangedEvent> onResultChanged(ResultDescriptor result);
 
   /**
    * Schedule sending the given [service] notifications for the given [source]
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 887c34b..cc068b3 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -20,6 +20,7 @@
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/services/correction/namespace.dart';
 import 'package:analysis_server/src/services/index/index.dart';
+import 'package:analysis_server/src/services/index2/index2.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/file_system/file_system.dart';
@@ -106,6 +107,11 @@
   final Index index;
 
   /**
+   * The [Index2] for this server, may be `null` if indexing is disabled.
+   */
+  final Index2 index2;
+
+  /**
    * The [SearchEngine] for this server, may be `null` if indexing is disabled.
    */
   final SearchEngine searchEngine;
@@ -305,6 +311,7 @@
       this.resourceProvider,
       PubPackageMapProvider packageMapProvider,
       Index _index,
+      Index2 _index2,
       this.serverPlugin,
       this.options,
       this.defaultSdkCreator,
@@ -313,6 +320,7 @@
       EmbeddedResolverProvider embeddedResolverProvider: null,
       this.rethrowExceptions: true})
       : index = _index,
+        index2 = _index2,
         searchEngine = _index != null ? createSearchEngine(_index) : null {
     _performance = performanceDuringStartup;
     defaultContextOptions.incremental = true;
@@ -1270,6 +1278,14 @@
         // Protocol parsing should have ensured that we never get here.
         throw new AnalysisException('Illegal change type');
       }
+
+      AnalysisContext containingContext = getContainingContext(file);
+
+      // Check for an implicitly added but missing source.
+      // (For example, the target of an import might not exist yet.)
+      // We need to do this before setContents, which changes the stamp.
+      bool wasMissing = containingContext?.getModificationStamp(source) == -1;
+
       overlayState.setContents(source, newContents);
       // If the source does not exist, then it was an overlay-only one.
       // Remove it from contexts.
@@ -1289,6 +1305,11 @@
         List<Source> sources = context.getSourcesWithFullName(file);
         sources.forEach((Source source) {
           anyContextUpdated = true;
+          if (context == containingContext && wasMissing) {
+            // Promote missing source to an explicitly added Source.
+            context.applyChanges(new ChangeSet()..addedSource(source));
+            schedulePerformAnalysisOperation(context);
+          }
           if (context.handleContentsChanged(
               source, oldContents, newContents, true)) {
             schedulePerformAnalysisOperation(context);
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 7bfb354..df31682 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -362,9 +362,9 @@
 class AnalysisDomainImpl implements AnalysisDomain {
   final AnalysisServer server;
 
-  final Map<ResultDescriptor, StreamController<engine.ComputedResult>>
+  final Map<ResultDescriptor, StreamController<engine.ResultChangedEvent>>
       controllers =
-      <ResultDescriptor, StreamController<engine.ComputedResult>>{};
+      <ResultDescriptor, StreamController<engine.ResultChangedEvent>>{};
 
   AnalysisDomainImpl(this.server) {
     server.onContextsChanged.listen((ContextsChangedEvent event) {
@@ -373,11 +373,12 @@
   }
 
   @override
-  Stream<engine.ComputedResult> onResultComputed(ResultDescriptor descriptor) {
-    Stream<engine.ComputedResult> stream = controllers
-        .putIfAbsent(descriptor,
-            () => new StreamController<engine.ComputedResult>.broadcast())
-        .stream;
+  Stream<engine.ResultChangedEvent> onResultChanged(
+      ResultDescriptor descriptor) {
+    Stream<engine.ResultChangedEvent> stream =
+        controllers.putIfAbsent(descriptor, () {
+      return new StreamController<engine.ResultChangedEvent>.broadcast();
+    }).stream;
     server.analysisContexts.forEach(_subscribeForContext);
     return stream;
   }
@@ -398,8 +399,8 @@
 
   void _subscribeForContext(engine.AnalysisContext context) {
     for (ResultDescriptor descriptor in controllers.keys) {
-      context.onResultComputed(descriptor).listen((result) {
-        StreamController<engine.ComputedResult> controller =
+      context.onResultChanged(descriptor).listen((result) {
+        StreamController<engine.ResultChangedEvent> controller =
             controllers[result.descriptor];
         if (controller != null) {
           controller.add(result);
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index 3b2c724..b3623b0 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -459,6 +459,7 @@
         Index index = server.index;
         AnalysisContext context = unit.element.context;
         index.index(context, unit);
+        server.index2?.indexUnit(unit);
       } catch (exception, stackTrace) {
         server.sendServerErrorNotification(
             'Failed to index: $file', exception, stackTrace);
diff --git a/pkg/analysis_server/lib/src/provisional/completion/dart/completion_plugin.dart b/pkg/analysis_server/lib/src/provisional/completion/dart/completion_plugin.dart
index f1a8a05..d5b4916 100644
--- a/pkg/analysis_server/lib/src/provisional/completion/dart/completion_plugin.dart
+++ b/pkg/analysis_server/lib/src/provisional/completion/dart/completion_plugin.dart
@@ -57,7 +57,7 @@
   /**
    * Return a list containing all of the Dart specific completion contributors.
    */
-  Iterable<DartCompletionContributorFactory> get contributors =>
+  Iterable<DartCompletionContributor> get contributors =>
       _contributorExtensionPoint.extensions
           .map((DartCompletionContributorFactory factory) => factory());
 
diff --git a/pkg/analysis_server/lib/src/search/element_references.dart b/pkg/analysis_server/lib/src/search/element_references.dart
index 112db5d..0608764 100644
--- a/pkg/analysis_server/lib/src/search/element_references.dart
+++ b/pkg/analysis_server/lib/src/search/element_references.dart
@@ -91,8 +91,14 @@
   SearchResult _newDeclarationResult(Element refElement) {
     int nameOffset = refElement.nameOffset;
     int nameLength = refElement.nameLength;
-    SearchMatch searchMatch = new SearchMatch(MatchKind.DECLARATION, refElement,
-        new SourceRange(nameOffset, nameLength), true, false);
+    SearchMatch searchMatch = new SearchMatch(
+        refElement.context,
+        refElement.library.source.uri.toString(),
+        refElement.source.uri.toString(),
+        MatchKind.DECLARATION,
+        new SourceRange(nameOffset, nameLength),
+        true,
+        false);
     return newSearchResult_fromMatch(searchMatch);
   }
 
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 dc66c45..3fdd5f9 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -700,10 +700,14 @@
       return;
     }
     ClassElement targetElement = constructorElement.enclosingElement;
-    String targetFile = targetElement.source.fullName;
-    ClassDeclaration targetClass = getParsedClassElementNode(targetElement);
+    // prepare location for a new constructor
+    AstNode targetTypeNode = getParsedClassElementNode(targetElement);
+    if (targetTypeNode is! ClassDeclaration) {
+      return;
+    }
     _ConstructorLocation targetLocation =
-        _prepareNewConstructorLocation(targetClass);
+        _prepareNewConstructorLocation(targetTypeNode);
+    String targetFile = targetElement.source.fullName;
     // build method source
     SourceBuilder sb = new SourceBuilder(targetFile, targetLocation.offset);
     {
@@ -753,11 +757,15 @@
     if (targetType is! InterfaceType) {
       return;
     }
+    // prepare location for a new constructor
     ClassElement targetElement = targetType.element as ClassElement;
-    String targetFile = targetElement.source.fullName;
-    ClassDeclaration targetClass = getParsedClassElementNode(targetElement);
+    AstNode targetTypeNode = getParsedClassElementNode(targetElement);
+    if (targetTypeNode is! ClassDeclaration) {
+      return;
+    }
     _ConstructorLocation targetLocation =
-        _prepareNewConstructorLocation(targetClass);
+        _prepareNewConstructorLocation(targetTypeNode);
+    String targetFile = targetElement.source.fullName;
     // build method source
     SourceBuilder sb = new SourceBuilder(targetFile, targetLocation.offset);
     {
@@ -1990,13 +1998,17 @@
         }
         ClassElement targetClassElement = targetType.element as ClassElement;
         targetElement = targetClassElement;
-        // may be static
+        // prepare target ClassDeclaration
+        AstNode targetTypeNode = getParsedClassElementNode(targetClassElement);
+        if (targetTypeNode is! ClassDeclaration) {
+          return;
+        }
+        ClassDeclaration targetClassNode = targetTypeNode;
+        // maybe static
         if (target is Identifier) {
           staticModifier = target.bestElement.kind == ElementKind.CLASS;
         }
         // prepare insert offset
-        ClassDeclaration targetClassNode =
-            getParsedClassElementNode(targetClassElement);
         prefix = '  ';
         insertOffset = targetClassNode.end - 1;
         if (targetClassNode.members.isEmpty) {
diff --git a/pkg/analysis_server/lib/src/services/index2/index2.dart b/pkg/analysis_server/lib/src/services/index2/index2.dart
new file mode 100644
index 0000000..a3da32b
--- /dev/null
+++ b/pkg/analysis_server/lib/src/services/index2/index2.dart
@@ -0,0 +1,456 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/summary/format.dart';
+import 'package:analyzer/src/summary/idl.dart';
+import 'package:analyzer/src/summary/index_unit.dart';
+import 'package:collection/collection.dart';
+
+/**
+ * Return a new [Index2] instance that keeps information in memory.
+ */
+Index2 createMemoryIndex2() {
+  _MemoryPackageIndexStore store = new _MemoryPackageIndexStore();
+  return new Index2(store);
+}
+
+/**
+ * Return the index of the first occurrence of the [value] in the [sortedList],
+ * or `-1` if the [value] is not in the list.
+ */
+int _findFirstOccurrence(List<int> sortedList, int value) {
+  // Find an occurrence.
+  int i = binarySearch(sortedList, value);
+  if (i == -1) {
+    return -1;
+  }
+  // Find the first occurrence.
+  while (i > 0 && sortedList[i - 1] == value) {
+    i--;
+  }
+  return i;
+}
+
+/**
+ * Interface for storing and requesting relations.
+ */
+class Index2 {
+  final PackageIndexStore _store;
+
+  Index2(this._store);
+
+  /**
+   * Complete with a list of locations where elements of the given [kind] with
+   * names satisfying the given [regExp] are defined.
+   */
+  Future<List<Location>> getDefinedNames(
+      RegExp regExp, IndexNameKind kind) async {
+    List<Location> locations = <Location>[];
+    Iterable<PackageIndexId> ids = await _store.getIds();
+    for (PackageIndexId id in ids) {
+      PackageIndex index = await _store.getIndex(id);
+      _PackageIndexRequester requester = new _PackageIndexRequester(index);
+      List<Location> packageLocations = requester.getDefinedNames(regExp, kind);
+      locations.addAll(packageLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Complete with a list of locations where the given [element] has relation
+   * of the given [kind].
+   */
+  Future<List<Location>> getRelations(
+      Element element, IndexRelationKind kind) async {
+    List<Location> locations = <Location>[];
+    Iterable<PackageIndexId> ids = await _store.getIds();
+    for (PackageIndexId id in ids) {
+      PackageIndex index = await _store.getIndex(id);
+      _PackageIndexRequester requester = new _PackageIndexRequester(index);
+      List<Location> packageLocations = requester.getRelations(element, kind);
+      locations.addAll(packageLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Complete with a list of locations where a class members with the given
+   * [name] is referenced with a qualifier, but is not resolved.
+   */
+  Future<List<Location>> getUnresolvedMemberReferences(String name) async {
+    List<Location> locations = <Location>[];
+    Iterable<PackageIndexId> ids = await _store.getIds();
+    for (PackageIndexId id in ids) {
+      PackageIndex index = await _store.getIndex(id);
+      _PackageIndexRequester requester = new _PackageIndexRequester(index);
+      List<Location> packageLocations =
+          requester.getUnresolvedMemberReferences(name);
+      locations.addAll(packageLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Index the given fully resolved [unit].
+   */
+  void indexUnit(CompilationUnit unit) {
+    PackageIndexAssembler assembler = new PackageIndexAssembler();
+    assembler.index(unit);
+    PackageIndexBuilder indexBuilder = assembler.assemble();
+    String unitLibraryUri = unit.element.library.source.uri.toString();
+    String unitUnitUri = unit.element.source.uri.toString();
+    _store.putIndex(unitLibraryUri, unitUnitUri, indexBuilder);
+  }
+}
+
+/**
+ * Information about location of a single relation in the index.
+ *
+ * The location is expressed as a library specific unit containing the index
+ * relation, offset within this [Source] and  length.
+ *
+ * Clients may not extend, implement or mix-in this class.
+ */
+class Location {
+  /**
+   * The URI of the source of the library containing this location.
+   */
+  final String libraryUri;
+
+  /**
+   * The URI of the source of the unit containing this location.
+   */
+  final String unitUri;
+
+  /**
+   * The offset of this location within the [unitUri].
+   */
+  final int offset;
+
+  /**
+   * The length of this location.
+   */
+  final int length;
+
+  /**
+   * Is `true` if this location is qualified.
+   */
+  final bool isQualified;
+
+  Location(this.libraryUri, this.unitUri, this.offset, this.length,
+      this.isQualified);
+
+  @override
+  String toString() => 'Location{librarySourceUri: $libraryUri, '
+      'unitSourceUri: $unitUri, offset: $offset, length: $length, '
+      'isQualified: $isQualified}';
+}
+
+/**
+ * Opaque identifier of a [PackageIndex].
+ */
+abstract class PackageIndexId {}
+
+/**
+ * Storage of [PackageIndex] objects.
+ */
+abstract class PackageIndexStore {
+  /**
+   * Complete with identifiers of all [PackageIndex] objects.
+   */
+  Future<Iterable<PackageIndexId>> getIds();
+
+  /**
+   * Complete with the [PackageIndex] with the given [id].
+   */
+  Future<PackageIndex> getIndex(PackageIndexId id);
+
+  /**
+   * Put the given [indexBuilder] into the store.
+   */
+  void putIndex(String unitLibraryUri, String unitUnitUri,
+      PackageIndexBuilder indexBuilder);
+}
+
+/**
+ * A [PackageIndexId] for [_MemoryPackageIndexStore].
+ */
+class _MemoryPackageIndexId implements PackageIndexId {
+  final String key;
+
+  _MemoryPackageIndexId(this.key);
+}
+
+/**
+ * A [PackageIndexStore] that keeps objects in memory;
+ */
+class _MemoryPackageIndexStore implements PackageIndexStore {
+  final Map<String, PackageIndex> indexMap = <String, PackageIndex>{};
+
+  @override
+  Future<Iterable<PackageIndexId>> getIds() async {
+    return indexMap.keys.map((key) => new _MemoryPackageIndexId(key));
+  }
+
+  @override
+  Future<PackageIndex> getIndex(PackageIndexId id) async {
+    return indexMap[(id as _MemoryPackageIndexId).key];
+  }
+
+  @override
+  putIndex(String unitLibraryUri, String unitUnitUri,
+      PackageIndexBuilder indexBuilder) {
+    List<int> indexBytes = indexBuilder.toBuffer();
+    PackageIndex index = new PackageIndex.fromBuffer(indexBytes);
+    String key = '$unitLibraryUri;$unitUnitUri';
+    indexMap[key] = index;
+  }
+}
+
+/**
+ * Helper for requesting information from a single [PackageIndex].
+ */
+class _PackageIndexRequester {
+  final PackageIndex index;
+
+  _PackageIndexRequester(this.index);
+
+  /**
+   * Return the [element]'s identifier in the [index] or `-1` if the
+   * [element] is not referenced in the [index].
+   */
+  int findElementId(Element element) {
+    // Find the id of the element's unit.
+    int unitId = getUnitId(element);
+    if (unitId == -1) {
+      return -1;
+    }
+    // Prepare the offset of the element.
+    int offset = element.nameOffset;
+    if (element is LibraryElement || element is CompilationUnitElement) {
+      offset = 0;
+    }
+    // Find the first occurrence of an element with the same offset.
+    int elementId = _findFirstOccurrence(index.elementOffsets, offset);
+    if (elementId == -1) {
+      return -1;
+    }
+    // Try to find the element id using offset, unit and kind.
+    IndexSyntheticElementKind kind =
+        PackageIndexAssembler.getIndexElementKind(element);
+    for (;
+        elementId < index.elementOffsets.length &&
+            index.elementOffsets[elementId] == offset;
+        elementId++) {
+      if (index.elementUnits[elementId] == unitId &&
+          index.elementKinds[elementId] == kind) {
+        return elementId;
+      }
+    }
+    return -1;
+  }
+
+  /**
+   * Complete with a list of locations where elements of the given [kind] with
+   * names satisfying the given [regExp] are defined.
+   */
+  List<Location> getDefinedNames(RegExp regExp, IndexNameKind kind) {
+    List<Location> locations = <Location>[];
+    for (UnitIndex unitIndex in index.units) {
+      _UnitIndexRequester requester = new _UnitIndexRequester(this, unitIndex);
+      List<Location> unitLocations = requester.getDefinedNames(regExp, kind);
+      locations.addAll(unitLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Complete with a list of locations where the given [element] has relation
+   * of the given [kind].
+   */
+  List<Location> getRelations(Element element, IndexRelationKind kind) {
+    int elementId = findElementId(element);
+    if (elementId == -1) {
+      return const <Location>[];
+    }
+    List<Location> locations = <Location>[];
+    for (UnitIndex unitIndex in index.units) {
+      _UnitIndexRequester requester = new _UnitIndexRequester(this, unitIndex);
+      List<Location> unitLocations = requester.getRelations(elementId, kind);
+      locations.addAll(unitLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Return the identifier of [str] in the [index] or `-1` if [str] is not used
+   * in the [index].
+   */
+  int getStringId(String str) {
+    return binarySearch(index.strings, str);
+  }
+
+  /**
+   * Return the identifier of the [CompilationUnitElement] containing the
+   * [element] in the [index] or `-1` if not found.
+   */
+  int getUnitId(Element element) {
+    CompilationUnitElement unitElement =
+        PackageIndexAssembler.getUnitElement(element);
+    int libraryUriId = getUriId(unitElement.library.source.uri);
+    if (libraryUriId == -1) {
+      return -1;
+    }
+    int unitUriId = getUriId(unitElement.source.uri);
+    if (unitUriId == -1) {
+      return -1;
+    }
+    for (int i = 0; i < index.unitLibraryUris.length; i++) {
+      if (index.unitLibraryUris[i] == libraryUriId &&
+          index.unitUnitUris[i] == unitUriId) {
+        return i;
+      }
+    }
+    return -1;
+  }
+
+  /**
+   * Return the URI of the library source of the library specific [unit].
+   */
+  String getUnitLibraryUri(int unit) {
+    int id = index.unitLibraryUris[unit];
+    return index.strings[id];
+  }
+
+  /**
+   * Return the URI of the unit source of the library specific [unit].
+   */
+  String getUnitUnitUri(int unit) {
+    int id = index.unitUnitUris[unit];
+    return index.strings[id];
+  }
+
+  /**
+   * Complete with a list of locations where a class members with the given
+   * [name] is referenced with a qualifier, but is not resolved.
+   */
+  List<Location> getUnresolvedMemberReferences(String name) {
+    List<Location> locations = <Location>[];
+    for (UnitIndex unitIndex in index.units) {
+      _UnitIndexRequester requester = new _UnitIndexRequester(this, unitIndex);
+      List<Location> unitLocations =
+          requester.getUnresolvedMemberReferences(name);
+      locations.addAll(unitLocations);
+    }
+    return locations;
+  }
+
+  /**
+   * Return the identifier of the [uri] in the [index] or `-1` if the [uri] is
+   * not used in the [index].
+   */
+  int getUriId(Uri uri) {
+    String str = uri.toString();
+    return getStringId(str);
+  }
+}
+
+/**
+ * Helper for requesting information from a single [UnitIndex].
+ */
+class _UnitIndexRequester {
+  final _PackageIndexRequester packageRequester;
+  final UnitIndex unitIndex;
+
+  _UnitIndexRequester(this.packageRequester, this.unitIndex);
+
+  /**
+   * Complete with a list of locations where elements of the given [kind] with
+   * names satisfying the given [regExp] are defined.
+   */
+  List<Location> getDefinedNames(RegExp regExp, IndexNameKind kind) {
+    List<Location> locations = <Location>[];
+    String unitLibraryUri = null;
+    String unitUnitUri = null;
+    for (int i = 0; i < unitIndex.definedNames.length; i++) {
+      if (unitIndex.definedNameKinds[i] == kind) {
+        int nameIndex = unitIndex.definedNames[i];
+        String name = packageRequester.index.strings[nameIndex];
+        if (regExp.matchAsPrefix(name) != null) {
+          unitLibraryUri ??= packageRequester.getUnitLibraryUri(unitIndex.unit);
+          unitUnitUri ??= packageRequester.getUnitUnitUri(unitIndex.unit);
+          locations.add(new Location(unitLibraryUri, unitUnitUri,
+              unitIndex.definedNameOffsets[i], name.length, false));
+        }
+      }
+    }
+    return locations;
+  }
+
+  /**
+   * Return a list of locations where an element with the given [elementId] has
+   * relation of the given [kind].
+   */
+  List<Location> getRelations(int elementId, IndexRelationKind kind) {
+    // Find the first usage of the element.
+    int i = _findFirstOccurrence(unitIndex.usedElements, elementId);
+    if (i == -1) {
+      return const <Location>[];
+    }
+    // Create locations for every usage of the element.
+    List<Location> locations = <Location>[];
+    String unitLibraryUri = null;
+    String unitUnitUri = null;
+    for (;
+        i < unitIndex.usedElements.length &&
+            unitIndex.usedElements[i] == elementId;
+        i++) {
+      if (unitIndex.usedElementKinds[i] == kind) {
+        unitLibraryUri ??= packageRequester.getUnitLibraryUri(unitIndex.unit);
+        unitUnitUri ??= packageRequester.getUnitUnitUri(unitIndex.unit);
+        locations.add(new Location(
+            unitLibraryUri,
+            unitUnitUri,
+            unitIndex.usedElementOffsets[i],
+            unitIndex.usedElementLengths[i],
+            unitIndex.usedElementIsQualifiedFlags[i]));
+      }
+    }
+    return locations;
+  }
+
+  /**
+   * Complete with a list of locations where a class members with the given
+   * [name] is referenced with a qualifier, but is not resolved.
+   */
+  List<Location> getUnresolvedMemberReferences(String name) {
+    // Find the name ID in the package index.
+    int nameId = packageRequester.getStringId(name);
+    if (nameId == -1) {
+      return const <Location>[];
+    }
+    // Find the first usage of the name.
+    int i =_findFirstOccurrence(unitIndex.usedNames, nameId);
+    if (i == -1) {
+      return const <Location>[];
+    }
+    // Create locations for every usage of the name.
+    List<Location> locations = <Location>[];
+    String unitLibraryUri = null;
+    String unitUnitUri = null;
+    for (; i < unitIndex.usedNames.length &&
+        unitIndex.usedNames[i] == nameId; i++) {
+      unitLibraryUri ??= packageRequester.getUnitLibraryUri(unitIndex.unit);
+      unitUnitUri ??= packageRequester.getUnitUnitUri(unitIndex.unit);
+      locations.add(new Location(unitLibraryUri, unitUnitUri,
+          unitIndex.usedNameOffsets[i], name.length, true));
+    }
+    return locations;
+  }
+}
diff --git a/pkg/analysis_server/lib/src/services/linter/linter.dart b/pkg/analysis_server/lib/src/services/linter/linter.dart
index 675836ce..964c238 100644
--- a/pkg/analysis_server/lib/src/services/linter/linter.dart
+++ b/pkg/analysis_server/lib/src/services/linter/linter.dart
@@ -40,9 +40,10 @@
       //TODO(pq): migrate this to a proper API once there is one.
       Iterable<String> registeredLints = ruleRegistry.map((r) => r.name);
       rules.nodes.forEach((YamlNode ruleNode) {
-        if (!registeredLints.contains(ruleNode.value)) {
+        Object value = ruleNode.value;
+        if (value != null && !registeredLints.contains(value)) {
           reporter.reportErrorForSpan(
-              UNDEFINED_LINT_WARNING, ruleNode.span, [ruleNode.value]);
+              UNDEFINED_LINT_WARNING, ruleNode.span, [value]);
         }
       });
     }
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 1cb713a..b2223d0 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
@@ -667,7 +667,7 @@
       variableType = _getTypeCode(_returnType);
       if (_hasAwait) {
         if (_returnType.element != futureType.element) {
-          returnType = _getTypeCode(futureType.substitute4([_returnType]));
+          returnType = _getTypeCode(futureType.instantiate([_returnType]));
         }
       } else {
         returnType = variableType;
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
index f435ff9..17fdb68 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
@@ -12,9 +12,17 @@
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
 import 'package:analyzer/src/generated/source.dart';
 
 /**
+ * Return a new [SourceReference] instance for the given [match].
+ */
+SourceReference getSourceReference(SearchMatch match) {
+  return new SourceReference(match);
+}
+
+/**
  * When a [Source] (a file) is used in more than one context, [SearchEngine]
  * will return separate [SearchMatch]s for each context. But in rename
  * refactorings we want to update each [Source] only once.
@@ -22,11 +30,7 @@
 List<SourceReference> getSourceReferences(List<SearchMatch> matches) {
   var uniqueReferences = new HashMap<SourceReference, SourceReference>();
   for (SearchMatch match in matches) {
-    Element element = match.element;
-    String file = element.source.fullName;
-    SourceRange range = match.sourceRange;
-    SourceReference newReference = new SourceReference(
-        file, range, element, match.isResolved, match.isQualified);
+    SourceReference newReference = getSourceReference(match);
     SourceReference oldReference = uniqueReferences[newReference];
     if (oldReference == null) {
       uniqueReferences[newReference] = newReference;
@@ -56,16 +60,22 @@
 
 /**
  * The [SourceRange] in some [Source].
+ *
+ * TODO(scheglov) inline this class as SearchMatch
  */
 class SourceReference {
-  final String file;
-  final SourceRange range;
-  final Element element;
-  final bool isResolved;
-  final bool isQualified;
+  final SearchMatch _match;
 
-  SourceReference(
-      this.file, this.range, this.element, this.isResolved, this.isQualified);
+  SourceReference(this._match);
+
+  AnalysisContext get context => _match.context;
+
+  Element get element => _match.element;
+
+  /**
+   * The full path of the file containing the match.
+   */
+  String get file => _match.file;
 
   @override
   int get hashCode {
@@ -74,6 +84,12 @@
     return hash;
   }
 
+  bool get isResolved => _match.isResolved;
+
+  SourceRange get range => _match.sourceRange;
+
+  Source get unitSource => _match.unitSource;
+
   @override
   bool operator ==(Object other) {
     if (identical(other, this)) {
@@ -90,7 +106,7 @@
    */
   void addEdit(SourceChange change, String newText, {String id}) {
     SourceEdit edit = createEdit(newText, id: id);
-    doSourceChange_addElementEdit(change, element, edit);
+    doSourceChange_addSourceEdit(change, context, unitSource, edit);
   }
 
   /**
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename.dart b/pkg/analysis_server/lib/src/services/refactoring/rename.dart
index ec36d00..b6f54c1 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename.dart
@@ -98,7 +98,7 @@
     return false;
   }
   Source localSource = localElement.source;
-  Source referenceSource = reference.element.source;
+  Source referenceSource = reference.unitSource;
   SourceRange localRange = localElement.visibleRange;
   SourceRange referenceRange = reference.sourceRange;
   return referenceSource == localSource &&
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
index 6080479..06b88c0 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
@@ -192,13 +192,27 @@
             newLocation_fromElement(elementClass));
       }
     }
-    // check shadowing in hierarchy
+    // usage of the renamed Element is shadowed by a local element
+    {
+      _MatchShadowedByLocal conflict = _getShadowingLocalElement();
+      if (conflict != null) {
+        LocalElement localElement = conflict.localElement;
+        result.addError(
+            format(
+                "Usage of renamed {0} will be shadowed by {1} '{2}'.",
+                elementKind.displayName,
+                getElementKindName(localElement),
+                localElement.displayName),
+            newLocation_fromMatch(conflict.match));
+      }
+    }
+    // check shadowing in the hierarchy
     List<SearchMatch> declarations =
-        await searchEngine.searchElementDeclarations(name);
+        await searchEngine.searchMemberDeclarations(name);
     for (SearchMatch declaration in declarations) {
       Element nameElement = getSyntheticAccessorVariable(declaration.element);
       Element nameClass = nameElement.enclosingElement;
-      // renamed Element shadows member of superclass
+      // the renamed Element shadows a member of a superclass
       if (superClasses.contains(nameClass)) {
         result.addError(
             format(
@@ -210,7 +224,7 @@
                 getElementQualifiedName(nameElement)),
             newLocation_fromElement(nameElement));
       }
-      // renamed Element is shadowed by member of subclass
+      // the renamed Element is shadowed by a member of a subclass
       if (isRename && subClasses.contains(nameClass)) {
         result.addError(
             format(
@@ -220,26 +234,6 @@
                 getElementQualifiedName(nameElement)),
             newLocation_fromElement(nameElement));
       }
-      // renamed Element is shadowed by local
-      if (nameElement is LocalElement) {
-        LocalElement localElement = nameElement;
-        ClassElement enclosingClass =
-            nameElement.getAncestor((element) => element is ClassElement);
-        if (enclosingClass == elementClass ||
-            subClasses.contains(enclosingClass)) {
-          for (SearchMatch reference in references) {
-            if (isReferenceInLocalRange(localElement, reference)) {
-              result.addError(
-                  format(
-                      "Usage of renamed {0} will be shadowed by {1} '{2}'.",
-                      elementKind.displayName,
-                      getElementKindName(localElement),
-                      localElement.displayName),
-                  newLocation_fromMatch(reference));
-            }
-          }
-        }
-      }
     }
     // visibility
     if (isRename) {
@@ -249,6 +243,31 @@
     return result;
   }
 
+  _MatchShadowedByLocal _getShadowingLocalElement() {
+    for (SearchMatch match in references) {
+      // qualified reference cannot be shadowed by a local element
+      if (match.isQualified) {
+        continue;
+      }
+      // check local elements of the enclosing executable
+      Element containingElement = match.element;
+      if (containingElement is ExecutableElement) {
+        Iterable<LocalElement> localElements = <Iterable<LocalElement>>[
+          containingElement.functions,
+          containingElement.localVariables,
+          containingElement.parameters
+        ].expand((Iterable<LocalElement> x) => x);
+        for (LocalElement localElement in localElements) {
+          if (localElement.displayName == name &&
+              localElement.visibleRange.intersects(match.sourceRange)) {
+            return new _MatchShadowedByLocal(match, localElement);
+          }
+        }
+      }
+    }
+    return null;
+  }
+
   /**
    * Fills [elements] with [Element]s to rename.
    */
@@ -293,3 +312,10 @@
     }
   }
 }
+
+class _MatchShadowedByLocal {
+  final SearchMatch match;
+  final LocalElement localElement;
+
+  _MatchShadowedByLocal(this.match, this.localElement);
+}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart
index 460896e..23e0342 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart
@@ -86,7 +86,13 @@
     } else {
       sourceRange = rangeStartLength(element.nameEnd, 0);
     }
-    String file = element.source.fullName;
-    return new SourceReference(file, sourceRange, element, true, true);
+    return new SourceReference(new SearchMatch(
+        element.context,
+        element.library.source.uri.toString(),
+        element.source.uri.toString(),
+        MatchKind.DECLARATION,
+        sourceRange,
+        true,
+        true));
   }
 }
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine.dart b/pkg/analysis_server/lib/src/services/search/search_engine.dart
index dbae817..217048c 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine.dart
@@ -9,6 +9,9 @@
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analysis_server/src/services/search/search_engine_internal.dart';
 import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
 import 'package:analyzer/src/generated/java_core.dart';
 import 'package:analyzer/src/generated/source.dart';
 
@@ -75,13 +78,6 @@
   Future<List<SearchMatch>> searchAllSubtypes(ClassElement type);
 
   /**
-   * Returns declarations of elements with the given name.
-   *
-   * [name] - the name being declared by the found matches.
-   */
-  Future<List<SearchMatch>> searchElementDeclarations(String name);
-
-  /**
    * Returns declarations of class members with the given name.
    *
    * [name] - the name being declared by the found matches.
@@ -125,16 +121,26 @@
  */
 class SearchMatch {
   /**
+   * The [AnalysisContext] containing the match.
+   */
+  final AnalysisContext context;
+
+  /**
+   * The URI of the source of the library containing the match.
+   */
+  final String libraryUri;
+
+  /**
+   * The URI of the source of the unit containing the match.
+   */
+  final String unitUri;
+
+  /**
    * The kind of the match.
    */
   final MatchKind kind;
 
   /**
-   * The element containing the source range that was matched.
-   */
-  final Element element;
-
-  /**
    * The source range that was matched.
    */
   final SourceRange sourceRange;
@@ -149,11 +155,61 @@
    */
   final bool isQualified;
 
-  SearchMatch(this.kind, this.element, this.sourceRange, this.isResolved,
-      this.isQualified);
+  Source _librarySource;
+  Source _unitSource;
+  LibraryElement _libraryElement;
+  Element _element;
+
+  SearchMatch(this.context, this.libraryUri, this.unitUri, this.kind,
+      this.sourceRange, this.isResolved, this.isQualified);
+
+  /**
+   * Return the [Element] containing the match.
+   */
+  Element get element {
+    if (_element == null) {
+      CompilationUnitElement unitElement =
+          context.getCompilationUnitElement(unitSource, librarySource);
+      _ContainingElementFinder finder =
+          new _ContainingElementFinder(sourceRange.offset);
+      unitElement.accept(finder);
+      _element = finder.containingElement;
+    }
+    return _element;
+  }
+
+  /**
+   * The absolute path of the file containing the match.
+   */
+  String get file => unitSource.fullName;
 
   @override
-  int get hashCode => JavaArrays.makeHashCode([element, sourceRange, kind]);
+  int get hashCode =>
+      JavaArrays.makeHashCode([libraryUri, unitUri, kind, sourceRange]);
+
+  /**
+   * Return the [LibraryElement] for the [libraryUri] in the [context].
+   */
+  LibraryElement get libraryElement {
+    _libraryElement ??= context.getLibraryElement(librarySource);
+    return _libraryElement;
+  }
+
+  /**
+   * The library [Source] of the reference.
+   */
+  Source get librarySource {
+    _librarySource ??= context.sourceFactory.forUri(libraryUri);
+    return _librarySource;
+  }
+
+  /**
+   * The unit [Source] of the reference.
+   */
+  Source get unitSource {
+    _unitSource ??= context.sourceFactory.forUri(unitUri);
+    return _unitSource;
+  }
 
   @override
   bool operator ==(Object object) {
@@ -162,10 +218,11 @@
     }
     if (object is SearchMatch) {
       return kind == object.kind &&
+          libraryUri == object.libraryUri &&
+          unitUri == object.unitUri &&
           isResolved == object.isResolved &&
           isQualified == object.isQualified &&
-          sourceRange == object.sourceRange &&
-          element == object.element;
+          sourceRange == object.sourceRange;
     }
     return false;
   }
@@ -175,8 +232,10 @@
     StringBuffer buffer = new StringBuffer();
     buffer.write("SearchMatch(kind=");
     buffer.write(kind);
-    buffer.write(", element=");
-    buffer.write(element.displayName);
+    buffer.write(", libraryUri=");
+    buffer.write(libraryUri);
+    buffer.write(", unitUri=");
+    buffer.write(unitUri);
     buffer.write(", range=");
     buffer.write(sourceRange);
     buffer.write(", isResolved=");
@@ -187,3 +246,24 @@
     return buffer.toString();
   }
 }
+
+/**
+ * A visitor that finds the deep-most [Element] that contains the [offset].
+ */
+class _ContainingElementFinder extends GeneralizingElementVisitor {
+  final int offset;
+  Element containingElement;
+
+  _ContainingElementFinder(this.offset);
+
+  visitElement(Element element) {
+    if (element is ElementImpl) {
+      if (element.codeOffset != null &&
+          element.codeOffset <= offset &&
+          offset <= element.codeOffset + element.codeLength) {
+        containingElement = element;
+        super.visitElement(element);
+      }
+    }
+  }
+}
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart b/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
index 12681f7..7718339 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
@@ -32,21 +32,18 @@
   }
 
   @override
-  Future<List<SearchMatch>> searchElementDeclarations(String name) {
-    IndexableName indexableName = new IndexableName(name);
-    _Requestor requestor = new _Requestor(_index);
-    requestor.add(indexableName, IndexConstants.NAME_IS_DEFINED_BY,
-        MatchKind.DECLARATION);
-    return requestor.merge();
-  }
-
-  @override
-  Future<List<SearchMatch>> searchMemberDeclarations(String name) {
-    return searchElementDeclarations(name).then((matches) {
-      return matches.where((match) {
-        return match.element.enclosingElement is ClassElement;
-      }).toList();
-    });
+  Future<List<SearchMatch>> searchMemberDeclarations(String name) async {
+    List<SearchMatch> matches;
+    {
+      IndexableName indexableName = new IndexableName(name);
+      _Requestor requestor = new _Requestor(_index);
+      requestor.add(indexableName, IndexConstants.NAME_IS_DEFINED_BY,
+          MatchKind.DECLARATION);
+      matches = await requestor.merge();
+    }
+    return matches.where((match) {
+      return match.element.enclosingElement is ClassElement;
+    }).toList();
   }
 
   @override
@@ -119,8 +116,14 @@
         _index.getTopLevelDeclarations((String name) => regExp.hasMatch(name));
     List<SearchMatch> matches = <SearchMatch>[];
     for (Element element in elements) {
-      matches.add(new SearchMatch(MatchKind.DECLARATION, element,
-          rangeElementName(element), true, false));
+      matches.add(new SearchMatch(
+          element.context,
+          element.library.source.uri.toString(),
+          element.source.uri.toString(),
+          MatchKind.DECLARATION,
+          rangeElementName(element),
+          true,
+          false));
     }
     return new Future.value(matches);
   }
@@ -230,9 +233,12 @@
       for (LocationImpl location in locations) {
         IndexableObject indexable = location.indexable;
         if (indexable is IndexableElement) {
+          Element element = indexable.element;
           matches.add(new SearchMatch(
+              element.context,
+              element.library.source.uri.toString(),
+              element.source.uri.toString(),
               kind,
-              indexable.element,
               new SourceRange(location.offset, location.length),
               location.isResolved,
               location.isQualified));
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
new file mode 100644
index 0000000..2bb0d33
--- /dev/null
+++ b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
@@ -0,0 +1,370 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library services.src.search.search_engine2;
+
+import 'dart:async';
+
+import 'package:analysis_server/src/services/correction/source_range.dart';
+import 'package:analysis_server/src/services/index2/index2.dart';
+import 'package:analysis_server/src/services/search/search_engine.dart';
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/visitor.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/member.dart';
+import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
+import 'package:analyzer/src/generated/resolver.dart' show NamespaceBuilder;
+import 'package:analyzer/src/generated/source.dart' show Source, SourceRange;
+import 'package:analyzer/src/summary/idl.dart';
+
+/**
+ * A [SearchEngine] implementation.
+ */
+class SearchEngineImpl2 implements SearchEngine {
+  final AnalysisContext context;
+  final Index2 _index;
+
+  SearchEngineImpl2(this.context, this._index);
+
+  @override
+  Future<List<SearchMatch>> searchAllSubtypes(ClassElement type) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    await _addMatches(
+        matches, type, IndexRelationKind.IS_ANCESTOR_OF, MatchKind.DECLARATION);
+    return matches;
+  }
+
+  @override
+  Future<List<SearchMatch>> searchMemberDeclarations(String pattern) {
+    return _searchDefinedNames(pattern, IndexNameKind.classMember);
+  }
+
+  @override
+  Future<List<SearchMatch>> searchMemberReferences(String name) async {
+    List<Location> locations = await _index.getUnresolvedMemberReferences(name);
+    return locations.map((location) {
+      return _newMatchForLocation(location, MatchKind.REFERENCE);
+    }).toList();
+  }
+
+  @override
+  Future<List<SearchMatch>> searchReferences(Element element) {
+    ElementKind kind = element.kind;
+    if (kind == ElementKind.CLASS ||
+        kind == ElementKind.COMPILATION_UNIT ||
+        kind == ElementKind.CONSTRUCTOR ||
+        kind == ElementKind.FUNCTION_TYPE_ALIAS ||
+        kind == ElementKind.GETTER ||
+        kind == ElementKind.SETTER) {
+      return _searchReferences(element);
+    } else if (kind == ElementKind.FIELD ||
+        kind == ElementKind.TOP_LEVEL_VARIABLE) {
+      return _searchReferences_Field(element);
+    } else if (kind == ElementKind.FUNCTION || kind == ElementKind.METHOD) {
+      if (element.enclosingElement is ExecutableElement) {
+        return _searchReferences_Local(element, (n) => n is Block);
+      }
+      return _searchReferences_Function(element);
+    } else if (kind == ElementKind.IMPORT) {
+      return _searchReferences_Import(element);
+    } else if (kind == ElementKind.LABEL ||
+        kind == ElementKind.LOCAL_VARIABLE) {
+      return _searchReferences_Local(element, (n) => n is Block);
+    } else if (kind == ElementKind.LIBRARY) {
+      return _searchReferences_Library(element);
+    } else if (kind == ElementKind.PARAMETER) {
+      return _searchReferences_Parameter(element);
+    } else if (kind == ElementKind.PREFIX) {
+      return _searchReferences_Prefix(element);
+    } else if (kind == ElementKind.TYPE_PARAMETER) {
+      return _searchReferences_Local(element, (n) => n is ClassDeclaration);
+    }
+    return new Future.value(<SearchMatch>[]);
+  }
+
+  @override
+  Future<List<SearchMatch>> searchSubtypes(ClassElement type) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    await _addMatches(
+        matches, type, IndexRelationKind.IS_EXTENDED_BY, MatchKind.REFERENCE);
+    await _addMatches(
+        matches, type, IndexRelationKind.IS_MIXED_IN_BY, MatchKind.REFERENCE);
+    await _addMatches(matches, type, IndexRelationKind.IS_IMPLEMENTED_BY,
+        MatchKind.REFERENCE);
+    return matches;
+  }
+
+  @override
+  Future<List<SearchMatch>> searchTopLevelDeclarations(String pattern) {
+    return _searchDefinedNames(pattern, IndexNameKind.topLevel);
+  }
+
+  _addMatches(List<SearchMatch> matches, Element element,
+      IndexRelationKind relationKind, MatchKind kind) async {
+    List<Location> locations = await _index.getRelations(element, relationKind);
+    for (Location location in locations) {
+      SearchMatch match = _newMatchForLocation(location, kind);
+      matches.add(match);
+    }
+  }
+
+  SearchMatch _newMatchForLocation(Location location, MatchKind kind) =>
+      new SearchMatch(
+          context,
+          location.libraryUri,
+          location.unitUri,
+          kind,
+          new SourceRange(location.offset, location.length),
+          true,
+          location.isQualified);
+
+  Future<List<SearchMatch>> _searchDefinedNames(
+      String pattern, IndexNameKind nameKind) async {
+    RegExp regExp = new RegExp(pattern);
+    List<Location> locations = await _index.getDefinedNames(regExp, nameKind);
+    return locations.map((location) {
+      return _newMatchForLocation(location, MatchKind.DECLARATION);
+    }).toList();
+  }
+
+  Future<List<SearchMatch>> _searchReferences(Element element) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    await _addMatches(matches, element, IndexRelationKind.IS_REFERENCED_BY,
+        MatchKind.REFERENCE);
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Field(
+      PropertyInducingElement field) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    PropertyAccessorElement getter = field.getter;
+    PropertyAccessorElement setter = field.setter;
+    // field itself
+    await _addMatches(matches, field, IndexRelationKind.IS_REFERENCED_BY,
+        MatchKind.REFERENCE);
+    // getter
+    if (getter != null) {
+      await _addMatches(
+          matches, getter, IndexRelationKind.IS_REFERENCED_BY, MatchKind.READ);
+      await _addMatches(matches, getter, IndexRelationKind.IS_INVOKED_BY,
+          MatchKind.INVOCATION);
+    }
+    // setter
+    if (setter != null) {
+      await _addMatches(
+          matches, setter, IndexRelationKind.IS_REFERENCED_BY, MatchKind.WRITE);
+    }
+    // done
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Function(Element element) async {
+    if (element is Member) {
+      element = (element as Member).baseElement;
+    }
+    List<SearchMatch> matches = <SearchMatch>[];
+    await _addMatches(matches, element, IndexRelationKind.IS_REFERENCED_BY,
+        MatchKind.REFERENCE);
+    await _addMatches(matches, element, IndexRelationKind.IS_INVOKED_BY,
+        MatchKind.INVOCATION);
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Import(
+      ImportElement element) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    LibraryElement libraryElement = element.library;
+    Source librarySource = libraryElement.source;
+    for (CompilationUnitElement unitElement in libraryElement.units) {
+      Source unitSource = unitElement.source;
+      CompilationUnit unit =
+          context.resolveCompilationUnit2(unitSource, librarySource);
+      _ImportElementReferencesVisitor visitor =
+          new _ImportElementReferencesVisitor(
+              element, unitSource.uri.toString());
+      unit.accept(visitor);
+      matches.addAll(visitor.matches);
+    }
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Library(Element element) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    LibraryElement libraryElement = element.library;
+    Source librarySource = libraryElement.source;
+    for (CompilationUnitElement unitElement in libraryElement.parts) {
+      Source unitSource = unitElement.source;
+      CompilationUnit unit =
+          context.resolveCompilationUnit2(unitSource, librarySource);
+      for (Directive directive in unit.directives) {
+        if (directive is PartOfDirective &&
+            directive.element == libraryElement) {
+          matches.add(new SearchMatch(
+              context,
+              librarySource.uri.toString(),
+              unitSource.uri.toString(),
+              MatchKind.REFERENCE,
+              rangeNode(directive.libraryName),
+              true,
+              false));
+        }
+      }
+    }
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Local(
+      Element element, bool isRootNode(AstNode n)) async {
+    _LocalReferencesVisitor visitor = new _LocalReferencesVisitor(element);
+    AstNode node = element.computeNode();
+    AstNode enclosingNode = node?.getAncestor(isRootNode);
+    enclosingNode?.accept(visitor);
+    return visitor.matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Parameter(
+      ParameterElement parameter) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    matches.addAll(await _searchReferences(parameter));
+    matches.addAll(await _searchReferences_Local(
+        parameter, (n) => n is MethodDeclaration || n is FunctionExpression));
+    return matches;
+  }
+
+  Future<List<SearchMatch>> _searchReferences_Prefix(
+      PrefixElement element) async {
+    List<SearchMatch> matches = <SearchMatch>[];
+    LibraryElement libraryElement = element.library;
+    Source librarySource = libraryElement.source;
+    for (CompilationUnitElement unitElement in libraryElement.units) {
+      Source unitSource = unitElement.source;
+      CompilationUnit unit =
+          context.resolveCompilationUnit2(unitSource, librarySource);
+      _LocalReferencesVisitor visitor =
+          new _LocalReferencesVisitor(element, unitSource.uri.toString());
+      unit.accept(visitor);
+      matches.addAll(visitor.matches);
+    }
+    return matches;
+  }
+}
+
+/**
+ * Visitor that adds [SearchMatch]es for [importElement], both with an explicit
+ * prefix or an implicit one.
+ */
+class _ImportElementReferencesVisitor extends RecursiveAstVisitor {
+  final List<SearchMatch> matches = <SearchMatch>[];
+
+  final ImportElement importElement;
+  final AnalysisContext context;
+  final String libraryUri;
+  final String unitUri;
+  Set<Element> importedElements;
+
+  _ImportElementReferencesVisitor(ImportElement element, this.unitUri)
+      : importElement = element,
+        context = element.context,
+        libraryUri = element.library.source.uri.toString() {
+    importedElements = new NamespaceBuilder()
+        .createImportNamespaceForDirective(element)
+        .definedNames
+        .values
+        .toSet();
+  }
+
+  @override
+  visitSimpleIdentifier(SimpleIdentifier node) {
+    if (node.inDeclarationContext()) {
+      return;
+    }
+    if (importElement.prefix != null) {
+      if (node.staticElement == importElement.prefix) {
+        AstNode parent = node.parent;
+        if (parent is PrefixedIdentifier && parent.prefix == node) {
+          if (importedElements.contains(parent.staticElement)) {
+            _addMatchForPrefix(node, parent.identifier);
+          }
+        }
+        if (parent is MethodInvocation && parent.target == node) {
+          if (importedElements.contains(parent.methodName.staticElement)) {
+            _addMatchForPrefix(node, parent.methodName);
+          }
+        }
+      }
+    } else {
+      if (importedElements.contains(node.staticElement)) {
+        SourceRange range = rangeStartLength(node, 0);
+        _addMatchForRange(range);
+      }
+    }
+  }
+
+  void _addMatchForPrefix(SimpleIdentifier prefixNode, AstNode nextNode) {
+    SourceRange range = rangeStartStart(prefixNode, nextNode);
+    _addMatchForRange(range);
+  }
+
+  void _addMatchForRange(SourceRange range) {
+    matches.add(new SearchMatch(
+        context, libraryUri, unitUri, MatchKind.REFERENCE, range, true, false));
+  }
+}
+
+/**
+ * Visitor that adds [SearchMatch]es for local elements of a block, method,
+ * class or a library - labels, local functions, local variables and parameters,
+ * type parameters, import prefixes.
+ */
+class _LocalReferencesVisitor extends RecursiveAstVisitor {
+  final List<SearchMatch> matches = <SearchMatch>[];
+
+  final Element element;
+  final AnalysisContext context;
+  final String libraryUri;
+  final String unitUri;
+
+  _LocalReferencesVisitor(Element element, [String unitUri])
+      : element = element,
+        context = element.context,
+        libraryUri = element.library.source.uri.toString(),
+        unitUri = unitUri ?? element.source.uri.toString();
+
+  @override
+  visitSimpleIdentifier(SimpleIdentifier node) {
+    if (node.inDeclarationContext()) {
+      return;
+    }
+    if (node.bestElement == element) {
+      AstNode parent = node.parent;
+      MatchKind kind = MatchKind.REFERENCE;
+      if (element is FunctionElement) {
+        if (parent is MethodInvocation && parent.methodName == node) {
+          kind = MatchKind.INVOCATION;
+        }
+      } else if (element is VariableElement) {
+        bool isGet = node.inGetterContext();
+        bool isSet = node.inSetterContext();
+        if (isGet && isSet) {
+          kind = MatchKind.READ_WRITE;
+        } else if (isGet) {
+          if (parent is MethodInvocation && parent.methodName == node) {
+            kind = MatchKind.INVOCATION;
+          } else {
+            kind = MatchKind.READ;
+          }
+        } else if (isSet) {
+          kind = MatchKind.WRITE;
+        }
+      }
+      _addMatch(node, kind);
+    }
+  }
+
+  void _addMatch(AstNode node, MatchKind kind) {
+    bool isQualified = node is SimpleIdentifier && node.isQualified;
+    matches.add(new SearchMatch(context, libraryUri, unitUri, kind,
+        rangeNode(node), true, isQualified));
+  }
+}
diff --git a/pkg/analysis_server/lib/src/socket_server.dart b/pkg/analysis_server/lib/src/socket_server.dart
index ad1baaa..9c0a809 100644
--- a/pkg/analysis_server/lib/src/socket_server.dart
+++ b/pkg/analysis_server/lib/src/socket_server.dart
@@ -10,6 +10,7 @@
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analysis_server/src/services/index/local_file_index.dart';
+import 'package:analysis_server/src/services/index2/index2.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
 import 'package:analyzer/plugin/embedded_resolver_provider.dart';
@@ -92,11 +93,14 @@
       index.run();
     }
 
+    Index2 index2 = createMemoryIndex2();
+
     analysisServer = new AnalysisServer(
         serverChannel,
         resourceProvider,
         new PubPackageMapProvider(resourceProvider, defaultSdk),
         index,
+        index2,
         serverPlugin,
         analysisServerOptions,
         defaultSdkCreator,
diff --git a/pkg/analysis_server/test/analysis/update_content_test.dart b/pkg/analysis_server/test/analysis/update_content_test.dart
index 3e09632..7ca1fba 100644
--- a/pkg/analysis_server/test/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/analysis/update_content_test.dart
@@ -42,7 +42,8 @@
   void processNotification(Notification notification) {
     if (notification.event == ANALYSIS_ERRORS) {
       var decoded = new AnalysisErrorsParams.fromNotification(notification);
-      filesErrors[decoded.file] = decoded.errors;
+      _format(AnalysisError e) => "${e.location.startLine}: ${e.message}";
+      filesErrors[decoded.file] = decoded.errors.map(_format).toList();
     }
     if (notification.event == ANALYSIS_NAVIGATION) {
       navigationCount++;
@@ -188,6 +189,29 @@
     expect(_getUserSources(context2), isEmpty);
   }
 
+  test_overlay_addPreviouslyImported() async {
+    Folder project = resourceProvider.newFolder('/project');
+    handleSuccessfulRequest(
+        new AnalysisSetAnalysisRootsParams([project.path], []).toRequest('0'));
+
+    server.updateContent('1',
+        {'/project/main.dart': new AddContentOverlay('import "target.dart";')});
+    await server.onAnalysisComplete;
+    expect(filesErrors, {
+      '/project/main.dart': ["1: Target of URI does not exist: 'target.dart'"],
+      '/project/target.dart': []
+    });
+
+    server.updateContent('1',
+        {'/project/target.dart': new AddContentOverlay('import "none.dart";')});
+    await server.onAnalysisComplete;
+    expect(filesErrors, {
+      '/project/main.dart': ["1: Unused import"],
+      '/project/target.dart': ["1: Target of URI does not exist: 'none.dart'"],
+      '/project/none.dart': []
+    });
+  }
+
   test_removeOverlay_incrementalChange() async {
     createProject();
     addTestFile('main() { print(1); }');
diff --git a/pkg/analysis_server/test/analysis_abstract.dart b/pkg/analysis_server/test/analysis_abstract.dart
index 3541d91..8286482 100644
--- a/pkg/analysis_server/test/analysis_abstract.dart
+++ b/pkg/analysis_server/test/analysis_abstract.dart
@@ -14,6 +14,7 @@
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/provisional/completion/dart/completion_plugin.dart';
 import 'package:analysis_server/src/services/index/index.dart';
+import 'package:analysis_server/src/services/index2/index2.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
@@ -124,6 +125,7 @@
         resourceProvider,
         packageMapProvider,
         index,
+        createMemoryIndex2(),
         serverPlugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
index 85a6bbc..6710d43 100644
--- a/pkg/analysis_server/test/analysis_server_test.dart
+++ b/pkg/analysis_server/test/analysis_server_test.dart
@@ -142,6 +142,7 @@
         resourceProvider,
         packageMapProvider,
         null,
+        null,
         plugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart
index 1472027..17bfcab 100644
--- a/pkg/analysis_server/test/context_manager_test.dart
+++ b/pkg/analysis_server/test/context_manager_test.dart
@@ -392,6 +392,7 @@
   language:
     enableGenericMethods: true
     enableAsync: false
+    enableConditionalDirectives: true
   errors:
     unused_local_variable: false
 linter:
@@ -417,6 +418,8 @@
     expect(context.analysisOptions.enableAsync, isFalse);
     // * from `.analysis_options`:
     expect(context.analysisOptions.enableGenericMethods, isTrue);
+    expect(context.analysisOptions.enableConditionalDirectives, isTrue);
+
     // * verify tests are excluded
     expect(
         callbacks.currentContextFilePaths[projPath].keys,
diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart
index f8c0afd..3566385 100644
--- a/pkg/analysis_server/test/domain_analysis_test.dart
+++ b/pkg/analysis_server/test/domain_analysis_test.dart
@@ -45,6 +45,7 @@
         resourceProvider,
         new MockPackageMapProvider(),
         null,
+        null,
         serverPlugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
@@ -472,6 +473,7 @@
         resourceProvider,
         new MockPackageMapProvider(),
         null,
+        null,
         serverPlugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
diff --git a/pkg/analysis_server/test/domain_diagnostic_test.dart b/pkg/analysis_server/test/domain_diagnostic_test.dart
index 277279a..543aba6 100644
--- a/pkg/analysis_server/test/domain_diagnostic_test.dart
+++ b/pkg/analysis_server/test/domain_diagnostic_test.dart
@@ -51,6 +51,7 @@
         resourceProvider,
         new MockPackageMapProvider(),
         null,
+        null,
         serverPlugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
diff --git a/pkg/analysis_server/test/domain_execution_test.dart b/pkg/analysis_server/test/domain_execution_test.dart
index e6d1dfb..6c1882f 100644
--- a/pkg/analysis_server/test/domain_execution_test.dart
+++ b/pkg/analysis_server/test/domain_execution_test.dart
@@ -46,6 +46,7 @@
           provider,
           new MockPackageMapProvider(),
           null,
+          null,
           serverPlugin,
           new AnalysisServerOptions(),
           () => new MockSdk(),
diff --git a/pkg/analysis_server/test/domain_server_test.dart b/pkg/analysis_server/test/domain_server_test.dart
index 6dc24d1..81ab9ef 100644
--- a/pkg/analysis_server/test/domain_server_test.dart
+++ b/pkg/analysis_server/test/domain_server_test.dart
@@ -35,6 +35,7 @@
         resourceProvider,
         new MockPackageMapProvider(),
         null,
+        null,
         serverPlugin,
         new AnalysisServerOptions(),
         () => new MockSdk(),
diff --git a/pkg/analysis_server/test/plugin/set_analysis_domain_test.dart b/pkg/analysis_server/test/plugin/set_analysis_domain_test.dart
index a92c943..36e1522 100644
--- a/pkg/analysis_server/test/plugin/set_analysis_domain_test.dart
+++ b/pkg/analysis_server/test/plugin/set_analysis_domain_test.dart
@@ -149,7 +149,7 @@
   }
 
   void _setAnalysisDomain(AnalysisDomain domain) {
-    domain.onResultComputed(PARSED_UNIT).listen((result) {
+    domain.onResultChanged(PARSED_UNIT).listen((result) {
       expect(result.context, isNotNull);
       expect(result.target, isNotNull);
       expect(result.value, isNotNull);
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index da08e99..853a448 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -4341,6 +4341,16 @@
     await assertNoFix(DartFixKind.CREATE_METHOD);
   }
 
+  test_undefinedMethod_create_BAD_targetIsEnum() async {
+    resolveTestUnit('''
+enum MyEnum {A, B}
+main() {
+  MyEnum.foo();
+}
+''');
+    await assertNoFix(DartFixKind.CREATE_METHOD);
+  }
+
   test_undefinedMethod_create_generic_BAD_argumentType() async {
     resolveTestUnit('''
 class A<T> {
diff --git a/pkg/analysis_server/test/services/correction/status_test.dart b/pkg/analysis_server/test/services/correction/status_test.dart
index 555b5824..fe0aae6 100644
--- a/pkg/analysis_server/test/services/correction/status_test.dart
+++ b/pkg/analysis_server/test/services/correction/status_test.dart
@@ -41,7 +41,14 @@
     resolveTestUnit('class MyClass {}');
     Element element = findElement('MyClass');
     SourceRange range = rangeElementName(element);
-    SearchMatch match = new SearchMatch(null, element, range, true, false);
+    SearchMatch match = new SearchMatch(
+        context,
+        element.library.source.uri.toString(),
+        element.source.uri.toString(),
+        null,
+        range,
+        true,
+        false);
     // check
     Location location = newLocation_fromMatch(match);
     expect(location.file, '/test.dart');
diff --git a/pkg/analysis_server/test/services/index2/index2_test.dart b/pkg/analysis_server/test/services/index2/index2_test.dart
new file mode 100644
index 0000000..5a9abb0
--- /dev/null
+++ b/pkg/analysis_server/test/services/index2/index2_test.dart
@@ -0,0 +1,213 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/src/services/index2/index2.dart';
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/summary/idl.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+import 'package:unittest/unittest.dart';
+
+import '../../abstract_single_unit.dart';
+import '../../utils.dart';
+
+main() {
+  initializeTestEnvironment();
+  defineReflectiveTests(Index2Test);
+}
+
+@reflectiveTest
+class Index2Test extends AbstractSingleUnitTest {
+  Index2 index = createMemoryIndex2();
+
+  /**
+   * Return the [Location] with given properties, or fail.
+   */
+  Location findLocation(List<Location> locations, String libraryUri,
+      String unitUri, int offset, int length) {
+    for (Location location in locations) {
+      if (location.libraryUri == libraryUri &&
+          location.unitUri == unitUri &&
+          location.offset == offset &&
+          location.length == length) {
+        return location;
+      }
+    }
+    fail('No at $offset with length $length in\n${locations.join('\n')}');
+    return null;
+  }
+
+  /**
+   * Return the [Location] with given properties, or fail.
+   */
+  Location findLocationSource(
+      List<Location> locations, Source source, String search,
+      {int length}) {
+    String code = source.contents.data;
+    int offset = code.indexOf(search);
+    expect(offset, isNonNegative, reason: 'Not found "$search" in\n$code');
+    length ??= getLeadingIdentifierLength(search);
+    String uri = source.uri.toString();
+    return findLocation(locations, uri, uri, offset, length);
+  }
+
+  /**
+   * Return the [Location] with given properties, or fail.
+   */
+  Location findLocationTest(List<Location> locations, String search,
+      {int length}) {
+    int offset = findOffset(search);
+    length ??= getLeadingIdentifierLength(search);
+    String testUri = testSource.uri.toString();
+    return findLocation(locations, testUri, testUri, offset, length);
+  }
+
+  void setUp() {
+    super.setUp();
+  }
+
+  void tearDown() {
+    super.tearDown();
+    index = null;
+  }
+
+  test_getDefinedNames_classMember() async {
+    _indexTestUnit('''
+class A {
+  test() {}
+}
+class B {
+  int test = 1;
+  main() {
+    int test = 2;
+  }
+}
+''');
+    ClassElement classA = findElement('A');
+    ClassElement classB = findElement('B');
+    List<Location> locations = await index.getDefinedNames(
+        new RegExp(r'^test$'), IndexNameKind.classMember);
+    expect(locations, hasLength(2));
+    _assertHasDefinedName(locations, classA.methods[0]);
+    _assertHasDefinedName(locations, classB.fields[0]);
+  }
+
+  test_getDefinedNames_topLevel() async {
+    _indexTestUnit('''
+class A {} // A
+class B = Object with A;
+typedef C();
+D() {}
+var E = null;
+class NoMatchABCDE {}
+''');
+    Element topA = findElement('A');
+    Element topB = findElement('B');
+    Element topC = findElement('C');
+    Element topD = findElement('D');
+    Element topE = findElement('E');
+    List<Location> locations = await index.getDefinedNames(
+        new RegExp(r'^[A-E]$'), IndexNameKind.topLevel);
+    expect(locations, hasLength(5));
+    _assertHasDefinedName(locations, topA);
+    _assertHasDefinedName(locations, topB);
+    _assertHasDefinedName(locations, topC);
+    _assertHasDefinedName(locations, topD);
+    _assertHasDefinedName(locations, topE);
+  }
+
+  test_getRelations_isExtendedBy() async {
+    _indexTestUnit(r'''
+class A {}
+class B extends A {} // B
+''');
+    Source source2 = _indexUnit(
+        '/test2.dart',
+        r'''
+import 'test.dart';
+class C extends A {} // C
+''');
+    ClassElement elementA = testUnitElement.getType('A');
+    List<Location> locations =
+        await index.getRelations(elementA, IndexRelationKind.IS_EXTENDED_BY);
+    findLocationTest(locations, 'A {} // B');
+    findLocationSource(locations, source2, 'A {} // C');
+  }
+
+  test_getRelations_isReferencedBy() async {
+    _indexTestUnit(r'''
+main(int a, int b) {
+}
+''');
+    ClassElement intElement = context.typeProvider.intType.element;
+    List<Location> locations = await index.getRelations(
+        intElement, IndexRelationKind.IS_REFERENCED_BY);
+    findLocationTest(locations, 'int a');
+    findLocationTest(locations, 'int b');
+  }
+
+  test_getUnresolvedMemberReferences() async {
+    _indexTestUnit('''
+class A {
+  var test; // A
+  mainA() {
+    test(); // a-inv-r-nq
+    test = 1; // a-ref-r-nq
+    test += 2; // a-ref-r-nq
+    print(test); // a-ref-r-nq
+  }
+}
+main(A a, p) {
+  a.test(); // a-inv-r-q
+  a.test = 1; // a-ref-r-q
+  a.test += 2; // a-ref-r-q
+  print(a.test); // a-ref-r-q
+  p.test(); // p-inv-ur-q
+  p.test = 1; // p-ref-ur-q
+  p.test += 2; // p-ref-ur-q
+  print(p.test); // p-ref-ur-q
+  print(p.test2); // not requested
+}
+''');
+    List<Location> locations =
+        await index.getUnresolvedMemberReferences('test');
+    expect(locations, hasLength(4));
+    findLocationTest(locations, 'test(); // p-inv-ur-q');
+    findLocationTest(locations, 'test = 1; // p-ref-ur-q');
+    findLocationTest(locations, 'test += 2; // p-ref-ur-q');
+    findLocationTest(locations, 'test); // p-ref-ur-q');
+  }
+
+  /**
+   * Assert that the given list of [locations] has a [Location] corresponding
+   * to the [element].
+   */
+  void _assertHasDefinedName(List<Location> locations, Element element) {
+    String libraryUri = element.library.source.uri.toString();
+    String unitUri = element.source.uri.toString();
+    for (Location location in locations) {
+      if (location.libraryUri == libraryUri &&
+          location.unitUri == unitUri &&
+          location.offset == element.nameOffset &&
+          location.length == element.nameLength) {
+        return;
+      }
+    }
+    fail('No declaration of $element at ${element.nameOffset} in\n'
+        '${locations.join('\n')}');
+  }
+
+  void _indexTestUnit(String code) {
+    resolveTestUnit(code);
+    index.indexUnit(testUnit);
+  }
+
+  Source _indexUnit(String path, String code) {
+    Source source = addSource(path, code);
+    CompilationUnit unit = resolveLibraryUnit(source);
+    index.indexUnit(unit);
+    return source;
+  }
+}
diff --git a/pkg/analysis_server/test/services/index2/test_all.dart b/pkg/analysis_server/test/services/index2/test_all.dart
new file mode 100644
index 0000000..ebc17d6
--- /dev/null
+++ b/pkg/analysis_server/test/services/index2/test_all.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:unittest/unittest.dart';
+
+import '../../utils.dart';
+import 'index2_test.dart' as index_test;
+
+/**
+ * Utility for manually running all tests.
+ */
+main() {
+  initializeTestEnvironment();
+  group('index', () {
+    index_test.main();
+  });
+}
diff --git a/pkg/analysis_server/test/services/linter/linter_test.dart b/pkg/analysis_server/test/services/linter/linter_test.dart
index a1f57eb..00a9fd6 100644
--- a/pkg/analysis_server/test/services/linter/linter_test.dart
+++ b/pkg/analysis_server/test/services/linter/linter_test.dart
@@ -21,7 +21,7 @@
 
 @reflectiveTest
 class LinterRuleOptionsValidatorTest {
-  final LinterRuleOptionsValidator validator= new LinterRuleOptionsValidator();
+  final LinterRuleOptionsValidator validator = new LinterRuleOptionsValidator();
   final AnalysisOptionsProvider optionsProvider = new AnalysisOptionsProvider();
 
   RecordingErrorListener recorder;
@@ -53,6 +53,17 @@
         []);
   }
 
+  test_linter_null_rule() {
+    validate(
+        '''
+linter:
+  rules:
+    -
+
+    ''',
+        []);
+  }
+
   test_linter_undefined_rule() {
     validate(
         '''
diff --git a/pkg/analysis_server/test/services/refactoring/rename_class_member_test.dart b/pkg/analysis_server/test/services/refactoring/rename_class_member_test.dart
index 43a0a35..46ed173 100644
--- a/pkg/analysis_server/test/services/refactoring/rename_class_member_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/rename_class_member_test.dart
@@ -135,7 +135,27 @@
         expectedMessage: "Renamed method will be invisible in 'my.lib'.");
   }
 
-  test_checkFinalConditions_shadowed_byLocal_inSameClass() async {
+  test_checkFinalConditions_shadowed_byLocalFunction_inSameClass() async {
+    indexTestUnit('''
+class A {
+  test() {}
+  main() {
+    newName() {}
+    test(); // marker
+  }
+}
+''');
+    createRenameRefactoringAtString('test() {}');
+    // check status
+    refactoring.newName = 'newName';
+    RefactoringStatus status = await refactoring.checkFinalConditions();
+    assertRefactoringStatus(status, RefactoringProblemSeverity.ERROR,
+        expectedMessage:
+            "Usage of renamed method will be shadowed by function 'newName'.",
+        expectedContextSearch: 'test(); // marker');
+  }
+
+  test_checkFinalConditions_shadowed_byLocalVariable_inSameClass() async {
     indexTestUnit('''
 class A {
   test() {}
@@ -155,7 +175,7 @@
         expectedContextSearch: 'test(); // marker');
   }
 
-  test_checkFinalConditions_shadowed_byLocal_inSubClass() async {
+  test_checkFinalConditions_shadowed_byLocalVariable_inSubClass() async {
     indexTestUnit('''
 class A {
   test() {}
@@ -177,7 +197,7 @@
         expectedContextSearch: 'test(); // marker');
   }
 
-  test_checkFinalConditions_shadowed_byLocal_OK_qualifiedReference() async {
+  test_checkFinalConditions_shadowed_byLocalVariable_OK_qualifiedReference() async {
     indexTestUnit('''
 class A {
   test() {}
@@ -194,7 +214,7 @@
     assertRefactoringStatusOK(status);
   }
 
-  test_checkFinalConditions_shadowed_byLocal_OK_renamedNotUsed() async {
+  test_checkFinalConditions_shadowed_byLocalVariable_OK_renamedNotUsed() async {
     indexTestUnit('''
 class A {
   test() {}
diff --git a/pkg/analysis_server/test/services/search/search_engine2_test.dart b/pkg/analysis_server/test/services/search/search_engine2_test.dart
new file mode 100644
index 0000000..782c892
--- /dev/null
+++ b/pkg/analysis_server/test/services/search/search_engine2_test.dart
@@ -0,0 +1,714 @@
+// 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.
+
+library test.services.src.search.search_engine2;
+
+import 'dart:async';
+
+import 'package:analysis_server/src/services/index2/index2.dart';
+import 'package:analysis_server/src/services/search/search_engine.dart';
+import 'package:analysis_server/src/services/search/search_engine_internal2.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/member.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+import 'package:unittest/unittest.dart';
+
+import '../../abstract_single_unit.dart';
+import '../../utils.dart';
+
+main() {
+  initializeTestEnvironment();
+  defineReflectiveTests(SearchEngineImpl2Test);
+}
+
+class ExpectedMatch {
+  final Element element;
+  final MatchKind kind;
+  SourceRange range;
+  final bool isResolved;
+  final bool isQualified;
+
+  ExpectedMatch(this.element, this.kind, int offset, int length,
+      {this.isResolved: true, this.isQualified: false}) {
+    this.range = new SourceRange(offset, length);
+  }
+
+  bool operator ==(SearchMatch match) {
+    return match.element == this.element &&
+        match.kind == this.kind &&
+        match.isResolved == this.isResolved &&
+        match.isQualified == this.isQualified &&
+        match.sourceRange == this.range;
+  }
+
+  @override
+  String toString() {
+    StringBuffer buffer = new StringBuffer();
+    buffer.write("ExpectedMatch(kind=");
+    buffer.write(kind);
+    buffer.write(", element=");
+    buffer.write(element != null ? element.displayName : 'null');
+    buffer.write(", range=");
+    buffer.write(range);
+    buffer.write(", isResolved=");
+    buffer.write(isResolved);
+    buffer.write(", isQualified=");
+    buffer.write(isQualified);
+    buffer.write(")");
+    return buffer.toString();
+  }
+}
+
+@reflectiveTest
+class SearchEngineImpl2Test extends AbstractSingleUnitTest {
+  Index2 index;
+  SearchEngineImpl2 searchEngine;
+
+  void setUp() {
+    super.setUp();
+    index = createMemoryIndex2();
+    searchEngine = new SearchEngineImpl2(context, index);
+  }
+
+  test_searchAllSubtypes() async {
+    _indexTestUnit('''
+class T {}
+class A extends T {}
+class B extends A {}
+class C implements B {}
+''');
+    ClassElement element = findElement('T');
+    ClassElement elementA = findElement('A');
+    ClassElement elementB = findElement('B');
+    ClassElement elementC = findElement('C');
+    var expected = [
+      _expectId(elementA, MatchKind.DECLARATION, 'A extends T'),
+      _expectId(elementB, MatchKind.DECLARATION, 'B extends A'),
+      _expectId(elementC, MatchKind.DECLARATION, 'C implements B')
+    ];
+    List<SearchMatch> matches = await searchEngine.searchAllSubtypes(element);
+    _assertMatches(matches, expected);
+  }
+
+  test_searchMemberDeclarations() async {
+    _indexTestUnit('''
+class A {
+  test() {}
+}
+class B {
+  int test = 1;
+  main() {
+    int test = 2;
+  }
+}
+''');
+    ClassElement elementA = findElement('A');
+    ClassElement elementB = findElement('B');
+    var expected = [
+      _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
+      _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;')
+    ];
+    List<SearchMatch> matches =
+        await searchEngine.searchMemberDeclarations('test');
+    _assertMatches(matches, expected);
+  }
+
+  test_searchMemberReferences() async {
+    _indexTestUnit('''
+class A {
+  var test; // A
+  mainA() {
+    test(); // a-inv-r-nq
+    test = 1; // a-ref-r-nq
+    test += 2; // a-ref-r-nq
+    print(test); // a-ref-r-nq
+  }
+}
+main(A a, p) {
+  a.test(); // a-inv-r-q
+  a.test = 1; // a-ref-r-q
+  a.test += 2; // a-ref-r-q
+  print(a.test); // a-ref-r-q
+  p.test(); // p-inv-ur-q
+  p.test = 1; // p-ref-ur-q
+  p.test += 2; // p-ref-ur-q
+  print(p.test); // p-ref-ur-q
+}
+''');
+    Element main = findElement('main');
+    var expected = [
+      _expectIdQ(main, MatchKind.REFERENCE, 'test(); // p-inv-ur-q'),
+      _expectIdQ(main, MatchKind.REFERENCE, 'test = 1; // p-ref-ur-q'),
+      _expectIdQ(main, MatchKind.REFERENCE, 'test += 2; // p-ref-ur-q'),
+      _expectIdQ(main, MatchKind.REFERENCE, 'test); // p-ref-ur-q'),
+    ];
+    List<SearchMatch> matches =
+        await searchEngine.searchMemberReferences('test');
+    _assertMatches(matches, expected);
+  }
+
+  test_searchReferences_ClassElement() async {
+    _indexTestUnit('''
+class A {}
+main(A p) {
+  A v;
+}
+''');
+    ClassElement element = findElement('A');
+    Element pElement = findElement('p');
+    Element vElement = findElement('v');
+    var expected = [
+      _expectId(pElement, MatchKind.REFERENCE, 'A p'),
+      _expectId(vElement, MatchKind.REFERENCE, 'A v')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_CompilationUnitElement() async {
+    addSource(
+        '/my_part.dart',
+        '''
+part of lib;
+''');
+    _indexTestUnit('''
+library lib;
+part 'my_part.dart';
+''');
+    CompilationUnitElement element = testLibraryElement.parts[0];
+    var expected = [
+      _expectIdQ(testUnitElement, MatchKind.REFERENCE, "'my_part.dart'",
+          length: "'my_part.dart'".length)
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ConstructorElement() async {
+    _indexTestUnit('''
+class A {
+  A.named() {}
+}
+main() {
+  new A.named();
+}
+''');
+    ConstructorElement element = findElement('named');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectIdQ(mainElement, MatchKind.REFERENCE, '.named();', length: 6)
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_Element_unknown() async {
+    await _verifyReferences(DynamicElementImpl.instance, []);
+  }
+
+  test_searchReferences_FieldElement() async {
+    _indexTestUnit('''
+class A {
+  var field;
+  A({this.field});
+  main() {
+    new A(field: 1);
+    // getter
+    print(field); // ref-nq
+    print(this.field); // ref-q
+    field(); // inv-nq
+    this.field(); // inv-q
+    // setter
+    field = 2; // ref-nq;
+    this.field = 3; // ref-q;
+  }
+}
+''');
+    FieldElement element = findElement('field');
+    Element main = findElement('main');
+    Element fieldParameter = findElement('field', ElementKind.PARAMETER);
+    var expected = [
+      _expectIdQ(fieldParameter, MatchKind.REFERENCE, 'field}'),
+      _expectIdQ(main, MatchKind.REFERENCE, 'field: 1'),
+      _expectId(main, MatchKind.READ, 'field); // ref-nq'),
+      _expectIdQ(main, MatchKind.READ, 'field); // ref-q'),
+      _expectId(main, MatchKind.INVOCATION, 'field(); // inv-nq'),
+      _expectIdQ(main, MatchKind.INVOCATION, 'field(); // inv-q'),
+      _expectId(main, MatchKind.WRITE, 'field = 2; // ref-nq'),
+      _expectIdQ(main, MatchKind.WRITE, 'field = 3; // ref-q'),
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_FunctionElement() async {
+    _indexTestUnit('''
+test() {}
+main() {
+  test();
+  print(test);
+}
+''');
+    FunctionElement element = findElement('test');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.INVOCATION, 'test();'),
+      _expectId(mainElement, MatchKind.REFERENCE, 'test);')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_FunctionElement_local() async {
+    _indexTestUnit('''
+main() {
+  test() {}
+  test();
+  print(test);
+}
+''');
+    FunctionElement element = findElement('test');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.INVOCATION, 'test();'),
+      _expectId(mainElement, MatchKind.REFERENCE, 'test);')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_FunctionTypeAliasElement() async {
+    _indexTestUnit('''
+typedef Test();
+main() {
+  Test a;
+  Test b;
+}
+''');
+    FunctionTypeAliasElement element = findElement('Test');
+    Element aElement = findElement('a');
+    Element bElement = findElement('b');
+    var expected = [
+      _expectId(aElement, MatchKind.REFERENCE, 'Test a;'),
+      _expectId(bElement, MatchKind.REFERENCE, 'Test b;')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ImportElement_noPrefix() async {
+    _indexTestUnit('''
+import 'dart:math';
+main() {
+  print(PI);
+  print(new Random());
+  print(max(1, 2));
+}
+Random bar() => null;
+''');
+    ImportElement element = testLibraryElement.imports[0];
+    Element mainElement = findElement('main');
+    Element barElement = findElement('bar');
+    var kind = MatchKind.REFERENCE;
+    var expected = [
+      _expectId(mainElement, kind, 'PI);', length: 0),
+      _expectId(mainElement, kind, 'Random()', length: 0),
+      _expectId(mainElement, kind, 'max(', length: 0),
+      _expectId(barElement, kind, 'Random bar()', length: 0),
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ImportElement_withPrefix() async {
+    _indexTestUnit('''
+import 'dart:math' as math;
+main() {
+  print(math.PI);
+  print(new math.Random());
+  print(math.max(1, 2));
+}
+math.Random bar() => null;
+''');
+    ImportElement element = testLibraryElement.imports[0];
+    Element mainElement = findElement('main');
+    Element barElement = findElement('bar');
+    var kind = MatchKind.REFERENCE;
+    var length = 'math.'.length;
+    var expected = [
+      _expectId(mainElement, kind, 'math.PI);', length: length),
+      _expectId(mainElement, kind, 'math.Random()', length: length),
+      _expectId(mainElement, kind, 'math.max(', length: length),
+      _expectId(barElement, kind, 'math.Random bar()', length: length),
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_LabelElement() async {
+    _indexTestUnit('''
+main() {
+label:
+  while (true) {
+    if (true) {
+      break label; // 1
+    }
+    break label; // 2
+  }
+}
+''');
+    LabelElement element = findElement('label');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.REFERENCE, 'label; // 1'),
+      _expectId(mainElement, MatchKind.REFERENCE, 'label; // 2')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_LibraryElement() async {
+    var codeA = 'part of lib; // A';
+    var codeB = 'part of lib; // B';
+    addSource('/unitA.dart', codeA);
+    addSource('/unitB.dart', codeB);
+    _indexTestUnit('''
+library lib;
+part 'unitA.dart';
+part 'unitB.dart';
+''');
+    LibraryElement element = testLibraryElement;
+    CompilationUnitElement unitElementA = element.parts[0];
+    CompilationUnitElement unitElementB = element.parts[1];
+    index.indexUnit(unitElementA.computeNode());
+    index.indexUnit(unitElementB.computeNode());
+    var expected = [
+      new ExpectedMatch(unitElementA, MatchKind.REFERENCE,
+          codeA.indexOf('lib; // A'), 'lib'.length),
+      new ExpectedMatch(unitElementB, MatchKind.REFERENCE,
+          codeB.indexOf('lib; // B'), 'lib'.length),
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_LocalVariableElement() async {
+    _indexTestUnit('''
+main() {
+  var v;
+  v = 1;
+  v += 2;
+  print(v);
+  v();
+}
+''');
+    LocalVariableElement element = findElement('v');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.WRITE, 'v = 1;'),
+      _expectId(mainElement, MatchKind.READ_WRITE, 'v += 2;'),
+      _expectId(mainElement, MatchKind.READ, 'v);'),
+      _expectId(mainElement, MatchKind.INVOCATION, 'v();')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_MethodElement() async {
+    _indexTestUnit('''
+class A {
+  m() {}
+  main() {
+    m(); // 1
+    this.m(); // 2
+    print(m); // 3
+    print(this.m); // 4
+  }
+}
+''');
+    MethodElement method = findElement('m');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.INVOCATION, 'm(); // 1'),
+      _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // 2'),
+      _expectId(mainElement, MatchKind.REFERENCE, 'm); // 3'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 'm); // 4')
+    ];
+    await _verifyReferences(method, expected);
+  }
+
+  test_searchReferences_MethodMember() async {
+    _indexTestUnit('''
+class A<T> {
+  T m() => null;
+}
+main(A<int> a) {
+  a.m(); // ref
+}
+''');
+    MethodMember method = findNodeElementAtString('m(); // ref');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // ref')
+    ];
+    await _verifyReferences(method, expected);
+  }
+
+  test_searchReferences_ParameterElement_ofLocalFunction() async {
+    _indexTestUnit('''
+main() {
+  foo({p}) {
+    p = 1;
+    p += 2;
+    print(p);
+    p();
+  }
+  foo(p: 42);
+}
+''');
+    ParameterElement element = findElement('p');
+    Element fooElement = findElement('foo');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
+      _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
+      _expectId(fooElement, MatchKind.READ, 'p);'),
+      _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 'p: 42')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ParameterElement_ofMethod() async {
+    _indexTestUnit('''
+class C {
+  foo({p}) {
+    p = 1;
+    p += 2;
+    print(p);
+    p();
+  }
+}
+main(C c) {
+  c.foo(p: 42);
+}
+''');
+    ParameterElement element = findElement('p');
+    Element fooElement = findElement('foo');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
+      _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
+      _expectId(fooElement, MatchKind.READ, 'p);'),
+      _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 'p: 42')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ParameterElement_ofTopLevelFunction() async {
+    _indexTestUnit('''
+foo({p}) {
+  p = 1;
+  p += 2;
+  print(p);
+  p();
+}
+main() {
+  foo(p: 42);
+}
+''');
+    ParameterElement element = findElement('p');
+    Element fooElement = findElement('foo');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
+      _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
+      _expectId(fooElement, MatchKind.READ, 'p);'),
+      _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 'p: 42')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_PrefixElement() async {
+    _indexTestUnit('''
+import 'dart:async' as ppp;
+main() {
+  ppp.Future a;
+  ppp.Stream b;
+}
+''');
+    PrefixElement element = findNodeElementAtString('ppp;');
+    Element elementA = findElement('a');
+    Element elementB = findElement('b');
+    var expected = [
+      _expectId(elementA, MatchKind.REFERENCE, 'ppp.Future'),
+      _expectId(elementB, MatchKind.REFERENCE, 'ppp.Stream')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_PropertyAccessorElement_getter() async {
+    _indexTestUnit('''
+class A {
+  get g => null;
+  main() {
+    g; // 1
+    this.g; // 2
+  }
+}
+''');
+    PropertyAccessorElement element = findElement('g', ElementKind.GETTER);
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.REFERENCE, 'g; // 1'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 'g; // 2')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_PropertyAccessorElement_setter() async {
+    _indexTestUnit('''
+class A {
+  set s(x) {}
+  main() {
+    s = 1;
+    this.s = 2;
+  }
+}
+''');
+    PropertyAccessorElement element = findElement('s=');
+    Element mainElement = findElement('main');
+    var expected = [
+      _expectId(mainElement, MatchKind.REFERENCE, 's = 1'),
+      _expectIdQ(mainElement, MatchKind.REFERENCE, 's = 2')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_TopLevelVariableElement() async {
+    addSource(
+        '/lib.dart',
+        '''
+library lib;
+var V;
+''');
+    _indexTestUnit('''
+import 'lib.dart' show V; // imp
+import 'lib.dart' as pref;
+main() {
+  pref.V = 1; // q
+  print(pref.V); // q
+  pref.V(); // q
+  V = 1; // nq
+  print(V); // nq
+  V(); // nq
+}
+''');
+    ImportElement importElement = testLibraryElement.imports[0];
+    CompilationUnitElement impUnit =
+        importElement.importedLibrary.definingCompilationUnit;
+    TopLevelVariableElement variable = impUnit.topLevelVariables[0];
+    Element main = findElement('main');
+    var expected = [
+      _expectIdQ(testUnitElement, MatchKind.REFERENCE, 'V; // imp'),
+      _expectIdQ(main, MatchKind.WRITE, 'V = 1; // q'),
+      _expectIdQ(main, MatchKind.READ, 'V); // q'),
+      _expectIdQ(main, MatchKind.INVOCATION, 'V(); // q'),
+      _expectId(main, MatchKind.WRITE, 'V = 1; // nq'),
+      _expectId(main, MatchKind.READ, 'V); // nq'),
+      _expectId(main, MatchKind.INVOCATION, 'V(); // nq'),
+    ];
+    await _verifyReferences(variable, expected);
+  }
+
+  test_searchReferences_TypeParameterElement() async {
+    _indexTestUnit('''
+class A<T> {
+  main(T a, T b) {}
+}
+''');
+    TypeParameterElement element = findElement('T');
+    Element aElement = findElement('a');
+    Element bElement = findElement('b');
+    var expected = [
+      _expectId(aElement, MatchKind.REFERENCE, 'T a'),
+      _expectId(bElement, MatchKind.REFERENCE, 'T b')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchSubtypes() async {
+    _indexTestUnit('''
+class T {}
+class A extends T {} // A
+class B = Object with T; // B
+class C implements T {} // C
+''');
+    ClassElement element = findElement('T');
+    ClassElement elementA = findElement('A');
+    ClassElement elementB = findElement('B');
+    ClassElement elementC = findElement('C');
+    var expected = [
+      _expectId(elementA, MatchKind.REFERENCE, 'T {} // A'),
+      _expectId(elementB, MatchKind.REFERENCE, 'T; // B'),
+      _expectId(elementC, MatchKind.REFERENCE, 'T {} // C')
+    ];
+    List<SearchMatch> matches = await searchEngine.searchSubtypes(element);
+    _assertMatches(matches, expected);
+  }
+
+  test_searchTopLevelDeclarations() async {
+    _indexTestUnit('''
+class A {} // A
+class B = Object with A;
+typedef C();
+D() {}
+var E = null;
+class NoMatchABCDE {}
+''');
+    Element topA = findElement('A');
+    Element topB = findElement('B');
+    Element topC = findElement('C');
+    Element topD = findElement('D');
+    Element topE = findElement('E');
+    var expected = [
+      _expectId(topA, MatchKind.DECLARATION, 'A {} // A'),
+      _expectId(topB, MatchKind.DECLARATION, 'B ='),
+      _expectId(topC, MatchKind.DECLARATION, 'C()'),
+      _expectId(topD, MatchKind.DECLARATION, 'D() {}'),
+      _expectId(topE, MatchKind.DECLARATION, 'E = null')
+    ];
+    List<SearchMatch> matches =
+        await searchEngine.searchTopLevelDeclarations(r'^[A-E]$');
+    _assertMatches(matches, expected);
+  }
+
+  ExpectedMatch _expectId(Element element, MatchKind kind, String search,
+      {int length, bool isResolved: true, bool isQualified: false}) {
+    int offset = findOffset(search);
+    if (length == null) {
+      length = getLeadingIdentifierLength(search);
+    }
+    return new ExpectedMatch(element, kind, offset, length,
+        isResolved: isResolved, isQualified: isQualified);
+  }
+
+  ExpectedMatch _expectIdQ(Element element, MatchKind kind, String search,
+      {int length}) {
+    return _expectId(element, kind, search, isQualified: true, length: length);
+  }
+
+//  ExpectedMatch _expectIdU(Element element, MatchKind kind, String search) {
+//    return _expectId(element, kind, search,
+//        isQualified: true, isResolved: false);
+//  }
+
+  void _indexTestUnit(String code) {
+    resolveTestUnit(code);
+    index.indexUnit(testUnit);
+  }
+
+  Future _verifyReferences(
+      Element element, List<ExpectedMatch> expectedMatches) async {
+    List<SearchMatch> matches = await searchEngine.searchReferences(element);
+    _assertMatches(matches, expectedMatches);
+  }
+
+  static void _assertMatches(
+      List<SearchMatch> matches, List<ExpectedMatch> expectedMatches) {
+    expect(matches, unorderedEquals(expectedMatches));
+  }
+}
diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
index 0e38446..c4e757c 100644
--- a/pkg/analysis_server/test/services/search/search_engine_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
@@ -15,7 +15,6 @@
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
-import 'package:typed_mock/typed_mock.dart';
 import 'package:unittest/unittest.dart';
 
 import '../../abstract_single_unit.dart';
@@ -64,8 +63,6 @@
   }
 }
 
-class MockIndex extends TypedMock implements Index {}
-
 @reflectiveTest
 class SearchEngineImplTest extends AbstractSingleUnitTest {
   Index index;
@@ -98,31 +95,6 @@
     });
   }
 
-  Future test_searchElementDeclarations() {
-    _indexTestUnit('''
-class A {
-  test() {}
-}
-class B {
-  int test = 1;
-  main() {
-    int test = 2;
-  }
-}
-''');
-    ClassElement elementA = findElement('A');
-    ClassElement elementB = findElement('B');
-    Element element_test = findElement('test', ElementKind.LOCAL_VARIABLE);
-    var expected = [
-      _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
-      _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;'),
-      _expectId(element_test, MatchKind.DECLARATION, 'test = 2;'),
-    ];
-    return searchEngine.searchElementDeclarations('test').then((matches) {
-      _assertMatches(matches, expected);
-    });
-  }
-
   Future test_searchMemberDeclarations() {
     _indexTestUnit('''
 class A {
diff --git a/pkg/analysis_server/test/services/search/test_all.dart b/pkg/analysis_server/test/services/search/test_all.dart
index 187d3f3..513c397 100644
--- a/pkg/analysis_server/test/services/search/test_all.dart
+++ b/pkg/analysis_server/test/services/search/test_all.dart
@@ -8,6 +8,7 @@
 
 import '../../utils.dart';
 import 'hierarchy_test.dart' as hierarchy_test;
+import 'search_engine2_test.dart' as search_engine2_test;
 import 'search_engine_test.dart' as search_engine_test;
 
 /**
@@ -17,6 +18,7 @@
   initializeTestEnvironment();
   group('search', () {
     hierarchy_test.main();
+    search_engine2_test.main();
     search_engine_test.main();
   });
 }
diff --git a/pkg/analysis_server/test/services/test_all.dart b/pkg/analysis_server/test/services/test_all.dart
index e0c2086..6373800 100644
--- a/pkg/analysis_server/test/services/test_all.dart
+++ b/pkg/analysis_server/test/services/test_all.dart
@@ -9,6 +9,7 @@
 import 'correction/test_all.dart' as correction_all;
 import 'dependencies/test_all.dart' as dependencies_all;
 import 'index/test_all.dart' as index_all;
+import 'index2/test_all.dart' as index2_all;
 import 'linter/linter_test.dart' as linter_all;
 import 'refactoring/test_all.dart' as refactoring_all;
 import 'search/test_all.dart' as search_all;
@@ -20,6 +21,7 @@
   correction_all.main();
   dependencies_all.main();
   index_all.main();
+  index2_all.main();
   linter_all.main();
   refactoring_all.main();
   search_all.main();
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 5db934d..3d4f6ae 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
@@ -60,8 +60,8 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) {
       builder.addInsertion(0, (DartEditBuilder builder) {
-        builder.writeClassDeclaration('C',
-            interfaces: [declaration.element.type]);
+        builder
+            .writeClassDeclaration('C', interfaces: [declaration.element.type]);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -549,7 +549,7 @@
     builder.addFileEdit(source, 1, (DartFileEditBuilderImpl builder) {
       builder.addInsertion(content.length - 1, (DartEditBuilder builder) {
         builder
-            .writeType(classB.element.type.substitute4([classA.element.type]));
+            .writeType(classB.element.type.instantiate([classA.element.type]));
       });
     });
     SourceEdit edit = getEdit(builder);
diff --git a/pkg/analyzer/.analysis_options b/pkg/analyzer/.analysis_options
index 7c974bd..2b11248 100644
--- a/pkg/analyzer/.analysis_options
+++ b/pkg/analyzer/.analysis_options
@@ -1,5 +1,6 @@
 linter:
   rules:
-    - annotate_overrides
+    # TODO(pq): re-enable once we have a bulk edit tool
+    # - annotate_overrides
     - empty_constructor_bodies
     - unnecessary_brace_in_string_interp
diff --git a/pkg/analyzer/README.md b/pkg/analyzer/README.md
index c6ad981..18dd9b2 100644
--- a/pkg/analyzer/README.md
+++ b/pkg/analyzer/README.md
@@ -15,7 +15,7 @@
 
 ## Configuring the analyzer
 
-Both the dartanalyzer and Dart Analysis Server can be configured
+Both `dartanalyzer` and Dart Analysis Server can be configured
 with a `.analysis_options` file. This YAML file can control which files
 and paths are analyzed, which lints are applied, and more.
 
@@ -25,14 +25,14 @@
 
 The `.analysis_options` file should live
 at the root of your project (for example, next to your `pubspec.yaml`).
-Different embedders of analyzer, such as dartanalyzer or Dart Analysis Server,
+Different embedders of analyzer, such as `dartanalyzer` or Dart Analysis Server,
 may choose to find the file in various different ways. Consult their
 documentation to learn more.
 
 Here is an example file that instructs the analyzer
 to ignore two files:
 
-```
+```yaml
 analyzer:
   exclude:
     - test/_data/p4/lib/lib1.dart
@@ -45,14 +45,14 @@
 
 Here is an example file that enables the analyzer's [strong mode][strongmode]:
 
-```
+```yaml
 analyzer:
   strong-mode: true
 ```
 
 Here is an example file that enables two lint rules:
 
-```
+```yaml
 linter:
   rules:
     - camel_case_types
@@ -64,7 +64,7 @@
 You can combine the `analyzer` section and the `linter` section into a single
 configuration. Here is an example:
 
-```
+```yaml
 analyzer:
   exclude:
     - test/_data/p4/lib/lib1.dart
@@ -77,17 +77,16 @@
 
 Many tools embed this library, such as:
 
-* dartfmt - a formatter for Dart code
-* dartdoc - a documentation generator for Dart code
-* Dart Analysis Server - a stateful server that supports IDEs and editors
+* [dartfmt] - a formatter for Dart code
+* [dartdoc] - a documentation generator for Dart code
+* [Dart Analysis Server][analysis_sever] - a stateful server that supports IDEs and editors
 
 ## Support
 
-Questions and requests for additional functionality are welcome.
-Please open an issue at
-[http://dartbug.com](http://dartbug.com)
-or by email
-[analyzer-discuss@dartlang.org][list].
+Post issues and feature requests at https://github.com/dart-lang/sdk/issues
+
+Questions and discussions are welcome at the
+[Dart Analyzer Discussion Group][list].
 
 ## Background
 
@@ -103,11 +102,15 @@
 
 ## License
 
-See the LICENSE file.
+See the [LICENSE] file.
 
-[serverapi]: http://htmlpreview.github.io/?https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/doc/api.html
-[analyzercli]: https://github.com/dart-lang/analyzer_cli
+[serverapi]: https://htmlpreview.github.io/?https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/doc/api.html
+[analyzercli]: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli
 [list]: https://groups.google.com/a/dartlang.org/forum/#!forum/analyzer-discuss
 [lintrules]: http://dart-lang.github.io/linter/lints/
 [strongmode]: https://github.com/dart-lang/dev_compiler/blob/master/STRONG_MODE.md
 [glob]: https://pub.dartlang.org/packages/glob
+[LICENSE]: https://github.com/dart-lang/sdk/blob/master/pkg/analyzer/LICENSE
+[dartfmt]: https://github.com/dart-lang/dart_style
+[dartdoc]: https://github.com/dart-lang/dartdoc
+[analysis_sever]: https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server
diff --git a/pkg/analyzer/lib/analyzer.dart b/pkg/analyzer/lib/analyzer.dart
index fffb006..5cbc96a 100644
--- a/pkg/analyzer/lib/analyzer.dart
+++ b/pkg/analyzer/lib/analyzer.dart
@@ -35,8 +35,7 @@
 /// parsed.
 CompilationUnit parseCompilationUnit(String contents,
     {String name, bool suppressErrors: false, bool parseFunctionBodies: true}) {
-  if (name == null) name = '<unknown source>';
-  var source = new StringSource(contents, name);
+  Source source = new StringSource(contents, name);
   return _parseSource(contents, source,
       suppressErrors: suppressErrors, parseFunctionBodies: parseFunctionBodies);
 }
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index e89eb22..17e2f54 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -813,6 +813,11 @@
    */
   bool get isOverride;
 
+  /**
+   * Return `true` if this annotation marks the associated member as requiring
+   * overriding methods to call super.
+   */
+  bool get isMustCallSuper;
 
   /**
    * Return `true` if this annotation marks the associated member as being
diff --git a/pkg/analyzer/lib/dart/element/type.dart b/pkg/analyzer/lib/dart/element/type.dart
index 3ff2ce8..11c97e8 100644
--- a/pkg/analyzer/lib/dart/element/type.dart
+++ b/pkg/analyzer/lib/dart/element/type.dart
@@ -132,6 +132,15 @@
   bool isSupertypeOf(DartType type);
 
   /**
+   * If this type is a [TypeParameterType], returns its bound if it has one, or
+   * [objectType] otherwise.
+   *
+   * For any other type, returns `this`. Applies recursively -- if the bound is
+   * itself a type parameter, that is resolved too.
+   */
+  DartType resolveToBound(DartType objectType);
+
+  /**
    * Return the type resulting from substituting the given [argumentTypes] for
    * the given [parameterTypes] in this type. The specification defines this
    * operation in section 2:
@@ -150,15 +159,6 @@
    */
   DartType substitute2(
       List<DartType> argumentTypes, List<DartType> parameterTypes);
-
-  /**
-   * If this type is a [TypeParameterType], returns its bound if it has one, or
-   * [objectType] otherwise.
-   *
-   * For any other type, returns `this`. Applies recursively -- if the bound is
-   * itself a type parameter, that is resolved too.
-   */
-  DartType resolveToBound(DartType objectType);
 }
 
 /**
@@ -242,10 +242,7 @@
    */
   List<TypeParameterElement> get typeFormals;
 
-  /**
-   * Return the type resulting from instantiating (replacing) the given
-   * [argumentTypes] for this function's bound type parameters.
-   */
+  @override
   FunctionType instantiate(List<DartType> argumentTypes);
 
   /**
@@ -401,6 +398,9 @@
    */
   PropertyAccessorElement getSetter(String name);
 
+  @override
+  InterfaceType instantiate(List<DartType> argumentTypes);
+
   /**
    * Return `true` if this type is a direct supertype of the given [type]. The
    * implicit interface of class <i>I</i> is a direct supertype of the implicit
@@ -633,12 +633,7 @@
    * type's parameters. This is fully equivalent to `substitute2(argumentTypes,
    * getTypeArguments())`.
    */
-  // TODO(jmesserly): introduce a new "instantiate" and deprecate this.
-  // The new "instantiate" should work similar to FunctionType.instantiate,
-  // which uses [typeFormals] to model type parameters that haven't been
-  // filled in yet. Those are kept separate from already-substituted type
-  // parameters or free variables from the enclosing scopes, which allows nested
-  // generics to work, such as a generic method in a generic class.
+  @deprecated // use instantiate
   InterfaceType substitute4(List<DartType> argumentTypes);
 
   /**
@@ -665,7 +660,7 @@
  * This substitution will be propagated to its members. For example, say our
  * `Foo<T>` class has a field `T bar;`. When we look up this field, we will get
  * back a [FieldElement] that tracks the substituted type as `{S/T}T`, so when
- * we ask for the field type we will get`S`.
+ * we ask for the field type we will get `S`.
  *
  * Clients may not extend, implement or mix-in this class.
  */
@@ -684,6 +679,12 @@
    * Return a list containing all of the type parameters declared for this type.
    */
   List<TypeParameterElement> get typeParameters;
+
+  /**
+   * Return the type resulting from instantiating (replacing) the given
+   * [argumentTypes] for this type's bound type parameters.
+   */
+  ParameterizedType instantiate(List<DartType> argumentTypes);
 }
 
 /**
diff --git a/pkg/analyzer/lib/src/context/cache.dart b/pkg/analyzer/lib/src/context/cache.dart
index bbb0e69..de913f3 100644
--- a/pkg/analyzer/lib/src/context/cache.dart
+++ b/pkg/analyzer/lib/src/context/cache.dart
@@ -1095,7 +1095,7 @@
 /**
  * [InvalidatedResult] describes an invalidated result.
  */
-class InvalidatedResult {
+class InvalidatedResult<V> {
   /**
    * The target in which the result was invalidated.
    */
@@ -1104,12 +1104,13 @@
   /**
    * The descriptor of the result which was invalidated.
    */
-  final ResultDescriptor descriptor;
+  final ResultDescriptor<V> descriptor;
 
   /**
-   * The value of the result which was invalidated.
+   * The value of the result before it was invalidated, may be the default
+   * value if the result was flushed.
    */
-  final Object value;
+  final V value;
 
   InvalidatedResult(this.entry, this.descriptor, this.value);
 
diff --git a/pkg/analyzer/lib/src/context/context.dart b/pkg/analyzer/lib/src/context/context.dart
index def719f..2c4ef43 100644
--- a/pkg/analyzer/lib/src/context/context.dart
+++ b/pkg/analyzer/lib/src/context/context.dart
@@ -194,6 +194,13 @@
   ResultProvider resultProvider;
 
   /**
+   * The map of [ResultChangedEvent] controllers.
+   */
+  final Map<ResultDescriptor, StreamController<ResultChangedEvent>>
+      _resultChangedControllers =
+      <ResultDescriptor, StreamController<ResultChangedEvent>>{};
+
+  /**
    * The most recently incrementally resolved source, or `null` when it was
    * already validated, or the most recent change was not incrementally resolved.
    */
@@ -682,10 +689,19 @@
     if (sdk == null) {
       return new AnalysisCache(<CachePartition>[_privatePartition]);
     }
-    return new AnalysisCache(<CachePartition>[
+    AnalysisCache cache = new AnalysisCache(<CachePartition>[
       AnalysisEngine.instance.partitionManager.forSdk(sdk),
       _privatePartition
     ]);
+    cache.onResultInvalidated.listen((InvalidatedResult event) {
+      StreamController<ResultChangedEvent> controller =
+          _resultChangedControllers[event.descriptor];
+      if (controller != null) {
+        controller.add(new ResultChangedEvent(
+            this, event.entry.target, event.descriptor, event.value, false));
+      }
+    });
+    return cache;
   }
 
   /**
@@ -1099,8 +1115,24 @@
   }
 
   @override
+  Stream<ResultChangedEvent> onResultChanged(ResultDescriptor descriptor) {
+    driver.onResultComputed(descriptor).listen((ResultChangedEvent event) {
+      _resultChangedControllers[descriptor]?.add(event);
+    });
+    return _resultChangedControllers.putIfAbsent(descriptor, () {
+      return new StreamController<ResultChangedEvent>.broadcast(sync: true);
+    }).stream;
+  }
+
+  @override
+  @deprecated
   Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor) {
-    return driver.onResultComputed(descriptor);
+    return onResultChanged(descriptor)
+        .where((event) => event.wasComputed)
+        .map((event) {
+      return new ComputedResult(
+          event.context, event.descriptor, event.target, event.value);
+    });
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/builder.dart b/pkg/analyzer/lib/src/dart/element/builder.dart
index 23869ee..8dfc781 100644
--- a/pkg/analyzer/lib/src/dart/element/builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/builder.dart
@@ -204,11 +204,6 @@
   Object visitImportDirective(ImportDirective node) {
     // Remove previous element. (It will remain null if the target is missing.)
     node.element = null;
-
-    String uriContent = node.uriContent;
-    if (DartUriResolver.isDartExtUri(uriContent)) {
-      libraryElement.hasExtUri = true;
-    }
     Source importedSource = node.source;
     if (importedSource != null && context.exists(importedSource)) {
       // The imported source will be null if the URI in the import
@@ -225,7 +220,7 @@
           importElement.uriOffset = uriLiteral.offset;
           importElement.uriEnd = uriLiteral.end;
         }
-        importElement.uri = uriContent;
+        importElement.uri = node.uriContent;
         importElement.deferred = node.deferredKeyword != null;
         importElement.combinators = _buildCombinators(node);
         importElement.importedLibrary = importedLibrary;
@@ -312,7 +307,7 @@
    * The compilation unit element into which the elements being built will be
    * stored.
    */
-  final CompilationUnitElement compilationUnitElement;
+  final CompilationUnitElementImpl compilationUnitElement;
 
   /**
    * The element holder associated with the element that is currently being built.
@@ -339,9 +334,9 @@
   HashMap<String, FieldElement> _fieldMap;
 
   /**
-   * Initialize a newly created element builder to build the elements for a compilation unit.
-   *
-   * @param initialHolder the element holder associated with the compilation unit being built
+   * Initialize a newly created element builder to build the elements for a
+   * compilation unit. The [initialHolder] is the element holder to which the
+   * children of the visited compilation unit node will be added.
    */
   ElementBuilder(ElementHolder initialHolder, this.compilationUnitElement) {
     _currentHolder = initialHolder;
@@ -484,7 +479,7 @@
   @override
   Object visitCompilationUnit(CompilationUnit node) {
     if (compilationUnitElement is ElementImpl) {
-      _setCodeRange(compilationUnitElement as ElementImpl, node);
+      _setCodeRange(compilationUnitElement, node);
     }
     return super.visitCompilationUnit(node);
   }
@@ -626,6 +621,27 @@
     // to subclass, mix-in, implement, or explicitly instantiate an enum).  So
     // we represent this as having no constructors.
     enumElement.constructors = ConstructorElement.EMPTY_LIST;
+    //
+    // Build the elements for the constants. These are minimal elements; the
+    // rest of the constant elements (and elements for other fields) must be
+    // built later after we can access the type provider.
+    //
+    List<FieldElement> fields = new List<FieldElement>();
+    NodeList<EnumConstantDeclaration> constants = node.constants;
+    for (EnumConstantDeclaration constant in constants) {
+      SimpleIdentifier constantName = constant.name;
+      FieldElementImpl constantField =
+          new ConstFieldElementImpl.forNode(constantName);
+      constantField.static = true;
+      constantField.const3 = true;
+      constantField.type = enumType;
+      setElementDocumentationComment(constantField, constant);
+      fields.add(constantField);
+      _createGetter(constantField);
+      constantName.staticElement = constantField;
+    }
+    enumElement.fields = fields;
+
     _currentHolder.addEnum(enumElement);
     enumName.staticElement = enumElement;
     return super.visitEnumDeclaration(node);
@@ -633,7 +649,9 @@
 
   @override
   Object visitExportDirective(ExportDirective node) {
-    _createElementAnnotations(node.metadata);
+    List<ElementAnnotation> annotations =
+        _createElementAnnotations(node.metadata);
+    compilationUnitElement.setAnnotations(node.offset, annotations);
     return super.visitExportDirective(node);
   }
 
@@ -895,7 +913,9 @@
 
   @override
   Object visitImportDirective(ImportDirective node) {
-    _createElementAnnotations(node.metadata);
+    List<ElementAnnotation> annotations =
+        _createElementAnnotations(node.metadata);
+    compilationUnitElement.setAnnotations(node.offset, annotations);
     return super.visitImportDirective(node);
   }
 
@@ -906,7 +926,6 @@
       SimpleIdentifier labelName = label.label;
       LabelElementImpl element =
           new LabelElementImpl.forNode(labelName, onSwitchStatement, false);
-      _setCodeRange(element, node);
       _currentHolder.addLabel(element);
       labelName.staticElement = element;
     }
@@ -915,7 +934,9 @@
 
   @override
   Object visitLibraryDirective(LibraryDirective node) {
-    _createElementAnnotations(node.metadata);
+    List<ElementAnnotation> annotations =
+        _createElementAnnotations(node.metadata);
+    compilationUnitElement.setAnnotations(node.offset, annotations);
     return super.visitLibraryDirective(node);
   }
 
@@ -1078,7 +1099,9 @@
 
   @override
   Object visitPartDirective(PartDirective node) {
-    _createElementAnnotations(node.metadata);
+    List<ElementAnnotation> annotations =
+        _createElementAnnotations(node.metadata);
+    compilationUnitElement.setAnnotations(node.offset, annotations);
     return super.visitPartDirective(node);
   }
 
@@ -1314,6 +1337,18 @@
   }
 
   /**
+   * Create a getter that corresponds to the given [field].
+   */
+  void _createGetter(FieldElementImpl field) {
+    PropertyAccessorElementImpl getter =
+        new PropertyAccessorElementImpl.forVariable(field);
+    getter.getter = true;
+    getter.returnType = field.type;
+    getter.type = new FunctionTypeImpl(getter);
+    field.getter = getter;
+  }
+
+  /**
    * Create the types associated with the given type parameters, setting the type of each type
    * parameter, and return an array of types corresponding to the given parameters.
    *
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index e3f4dfe..310e4e9 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -928,6 +928,13 @@
   Source librarySource;
 
   /**
+   * A table mapping the offset of a directive to the annotations associated
+   * with that directive, or `null` if none of the annotations in the
+   * compilation unit have annotations.
+   */
+  Map<int, List<ElementAnnotation>> annotationMap = null;
+
+  /**
    * A list containing all of the top-level accessors (getters and setters)
    * contained in this compilation unit.
    */
@@ -1103,6 +1110,18 @@
   @override
   CompilationUnit computeNode() => unit;
 
+  /**
+   * Return the annotations associated with the directive at the given [offset],
+   * or an empty list if the directive has no annotations or if there is no
+   * directive at the given offset.
+   */
+  List<ElementAnnotation> getAnnotations(int offset) {
+    if (annotationMap == null) {
+      return ElementAnnotation.EMPTY_LIST;
+    }
+    return annotationMap[offset] ?? ElementAnnotation.EMPTY_LIST;
+  }
+
   @override
   ElementImpl getChild(String identifier) {
     //
@@ -1181,6 +1200,15 @@
     _variables[index] = to;
   }
 
+  /**
+   * Set the annotations associated with the directive at the given [offset] to
+   * the given list of [annotations].
+   */
+  void setAnnotations(int offset, List<ElementAnnotation> annotations) {
+    annotationMap ??= new HashMap<int, List<ElementAnnotation>>();
+    annotationMap[offset] = annotations;
+  }
+
   @override
   void visitChildren(ElementVisitor visitor) {
     super.visitChildren(visitor);
@@ -1573,6 +1601,12 @@
   static String _META_LIB_NAME = "meta";
 
   /**
+   * The name of the top-level variable used to mark a method as requiring
+   * overriders to call super.
+   */
+  static String _MUST_CALL_SUPER_VARIABLE_NAME = "mustCallSuper";
+
+  /**
    * The name of the top-level variable used to mark a method as being expected
    * to override an inherited method.
    */
@@ -1639,6 +1673,12 @@
   }
 
   @override
+  bool get isMustCallSuper =>
+      element is PropertyAccessorElement &&
+      element.name == _MUST_CALL_SUPER_VARIABLE_NAME &&
+      element.library?.name == _META_LIB_NAME;
+
+  @override
   bool get isOverride =>
       element is PropertyAccessorElement &&
       element.name == _OVERRIDE_VARIABLE_NAME &&
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index 29658fb..b0851de 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -731,10 +731,7 @@
 
   @override
   bool isSubtypeOf(DartType type) {
-    return relate(
-        this,
-        type,
-        (DartType t, DartType s) => t.isAssignableTo(s),
+    return relate(this, type, (DartType t, DartType s) => t.isAssignableTo(s),
         new TypeSystemImpl().instantiateToBounds);
   }
 
@@ -854,56 +851,6 @@
   }
 
   /**
-   * Given two functions [f1] and [f2] where f1 and f2 are known to be
-   * generic function types (both have type formals), this checks that they
-   * have the same number of formals, and that those formals have bounds
-   * (e.g. `<T extends LowerBound>`) that satisfy [relation].
-   *
-   * The return value will be a new list of fresh type variables, that can be
-   * used to instantiate both function types, allowing further comparison.
-   * For example, given `<T>T -> T` and `<U>U -> U` we can instantiate them with
-   * `F` to get `F -> F` and `F -> F`, which we can see are equal.
-   */
-  static List<DartType> relateTypeFormals(
-      FunctionType f1, FunctionType f2, bool relation(DartType t, DartType s)) {
-    List<TypeParameterElement> params1 = f1.typeFormals;
-    List<TypeParameterElement> params2 = f2.typeFormals;
-    int count = params1.length;
-    if (params2.length != count) {
-      return null;
-    }
-    // We build up a substitution matching up the type parameters
-    // from the two types, {variablesFresh/variables1} and
-    // {variablesFresh/variables2}
-    List<DartType> variables1 = <DartType>[];
-    List<DartType> variables2 = <DartType>[];
-    List<DartType> variablesFresh = <DartType>[];
-    for (int i = 0; i < count; i++) {
-      TypeParameterElement p1 = params1[i];
-      TypeParameterElement p2 = params2[i];
-      TypeParameterElementImpl pFresh =
-          new TypeParameterElementImpl.synthetic(p2.name);
-
-      DartType variable1 = p1.type;
-      DartType variable2 = p2.type;
-      DartType variableFresh = new TypeParameterTypeImpl(pFresh);
-
-      variables1.add(variable1);
-      variables2.add(variable2);
-      variablesFresh.add(variableFresh);
-      DartType bound1 = p1.bound ?? DynamicTypeImpl.instance;
-      DartType bound2 = p2.bound ?? DynamicTypeImpl.instance;
-      bound1 = bound1.substitute2(variablesFresh, variables1);
-      bound2 = bound2.substitute2(variablesFresh, variables2);
-      pFresh.bound = bound2;
-      if (!relation(bound2, bound1)) {
-        return null;
-      }
-    }
-    return variablesFresh;
-  }
-
-  /**
    * Compares two function types [t] and [s] to see if their corresponding
    * parameter types match [parameterRelation] and their return types match
    * [returnRelation].
@@ -920,7 +867,6 @@
       bool parameterRelation(DartType t, DartType s),
       FunctionType instantiateToBounds(FunctionType t),
       {bool returnRelation(DartType t, DartType s)}) {
-
     returnRelation ??= parameterRelation;
 
     // Trivial base cases.
@@ -1024,6 +970,56 @@
   }
 
   /**
+   * Given two functions [f1] and [f2] where f1 and f2 are known to be
+   * generic function types (both have type formals), this checks that they
+   * have the same number of formals, and that those formals have bounds
+   * (e.g. `<T extends LowerBound>`) that satisfy [relation].
+   *
+   * The return value will be a new list of fresh type variables, that can be
+   * used to instantiate both function types, allowing further comparison.
+   * For example, given `<T>T -> T` and `<U>U -> U` we can instantiate them with
+   * `F` to get `F -> F` and `F -> F`, which we can see are equal.
+   */
+  static List<DartType> relateTypeFormals(
+      FunctionType f1, FunctionType f2, bool relation(DartType t, DartType s)) {
+    List<TypeParameterElement> params1 = f1.typeFormals;
+    List<TypeParameterElement> params2 = f2.typeFormals;
+    int count = params1.length;
+    if (params2.length != count) {
+      return null;
+    }
+    // We build up a substitution matching up the type parameters
+    // from the two types, {variablesFresh/variables1} and
+    // {variablesFresh/variables2}
+    List<DartType> variables1 = <DartType>[];
+    List<DartType> variables2 = <DartType>[];
+    List<DartType> variablesFresh = <DartType>[];
+    for (int i = 0; i < count; i++) {
+      TypeParameterElement p1 = params1[i];
+      TypeParameterElement p2 = params2[i];
+      TypeParameterElementImpl pFresh =
+          new TypeParameterElementImpl.synthetic(p2.name);
+
+      DartType variable1 = p1.type;
+      DartType variable2 = p2.type;
+      DartType variableFresh = new TypeParameterTypeImpl(pFresh);
+
+      variables1.add(variable1);
+      variables2.add(variable2);
+      variablesFresh.add(variableFresh);
+      DartType bound1 = p1.bound ?? DynamicTypeImpl.instance;
+      DartType bound2 = p2.bound ?? DynamicTypeImpl.instance;
+      bound1 = bound1.substitute2(variablesFresh, variables1);
+      bound2 = bound2.substitute2(variablesFresh, variables2);
+      pFresh.bound = bound2;
+      if (!relation(bound2, bound1)) {
+        return null;
+      }
+    }
+    return variablesFresh;
+  }
+
+  /**
    * Return `true` if all of the name/type pairs in the first map ([firstTypes])
    * are equal to the corresponding name/type pairs in the second map
    * ([secondTypes]). The maps are expected to iterate over their entries in the
@@ -1313,6 +1309,10 @@
       PropertyAccessorMember.from(element.getSetter(setterName), this);
 
   @override
+  InterfaceTypeImpl instantiate(List<DartType> argumentTypes) =>
+      substitute2(argumentTypes, typeArguments);
+
+  @override
   bool isDirectSupertypeOf(InterfaceType type) {
     InterfaceType i = this;
     InterfaceType j = type;
@@ -1732,9 +1732,10 @@
     return newType;
   }
 
+  @deprecated
   @override
   InterfaceTypeImpl substitute4(List<DartType> argumentTypes) =>
-      substitute2(argumentTypes, typeArguments);
+      instantiate(argumentTypes);
 
   /**
    * Starting from this type, search its class hierarchy for types of the form
@@ -1827,6 +1828,62 @@
       _computeSuperinterfaceSet(type, new HashSet<InterfaceType>());
 
   /**
+   * If there is a single type which is at least as specific as all of the
+   * types in [types], return it.  Otherwise return `null`.
+   */
+  static DartType findMostSpecificType(
+      List<DartType> types, TypeSystem typeSystem) {
+    // The << relation ("more specific than") is a partial ordering on types,
+    // so to find the most specific type of a set, we keep a bucket of the most
+    // specific types seen so far such that no type in the bucket is more
+    // specific than any other type in the bucket.
+    List<DartType> bucket = <DartType>[];
+
+    // Then we consider each type in turn.
+    for (DartType type in types) {
+      // If any existing type in the bucket is more specific than this type,
+      // then we can ignore this type.
+      if (bucket.any((DartType t) => typeSystem.isMoreSpecificThan(t, type))) {
+        continue;
+      }
+      // Otherwise, we need to add this type to the bucket and remove any types
+      // that are less specific than it.
+      bool added = false;
+      int i = 0;
+      while (i < bucket.length) {
+        if (typeSystem.isMoreSpecificThan(type, bucket[i])) {
+          if (added) {
+            if (i < bucket.length - 1) {
+              bucket[i] = bucket.removeLast();
+            } else {
+              bucket.removeLast();
+            }
+          } else {
+            bucket[i] = type;
+            i++;
+            added = true;
+          }
+        } else {
+          i++;
+        }
+      }
+      if (!added) {
+        bucket.add(type);
+      }
+    }
+
+    // Now that we are finished, if there is exactly one type left in the
+    // bucket, it is the most specific type.
+    if (bucket.length == 1) {
+      return bucket[0];
+    }
+
+    // Otherwise, there is no single type that is more specific than the
+    // others.
+    return null;
+  }
+
+  /**
    * Returns a "smart" version of the "least upper bound" of the given types.
    *
    * If these types have the same element and differ only in terms of the type
@@ -1920,62 +1977,6 @@
   }
 
   /**
-   * If there is a single type which is at least as specific as all of the
-   * types in [types], return it.  Otherwise return `null`.
-   */
-  static DartType findMostSpecificType(
-      List<DartType> types, TypeSystem typeSystem) {
-    // The << relation ("more specific than") is a partial ordering on types,
-    // so to find the most specific type of a set, we keep a bucket of the most
-    // specific types seen so far such that no type in the bucket is more
-    // specific than any other type in the bucket.
-    List<DartType> bucket = <DartType>[];
-
-    // Then we consider each type in turn.
-    for (DartType type in types) {
-      // If any existing type in the bucket is more specific than this type,
-      // then we can ignore this type.
-      if (bucket.any((DartType t) => typeSystem.isMoreSpecificThan(t, type))) {
-        continue;
-      }
-      // Otherwise, we need to add this type to the bucket and remove any types
-      // that are less specific than it.
-      bool added = false;
-      int i = 0;
-      while (i < bucket.length) {
-        if (typeSystem.isMoreSpecificThan(type, bucket[i])) {
-          if (added) {
-            if (i < bucket.length - 1) {
-              bucket[i] = bucket.removeLast();
-            } else {
-              bucket.removeLast();
-            }
-          } else {
-            bucket[i] = type;
-            i++;
-            added = true;
-          }
-        } else {
-          i++;
-        }
-      }
-      if (!added) {
-        bucket.add(type);
-      }
-    }
-
-    // Now that we are finished, if there is exactly one type left in the
-    // bucket, it is the most specific type.
-    if (bucket.length == 1) {
-      return bucket[0];
-    }
-
-    // Otherwise, there is no single type that is more specific than the
-    // others.
-    return null;
-  }
-
-  /**
    * Return the intersection of the [first] and [second] sets of types, where
    * intersection is based on the equality of the types themselves.
    */
@@ -2217,6 +2218,9 @@
    */
   TypeImpl pruned(List<FunctionTypeAliasElement> prune);
 
+  @override
+  DartType resolveToBound(DartType objectType) => this;
+
   /**
    * Return the type resulting from substituting the given [argumentTypes] for
    * the given [parameterTypes] in this type.
@@ -2232,9 +2236,6 @@
       [List<FunctionTypeAliasElement> prune]);
 
   @override
-  DartType resolveToBound(DartType objectType) => this;
-
-  @override
   String toString() {
     StringBuffer buffer = new StringBuffer();
     appendTo(buffer);
@@ -2372,6 +2373,15 @@
   TypeImpl pruned(List<FunctionTypeAliasElement> prune) => this;
 
   @override
+  DartType resolveToBound(DartType objectType) {
+    if (element.bound == null) {
+      return objectType;
+    }
+
+    return element.bound.resolveToBound(objectType);
+  }
+
+  @override
   DartType substitute2(
       List<DartType> argumentTypes, List<DartType> parameterTypes,
       [List<FunctionTypeAliasElement> prune]) {
@@ -2400,15 +2410,6 @@
     }
     return types;
   }
-
-  @override
-  DartType resolveToBound(DartType objectType) {
-    if (element.bound == null) {
-      return objectType;
-    }
-
-    return element.bound.resolveToBound(objectType);
-  }
 }
 
 /**
diff --git a/pkg/analyzer/lib/src/error.dart b/pkg/analyzer/lib/src/error.dart
index 166ba13..f39d1ae 100644
--- a/pkg/analyzer/lib/src/error.dart
+++ b/pkg/analyzer/lib/src/error.dart
@@ -26,7 +26,9 @@
 
     // Print a less friendly string representation to ensure that
     // error.source.contents is not executed, as .contents it isn't async
-    builder.write("Error in ${error.source.shortName}: ${error.message}");
+    String sourceName = error.source.shortName;
+    sourceName ??= '<unknown source>';
+    builder.write("Error in $sourceName: ${error.message}");
 
 //    var content = error.source.contents.data;
 //    var beforeError = content.substring(0, error.offset);
diff --git a/pkg/analyzer/lib/src/generated/constant.dart b/pkg/analyzer/lib/src/generated/constant.dart
index 8d4de8e..db35618 100644
--- a/pkg/analyzer/lib/src/generated/constant.dart
+++ b/pkg/analyzer/lib/src/generated/constant.dart
@@ -1734,7 +1734,7 @@
         elementType = type;
       }
     }
-    InterfaceType listType = _typeProvider.listType.substitute4([elementType]);
+    InterfaceType listType = _typeProvider.listType.instantiate([elementType]);
     return new DartObjectImpl(listType, new ListState(elements));
   }
 
@@ -1774,7 +1774,7 @@
       }
     }
     InterfaceType mapType =
-        _typeProvider.mapType.substitute4([keyType, valueType]);
+        _typeProvider.mapType.instantiate([keyType, valueType]);
     return new DartObjectImpl(mapType, new MapState(map));
   }
 
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 57d35d9..60b1acf 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -514,9 +514,16 @@
   bool isServerLibrary(Source librarySource);
 
   /**
+   * Return the stream that is notified when a result with the given
+   * [descriptor] is changed, e.g. computed or invalidated.
+   */
+  Stream<ResultChangedEvent> onResultChanged(ResultDescriptor descriptor);
+
+  /**
    * Return the stream that is notified when a new value for the given
    * [descriptor] is computed.
    */
+  @deprecated
   Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor);
 
   /**
@@ -545,7 +552,7 @@
    * analysis results. This method can be long running.
    *
    * The implementation that uses the task model notifies subscribers of
-   * [onResultComputed] about computed results.
+   * [onResultChanged] about computed results.
    *
    * The following results are computed for Dart sources.
    *
@@ -1282,6 +1289,7 @@
     dart2jsHint = options.dart2jsHint;
     enableAssertMessage = options.enableAssertMessage;
     enableAsync = options.enableAsync;
+    enableConditionalDirectives = options.enableConditionalDirectives;
     enableStrictCallChecks = options.enableStrictCallChecks;
     enableGenericMethods = options.enableGenericMethods;
     enableSuperMixins = options.enableSuperMixins;
@@ -1841,6 +1849,7 @@
 /**
  * [ComputedResult] describes a value computed for a [ResultDescriptor].
  */
+@deprecated
 class ComputedResult<V> {
   /**
    * The context in which the value was computed.
@@ -1865,7 +1874,7 @@
   ComputedResult(this.context, this.descriptor, this.target, this.value);
 
   @override
-  String toString() => '$descriptor of $target in $context';
+  String toString() => 'Computed $descriptor of $target in $context';
 }
 
 /**
@@ -2408,6 +2417,57 @@
 }
 
 /**
+ * [ResultChangedEvent] describes a change to an analysis result.
+ */
+class ResultChangedEvent<V> {
+  /**
+   * The context in which the result was changed.
+   */
+  final AnalysisContext context;
+
+  /**
+   * The target for which the result was changed.
+   */
+  final AnalysisTarget target;
+
+  /**
+   * The descriptor of the result which was changed.
+   */
+  final ResultDescriptor<V> descriptor;
+
+  /**
+   * If the result [wasComputed], the new value of the result. If the result
+   * [wasInvalidated], the value of before it was invalidated, may be the
+   * default value if the result was flushed.
+   */
+  final V value;
+
+  /**
+   * Is `true` if the result was computed, or `false` is is was invalidated.
+   */
+  final bool _wasComputed;
+
+  ResultChangedEvent(this.context, this.target, this.descriptor, this.value,
+      this._wasComputed);
+
+  /**
+   * Returns `true` if the result was computed.
+   */
+  bool get wasComputed => _wasComputed;
+
+  /**
+   * Returns `true` if the result was invalidated.
+   */
+  bool get wasInvalidated => !_wasComputed;
+
+  @override
+  String toString() {
+    String operation = _wasComputed ? 'Computed' : 'Invalidated';
+    return '$operation $descriptor of $target in $context';
+  }
+}
+
+/**
  * [SourcesChangedEvent] indicates which sources have been added, removed,
  * or whose contents have changed.
  */
diff --git a/pkg/analyzer/lib/src/generated/error.dart b/pkg/analyzer/lib/src/generated/error.dart
index 59879fc..7d77680 100644
--- a/pkg/analyzer/lib/src/generated/error.dart
+++ b/pkg/analyzer/lib/src/generated/error.dart
@@ -2743,6 +2743,8 @@
     StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER,
     StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS,
     StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+    StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE,
+    StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE,
     StaticWarningCode.AMBIGUOUS_IMPORT,
     StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE,
     StaticWarningCode.ASSIGNMENT_TO_CONST,
@@ -3435,9 +3437,8 @@
    * 0: the name of the actual argument type
    * 1: the name of the expected type
    */
-  static const HintCode ARGUMENT_TYPE_NOT_ASSIGNABLE = const HintCode(
-      'ARGUMENT_TYPE_NOT_ASSIGNABLE',
-      "The argument type '{0}' cannot be assigned to the parameter type '{1}'");
+  static const HintCode ARGUMENT_TYPE_NOT_ASSIGNABLE =
+      shared_messages.ARGUMENT_TYPE_NOT_ASSIGNABLE_HINT;
 
   /**
    * When the target expression uses '?.' operator, it can be `null`, so all the
@@ -3568,6 +3569,18 @@
       "Either add a return statement or change the return type to 'void'");
 
   /**
+   * Generate a hint for methods that override methods annotated `@mustCallSuper`
+   * that do not invoke the overridden super method.
+   *
+   * Parameters:
+   * 0: the name of the class declaring the overriden method
+   */
+  static const HintCode MUST_CALL_SUPER = const HintCode(
+      'MUST_CALL_SUPER',
+      "This method overrides a method annotated as @mustCall super in '{0}', "
+          "but does invoke the overriden method");
+
+  /**
    * A condition in a control flow statement could evaluate to `null` because it
    * uses the null-aware '?.' operator.
    */
@@ -3630,8 +3643,8 @@
    * 0: the name of the getter
    * 1: the name of the enclosing type where the getter is being looked for
    */
-  static const HintCode UNDEFINED_GETTER = const HintCode('UNDEFINED_GETTER',
-      "The getter '{0}' is not defined for the class '{1}'");
+  static const HintCode UNDEFINED_GETTER =
+      shared_messages.UNDEFINED_GETTER_HINT;
 
   /**
    * This hint is generated anywhere where the
@@ -3642,8 +3655,8 @@
    * 0: the name of the method that is undefined
    * 1: the resolved type name that the method lookup is happening on
    */
-  static const HintCode UNDEFINED_METHOD = const HintCode('UNDEFINED_METHOD',
-      "The method '{0}' is not defined for the class '{1}'");
+  static const HintCode UNDEFINED_METHOD =
+      shared_messages.UNDEFINED_METHOD_HINT;
 
   /**
    * This hint is generated anywhere where the
@@ -3654,9 +3667,8 @@
    * 0: the name of the operator
    * 1: the name of the enclosing type where the operator is being looked for
    */
-  static const HintCode UNDEFINED_OPERATOR = const HintCode(
-      'UNDEFINED_OPERATOR',
-      "The operator '{0}' is not defined for the class '{1}'");
+  static const HintCode UNDEFINED_OPERATOR =
+      shared_messages.UNDEFINED_OPERATOR_HINT;
 
   /**
    * This hint is generated anywhere where the
@@ -3668,8 +3680,8 @@
    * 0: the name of the setter
    * 1: the name of the enclosing type where the setter is being looked for
    */
-  static const HintCode UNDEFINED_SETTER = const HintCode('UNDEFINED_SETTER',
-      "The setter '{0}' is not defined for the class '{1}'");
+  static const HintCode UNDEFINED_SETTER =
+      shared_messages.UNDEFINED_SETTER_HINT;
 
   /**
    * Unnecessary cast.
@@ -4125,8 +4137,7 @@
    * 2: the name of the method
    */
   static const StaticTypeWarningCode RETURN_OF_INVALID_TYPE =
-      const StaticTypeWarningCode('RETURN_OF_INVALID_TYPE',
-          "The return type '{0}' is not a '{1}', as defined by the method '{2}'");
+      shared_messages.RETURN_OF_INVALID_TYPE;
 
   /**
    * 12.11 Instance Creation: It is a static type warning if any of the type
@@ -4183,8 +4194,7 @@
    * 1: the name of the enumeration used to access the constant
    */
   static const StaticTypeWarningCode UNDEFINED_ENUM_CONSTANT =
-      const StaticTypeWarningCode('UNDEFINED_ENUM_CONSTANT',
-          "There is no constant named '{0}' in '{1}'");
+      shared_messages.UNDEFINED_ENUM_CONSTANT;
 
   /**
    * 12.15.3 Unqualified Invocation: If there exists a lexically visible
@@ -4199,8 +4209,7 @@
    * 0: the name of the method that is undefined
    */
   static const StaticTypeWarningCode UNDEFINED_FUNCTION =
-      const StaticTypeWarningCode(
-          'UNDEFINED_FUNCTION', "The function '{0}' is not defined");
+      shared_messages.UNDEFINED_FUNCTION;
 
   /**
    * 12.17 Getter Invocation: Let <i>T</i> be the static type of <i>e</i>. It is
@@ -4211,8 +4220,7 @@
    * 1: the name of the enclosing type where the getter is being looked for
    */
   static const StaticTypeWarningCode UNDEFINED_GETTER =
-      const StaticTypeWarningCode('UNDEFINED_GETTER',
-          "The getter '{0}' is not defined for the class '{1}'");
+      shared_messages.UNDEFINED_GETTER_STATIC_TYPE_WARNING;
 
   /**
    * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
@@ -4224,8 +4232,7 @@
    * 1: the resolved type name that the method lookup is happening on
    */
   static const StaticTypeWarningCode UNDEFINED_METHOD =
-      const StaticTypeWarningCode('UNDEFINED_METHOD',
-          "The method '{0}' is not defined for the class '{1}'");
+      shared_messages.UNDEFINED_METHOD_STATIC_TYPE_WARNING;
 
   /**
    * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
@@ -4237,10 +4244,7 @@
    * 1: the resolved type name that the method lookup is happening on
    */
   static const StaticTypeWarningCode UNDEFINED_METHOD_WITH_CONSTRUCTOR =
-      const StaticTypeWarningCode(
-          'UNDEFINED_METHOD_WITH_CONSTRUCTOR',
-          "The method '{0}' is not defined for the class '{1}', but a constructor with that name is defined",
-          "Add 'new' or 'const' to invoke the constuctor, or change the method name.");
+      shared_messages.UNDEFINED_METHOD_WITH_CONSTRUCTOR;
 
   /**
    * 12.18 Assignment: Evaluation of an assignment of the form
@@ -4263,8 +4267,7 @@
    * 1: the name of the enclosing type where the operator is being looked for
    */
   static const StaticTypeWarningCode UNDEFINED_OPERATOR =
-      const StaticTypeWarningCode('UNDEFINED_OPERATOR',
-          "The operator '{0}' is not defined for the class '{1}'");
+      shared_messages.UNDEFINED_OPERATOR_STATIC_TYPE_WARNING;
 
   /**
    * 12.18 Assignment: Let <i>T</i> be the static type of <i>e<sub>1</sub></i>.
@@ -4278,8 +4281,7 @@
    * See [INACCESSIBLE_SETTER].
    */
   static const StaticTypeWarningCode UNDEFINED_SETTER =
-      const StaticTypeWarningCode('UNDEFINED_SETTER',
-          "The setter '{0}' is not defined for the class '{1}'");
+      shared_messages.UNDEFINED_SETTER_STATIC_TYPE_WARNING;
 
   /**
    * 12.17 Getter Invocation: Let <i>T</i> be the static type of <i>e</i>. It is
@@ -4290,8 +4292,7 @@
    * 1: the name of the enclosing type where the getter is being looked for
    */
   static const StaticTypeWarningCode UNDEFINED_SUPER_GETTER =
-      const StaticTypeWarningCode('UNDEFINED_SUPER_GETTER',
-          "The getter '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_GETTER_STATIC_TYPE_WARNING;
 
   /**
    * 12.15.4 Super Invocation: A super method invocation <i>i</i> has the form
@@ -4305,8 +4306,7 @@
    * 1: the resolved type name that the method lookup is happening on
    */
   static const StaticTypeWarningCode UNDEFINED_SUPER_METHOD =
-      const StaticTypeWarningCode('UNDEFINED_SUPER_METHOD',
-          "The method '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_METHOD;
 
   /**
    * 12.18 Assignment: Evaluation of an assignment of the form
@@ -4329,8 +4329,7 @@
    * 1: the name of the enclosing type where the operator is being looked for
    */
   static const StaticTypeWarningCode UNDEFINED_SUPER_OPERATOR =
-      const StaticTypeWarningCode('UNDEFINED_SUPER_OPERATOR',
-          "The operator '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_OPERATOR;
 
   /**
    * 12.18 Assignment: Let <i>T</i> be the static type of <i>e<sub>1</sub></i>.
@@ -4344,8 +4343,7 @@
    * See [INACCESSIBLE_SETTER].
    */
   static const StaticTypeWarningCode UNDEFINED_SUPER_SETTER =
-      const StaticTypeWarningCode('UNDEFINED_SUPER_SETTER',
-          "The setter '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_SETTER_STATIC_TYPE_WARNING;
 
   /**
    * 12.15.1 Ordinary Invocation: It is a static type warning if <i>T</i> does
@@ -4400,6 +4398,32 @@
           "The type '{0}' implied by the 'yield' expression must be assignable to '{1}'");
 
   /**
+   * 17.6.2 For-in. If the iterable expression does not implement Iterable,
+   * this warning is reported.
+   *
+   * Parameters:
+   * 0: The type of the iterable expression.
+   * 1: The sequence type -- Iterable for `for` or Stream for `await for`.
+   */
+  static const StaticTypeWarningCode FOR_IN_OF_INVALID_TYPE =
+  const StaticTypeWarningCode('FOR_IN_OF_INVALID_TYPE',
+      "The type '{0}' used in the 'for' loop must implement {1}");
+
+  /**
+   * 17.6.2 For-in. It the iterable expression does not implement Iterable with
+   * a type argument that can be assigned to the for-in variable's type, this
+   * warning is reported.
+   *
+   * Parameters:
+   * 0: The type of the iterable expression.
+   * 1: The sequence type -- Iterable for `for` or Stream for `await for`.
+   * 2: The loop variable type.
+   */
+  static const StaticTypeWarningCode FOR_IN_OF_INVALID_ELEMENT_TYPE =
+      const StaticTypeWarningCode('FOR_IN_OF_INVALID_ELEMENT_TYPE',
+          "The type '{0}' used in the 'for' loop must implement {1} with a type argument that can be assigned to '{2}'");
+
+  /**
    * Initialize a newly created error code to have the given [name]. The message
    * associated with the error will be created from the given [message]
    * template. The correction associated with the error will be created from the
@@ -4472,8 +4496,7 @@
    * 1: the name of the expected type
    */
   static const StaticWarningCode ARGUMENT_TYPE_NOT_ASSIGNABLE =
-      const StaticWarningCode('ARGUMENT_TYPE_NOT_ASSIGNABLE',
-          "The argument type '{0}' cannot be assigned to the parameter type '{1}'");
+      shared_messages.ARGUMENT_TYPE_NOT_ASSIGNABLE_STATIC_WARNING;
 
   /**
    * 5 Variables: Attempting to assign to a final variable elsewhere will cause
@@ -5547,9 +5570,8 @@
    * 0: the name of the getter
    * 1: the name of the enclosing type where the getter is being looked for
    */
-  static const StaticWarningCode UNDEFINED_GETTER = const StaticWarningCode(
-      'UNDEFINED_GETTER',
-      "The getter '{0}' is not defined for the class '{1}'");
+  static const StaticWarningCode UNDEFINED_GETTER =
+      shared_messages.UNDEFINED_GETTER_STATIC_WARNING;
 
   /**
    * 12.30 Identifier Reference: It is as static warning if an identifier
@@ -5592,9 +5614,8 @@
    * 0: the name of the getter
    * 1: the name of the enclosing type where the setter is being looked for
    */
-  static const StaticWarningCode UNDEFINED_SETTER = const StaticWarningCode(
-      'UNDEFINED_SETTER',
-      "The setter '{0}' is not defined for the class '{1}'");
+  static const StaticWarningCode UNDEFINED_SETTER =
+      shared_messages.UNDEFINED_SETTER_STATIC_WARNING;
 
   /**
    * 12.16.3 Static Invocation: It is a static warning if <i>C</i> does not
@@ -5618,8 +5639,7 @@
    * 1: the name of the enclosing type where the getter is being looked for
    */
   static const StaticWarningCode UNDEFINED_SUPER_GETTER =
-      const StaticWarningCode('UNDEFINED_SUPER_GETTER',
-          "The getter '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_GETTER_STATIC_WARNING;
 
   /**
    * 12.18 Assignment: It is as static warning if an assignment of the form
@@ -5637,8 +5657,7 @@
    * 1: the name of the enclosing type where the setter is being looked for
    */
   static const StaticWarningCode UNDEFINED_SUPER_SETTER =
-      const StaticWarningCode('UNDEFINED_SUPER_SETTER',
-          "The setter '{0}' is not defined in a superclass of '{1}'");
+      shared_messages.UNDEFINED_SUPER_SETTER_STATIC_WARNING;
 
   /**
    * 7.2 Getters: It is a static warning if the return type of a getter is void.
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 32b4d31..7d0c52b 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -9,11 +9,11 @@
 
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/src/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/src/dart/ast/token.dart';
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/dart/element/type.dart';
@@ -356,8 +356,7 @@
   Object visitBinaryExpression(BinaryExpression node) {
     Token operator = node.operator;
     TokenType type = operator.type;
-    if (type == TokenType.AMPERSAND_AMPERSAND ||
-        type == TokenType.BAR_BAR) {
+    if (type == TokenType.AMPERSAND_AMPERSAND || type == TokenType.BAR_BAR) {
       String lexeme = operator.lexeme;
       _checkForAssignability(node.leftOperand, _boolType,
           StaticTypeWarningCode.NON_BOOL_OPERAND, [lexeme]);
@@ -690,6 +689,12 @@
   }
 
   @override
+  Object visitForEachStatement(ForEachStatement node) {
+    _checkForInIterable(node);
+    return super.visitForEachStatement(node);
+  }
+
+  @override
   Object visitFunctionDeclaration(FunctionDeclaration node) {
     ExecutableElement outerFunction = _enclosingFunction;
     try {
@@ -897,6 +902,7 @@
       _checkForAllInvalidOverrideErrorCodesForMethod(node);
       _checkForTypeAnnotationDeferredClass(returnTypeName);
       _checkForIllegalReturnType(returnTypeName);
+      _checkForMustCallSuper(node);
       return super.visitMethodDeclaration(node);
     } finally {
       _enclosingFunction = previousFunction;
@@ -2842,8 +2848,7 @@
     if (type.element.isAbstract) {
       ConstructorElement element = expression.staticElement;
       if (element != null && !element.isFactory) {
-        if ((expression.keyword as KeywordToken).keyword ==
-            Keyword.CONST) {
+        if ((expression.keyword as KeywordToken).keyword == Keyword.CONST) {
           _errorReporter.reportErrorForNode(
               StaticWarningCode.CONST_WITH_ABSTRACT_CLASS, typeName);
         } else {
@@ -4418,6 +4423,18 @@
     return numSuperInitializers > 0;
   }
 
+  void _checkForMustCallSuper(MethodDeclaration node) {
+    MethodElement element = _findOverriddenMemberThatMustCallSuper(node);
+    if (element != null) {
+      _InvocationCollector collector = new _InvocationCollector();
+      node.accept(collector);
+      if (!collector.superCalls.contains(element.name)) {
+        _errorReporter.reportErrorForNode(HintCode.MUST_CALL_SUPER, node.name,
+            [element.enclosingElement.name]);
+      }
+    }
+  }
+
   /**
    * Checks to ensure that the given native function [body] is in SDK code.
    *
@@ -5652,16 +5669,65 @@
   }
 
   /**
+   * Check for a type mis-match between the iterable expression and the
+   * assigned variable in a for-in statement.
+   */
+  void _checkForInIterable(ForEachStatement node) {
+    // Ignore malformed for statements.
+    if (node.identifier == null && node.loopVariable == null) {
+      return;
+    }
+
+    DartType iterableType = getStaticType(node.iterable);
+    if (iterableType.isDynamic) {
+      return;
+    }
+
+    // The type of the loop variable.
+    SimpleIdentifier variable = node.identifier != null
+        ? node.identifier
+        : node.loopVariable.identifier;
+    DartType variableType = getStaticType(variable);
+
+    DartType loopType = node.awaitKeyword != null
+        ? _typeProvider.streamType
+        : _typeProvider.iterableType;
+
+    // Use an explicit string instead of [loopType] to remove the "<E>".
+    String loopTypeName = node.awaitKeyword != null
+        ? "Stream"
+        : "Iterable";
+
+    // The object being iterated has to implement Iterable<T> for some T that
+    // is assignable to the variable's type.
+    // TODO(rnystrom): Move this into mostSpecificTypeArgument()?
+    iterableType = iterableType.resolveToBound(_typeProvider.objectType);
+    DartType bestIterableType = _typeSystem.mostSpecificTypeArgument(
+        iterableType, loopType);
+    if (bestIterableType == null) {
+      _errorReporter.reportTypeErrorForNode(
+          StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE,
+          node,
+          [iterableType, loopTypeName]);
+    } else if (!_typeSystem.isAssignableTo(bestIterableType, variableType)) {
+      _errorReporter.reportTypeErrorForNode(
+          StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE,
+          node,
+          [iterableType, loopTypeName, variableType]);
+    }
+  }
+
+  /**
    * Check for a type mis-match between the yielded type and the declared
    * return type of a generator function.
    *
    * This method should only be called in generator functions.
    */
-  bool _checkForYieldOfInvalidType(
+  void _checkForYieldOfInvalidType(
       Expression yieldExpression, bool isYieldEach) {
     assert(_inGenerator);
     if (_enclosingFunction == null) {
-      return false;
+      return;
     }
     DartType declaredReturnType = _enclosingFunction.returnType;
     DartType staticYieldedType = getStaticType(yieldExpression);
@@ -5670,17 +5736,17 @@
       impliedReturnType = staticYieldedType;
     } else if (_enclosingFunction.isAsynchronous) {
       impliedReturnType =
-          _typeProvider.streamType.substitute4(<DartType>[staticYieldedType]);
+          _typeProvider.streamType.instantiate(<DartType>[staticYieldedType]);
     } else {
       impliedReturnType =
-          _typeProvider.iterableType.substitute4(<DartType>[staticYieldedType]);
+          _typeProvider.iterableType.instantiate(<DartType>[staticYieldedType]);
     }
     if (!_typeSystem.isAssignableTo(impliedReturnType, declaredReturnType)) {
       _errorReporter.reportTypeErrorForNode(
           StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
           yieldExpression,
           [impliedReturnType, declaredReturnType]);
-      return true;
+      return;
     }
     if (isYieldEach) {
       // Since the declared return type might have been "dynamic", we need to
@@ -5697,10 +5763,9 @@
             StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
             yieldExpression,
             [impliedReturnType, requiredReturnType]);
-        return true;
+        return;
       }
     }
-    return false;
   }
 
   /**
@@ -5783,12 +5848,29 @@
     }
     DartType staticReturnType = getStaticType(returnExpression);
     if (staticReturnType != null && _enclosingFunction.isAsynchronous) {
-      return _typeProvider.futureType.substitute4(
+      return _typeProvider.futureType.instantiate(
           <DartType>[staticReturnType.flattenFutures(_typeSystem)]);
     }
     return staticReturnType;
   }
 
+  MethodElement _findOverriddenMemberThatMustCallSuper(MethodDeclaration node) {
+    ExecutableElement overriddenMember = _getOverriddenMember(node.element);
+    List<ExecutableElement> seen = <ExecutableElement>[];
+    while (
+        overriddenMember is MethodElement && !seen.contains(overriddenMember)) {
+      for (ElementAnnotation annotation in overriddenMember.metadata) {
+        if (annotation.isMustCallSuper) {
+          return overriddenMember;
+        }
+      }
+      seen.add(overriddenMember);
+      // Keep looking up the chain.
+      overriddenMember = _getOverriddenMember(overriddenMember);
+    }
+    return null;
+  }
+
   /**
    * Return the error code that should be used when the given class [element]
    * references itself directly.
@@ -5839,6 +5921,19 @@
     }
   }
 
+  ExecutableElement _getOverriddenMember(Element member) {
+    if (member == null || _inheritanceManager == null) {
+      return null;
+    }
+
+    ClassElement classElement =
+        member.getAncestor((element) => element is ClassElement);
+    if (classElement == null) {
+      return null;
+    }
+    return _inheritanceManager.lookupInheritance(classElement, member.name);
+  }
+
   /**
    * Return the type of the first and only parameter of the given [setter].
    */
@@ -6222,3 +6317,17 @@
     }
   }
 }
+
+/**
+ * Recursively visits an AST, looking for method invocations.
+ */
+class _InvocationCollector extends RecursiveAstVisitor {
+  final List<String> superCalls = <String>[];
+
+  @override
+  visitMethodInvocation(MethodInvocation node) {
+    if (node.target is SuperExpression) {
+      superCalls.add(node.methodName.name);
+    }
+  }
+}
diff --git a/pkg/analyzer/lib/src/generated/generated/shared_messages.dart b/pkg/analyzer/lib/src/generated/generated/shared_messages.dart
index c0be1d2..249e939 100644
--- a/pkg/analyzer/lib/src/generated/generated/shared_messages.dart
+++ b/pkg/analyzer/lib/src/generated/generated/shared_messages.dart
@@ -24,32 +24,32 @@
 
 const ParserErrorCode CONST_CLASS = const ParserErrorCode(
     'CONST_CLASS',
-    "Classes can't be declared to be 'const'",
+    "Classes can't be declared to be 'const'.",
     "Try removing the 'const' keyword or moving to the class' constructor(s).");  // Generated. Don't edit.
 
 const ParserErrorCode CONST_METHOD = const ParserErrorCode(
     'CONST_METHOD',
-    "Getters, setters and methods can't be declared to be 'const'",
+    "Getters, setters and methods can't be declared to be 'const'.",
     "Try removing the 'const' keyword.");  // Generated. Don't edit.
 
 const ParserErrorCode CONST_ENUM = const ParserErrorCode(
     'CONST_ENUM',
-    "Enums can't be declared to be 'const'",
+    "Enums can't be declared to be 'const'.",
     "Try removing the 'const' keyword.");  // Generated. Don't edit.
 
 const ParserErrorCode CONST_TYPEDEF = const ParserErrorCode(
     'CONST_TYPEDEF',
-    "Type aliases can't be declared to be 'const'",
+    "Type aliases can't be declared to be 'const'.",
     "Try removing the 'const' keyword.");  // Generated. Don't edit.
 
 const ParserErrorCode CONST_AND_FINAL = const ParserErrorCode(
     'CONST_AND_FINAL',
-    "Members can't be declared to be both 'const' and 'final'",
+    "Members can't be declared to be both 'const' and 'final'.",
     "Try removing either the 'const' or 'final' keyword.");  // Generated. Don't edit.
 
 const ParserErrorCode CONST_AND_VAR = const ParserErrorCode(
     'CONST_AND_VAR',
-    "Members can't be declared to be both 'const' and 'var'",
+    "Members can't be declared to be both 'const' and 'var'.",
     "Try removing either the 'const' or 'var' keyword.");  // Generated. Don't edit.
 
 const ParserErrorCode CLASS_IN_CLASS = const ParserErrorCode(
@@ -59,7 +59,7 @@
 
 const ParserErrorCode CONSTRUCTOR_WITH_RETURN_TYPE = const ParserErrorCode(
     'CONSTRUCTOR_WITH_RETURN_TYPE',
-    "Constructors can't have a return type",
+    "Constructors can't have a return type.",
     "Try removing the return type.");  // Generated. Don't edit.
 
 const ParserErrorCode MISSING_EXPRESSION_IN_THROW = const ParserErrorCode(
@@ -69,7 +69,7 @@
 
 const CompileTimeErrorCode RETHROW_OUTSIDE_CATCH = const CompileTimeErrorCode(
     'RETHROW_OUTSIDE_CATCH',
-    "Rethrow must be inside of catch clause",
+    "Rethrow must be inside of catch clause.",
     "Try moving the expression into a catch clause, or using a 'throw' expression.");  // Generated. Don't edit.
 
 const CompileTimeErrorCode RETURN_IN_GENERATIVE_CONSTRUCTOR = const CompileTimeErrorCode(
@@ -80,4 +80,114 @@
 const CompileTimeErrorCode RETURN_IN_GENERATOR = const CompileTimeErrorCode(
     'RETURN_IN_GENERATOR',
     "Can't return a value from a generator function (using the '{0}' modifier).",
-    "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier");  // Generated. Don't edit.
+    "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier.");  // Generated. Don't edit.
+
+const StaticTypeWarningCode RETURN_OF_INVALID_TYPE = const StaticTypeWarningCode(
+    'RETURN_OF_INVALID_TYPE',
+    "The return type '{0}' is not a '{1}', as defined by the method '{2}'.",
+    null);  // Generated. Don't edit.
+
+const HintCode ARGUMENT_TYPE_NOT_ASSIGNABLE_HINT = const HintCode(
+    'ARGUMENT_TYPE_NOT_ASSIGNABLE',
+    "The argument type '{0}' cannot be assigned to the parameter type '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticWarningCode ARGUMENT_TYPE_NOT_ASSIGNABLE_STATIC_WARNING = const StaticWarningCode(
+    'ARGUMENT_TYPE_NOT_ASSIGNABLE',
+    "The argument type '{0}' cannot be assigned to the parameter type '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_METHOD_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_METHOD',
+    "The method '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const HintCode UNDEFINED_METHOD_HINT = const HintCode(
+    'UNDEFINED_METHOD',
+    "The method '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_METHOD_WITH_CONSTRUCTOR = const StaticTypeWarningCode(
+    'UNDEFINED_METHOD_WITH_CONSTRUCTOR',
+    "The method '{0}' is not defined for the class '{1}', but a constructor with that name is defined.",
+    "Try adding 'new' or 'const' to invoke the constuctor, or change the method name.");  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_GETTER_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_GETTER',
+    "The getter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticWarningCode UNDEFINED_GETTER_STATIC_WARNING = const StaticWarningCode(
+    'UNDEFINED_GETTER',
+    "The getter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const HintCode UNDEFINED_GETTER_HINT = const HintCode(
+    'UNDEFINED_GETTER',
+    "The getter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_ENUM_CONSTANT = const StaticTypeWarningCode(
+    'UNDEFINED_ENUM_CONSTANT',
+    "There is no constant named '{0}' in '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_OPERATOR_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_OPERATOR',
+    "The operator '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const HintCode UNDEFINED_OPERATOR_HINT = const HintCode(
+    'UNDEFINED_OPERATOR',
+    "The operator '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_SETTER_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_SETTER',
+    "The setter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticWarningCode UNDEFINED_SETTER_STATIC_WARNING = const StaticWarningCode(
+    'UNDEFINED_SETTER',
+    "The setter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const HintCode UNDEFINED_SETTER_HINT = const HintCode(
+    'UNDEFINED_SETTER',
+    "The setter '{0}' is not defined for the class '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_SUPER_GETTER_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_SUPER_GETTER',
+    "The getter '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticWarningCode UNDEFINED_SUPER_GETTER_STATIC_WARNING = const StaticWarningCode(
+    'UNDEFINED_SUPER_GETTER',
+    "The getter '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_SUPER_METHOD = const StaticTypeWarningCode(
+    'UNDEFINED_SUPER_METHOD',
+    "The method '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_SUPER_OPERATOR = const StaticTypeWarningCode(
+    'UNDEFINED_SUPER_OPERATOR',
+    "The operator '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_SUPER_SETTER_STATIC_TYPE_WARNING = const StaticTypeWarningCode(
+    'UNDEFINED_SUPER_SETTER',
+    "The setter '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticWarningCode UNDEFINED_SUPER_SETTER_STATIC_WARNING = const StaticWarningCode(
+    'UNDEFINED_SUPER_SETTER',
+    "The setter '{0}' is not defined in a superclass of '{1}'.",
+    null);  // Generated. Don't edit.
+
+const StaticTypeWarningCode UNDEFINED_FUNCTION = const StaticTypeWarningCode(
+    'UNDEFINED_FUNCTION',
+    "The function '{0}' is not defined.",
+    null);  // Generated. Don't edit.
diff --git a/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart b/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
index cf2c0dd..78b0355 100644
--- a/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
+++ b/pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart
@@ -36,7 +36,7 @@
 class _SameResolutionValidator implements AstVisitor {
   final bool validateTypes;
 
-  /// The expected node to compare with the visted node.
+  /// The expected node to compare with the visited node.
   AstNode other;
 
   _SameResolutionValidator(this.validateTypes, this.other);
@@ -848,13 +848,19 @@
     if (a == null && b == null) {
       return;
     }
-    if (a.nameOffset != b.nameOffset) {
-      _fail('Expected: ${b.nameOffset}\n  Actual: ${a.nameOffset}');
+    _verifyEqual('nameOffset', a.nameOffset, b.nameOffset);
+    if (a is ElementImpl && b is ElementImpl) {
+      _verifyEqual('codeOffset', a.codeOffset, b.codeOffset);
+      _verifyEqual('codeLength', a.codeLength, b.codeLength);
     }
     if (a is LocalElement && b is LocalElement) {
-      if (a.visibleRange != b.visibleRange) {
-        _fail('Expected: ${b.visibleRange}\nActual: ${a.visibleRange}');
-      }
+      _verifyEqual('visibleRange', a.visibleRange, b.visibleRange);
+    }
+  }
+
+  void _verifyEqual(String name, actual, expected) {
+    if (actual != expected) {
+      _fail('$name\nExpected: $expected\n  Actual: $actual');
     }
   }
 
diff --git a/pkg/analyzer/lib/src/generated/incremental_resolver.dart b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
index fc8c860..9f4e419 100644
--- a/pkg/analyzer/lib/src/generated/incremental_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
@@ -2087,6 +2087,22 @@
         }
       }
     }
+    // code range
+    if (element is ElementImpl) {
+      int oldOffset = element.codeOffset;
+      int oldLength = element.codeLength;
+      if (oldOffset != null) {
+        int newOffset = oldOffset;
+        int newLength = oldLength;
+        newOffset += oldOffset > updateOffset ? updateDelta : 0;
+        if (oldOffset <= updateOffset && updateOffset < oldOffset + oldLength) {
+          newLength += updateDelta;
+        }
+        if (newOffset != oldOffset || newLength != oldLength) {
+          element.setCodeRange(newOffset, newLength);
+        }
+      }
+    }
     // visible range
     if (element is LocalElement) {
       SourceRange visibleRange = element.visibleRange;
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 491d391..dce4507 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -36,6 +36,26 @@
 export 'package:analyzer/src/generated/type_system.dart';
 
 /**
+ * Throw an [ElementMismatchException] to report that the element model and the
+ * AST do not match. The [message] will have the path to the given [node]
+ * appended to it.
+ */
+void _mismatch(String message, AstNode node) {
+  StringBuffer buffer = new StringBuffer();
+  buffer.writeln(message);
+  buffer.write('Path to root:');
+  String separator = ' ';
+  AstNode parent = node;
+  while (parent != null) {
+    buffer.write(separator);
+    buffer.write(parent.runtimeType.toString());
+    separator = ', ';
+    parent = parent.parent;
+  }
+  throw new ElementMismatchException(buffer.toString());
+}
+
+/**
  * Instances of the class `BestPracticesVerifier` traverse an AST structure looking for
  * violations of Dart best practices.
  */
@@ -2119,6 +2139,11 @@
 /**
  * A visitor that resolves declarations in an AST structure to already built
  * elements.
+ *
+ * The resulting AST must have everything resolved that would have been resolved
+ * by a [CompilationUnitBuilder] (that is, must be a valid [RESOLVED_UNIT1]).
+ * This class must not assume that the [CompilationUnitElement] passed to it is
+ * any more complete than a [COMPILATION_UNIT_ELEMENT].
  */
 class DeclarationResolver extends RecursiveAstVisitor<Object> {
   /**
@@ -2135,7 +2160,7 @@
   /**
    * The compilation unit containing the AST nodes being visited.
    */
-  CompilationUnitElement _enclosingUnit;
+  CompilationUnitElementImpl _enclosingUnit;
 
   /**
    * The function type alias containing the AST nodes being visited, or `null`
@@ -2200,7 +2225,7 @@
       SimpleIdentifier className = node.name;
       _enclosingClass = _findIdentifier(_enclosingUnit.types, className);
       super.visitClassDeclaration(node);
-      _resolveMetadata(node.metadata, _enclosingClass);
+      _resolveMetadata(node, node.metadata, _enclosingClass);
       return null;
     } finally {
       _enclosingClass = outerClass;
@@ -2214,7 +2239,7 @@
       SimpleIdentifier className = node.name;
       _enclosingClass = _findIdentifier(_enclosingUnit.types, className);
       super.visitClassTypeAlias(node);
-      _resolveMetadata(node.metadata, _enclosingClass);
+      _resolveMetadata(node, node.metadata, _enclosingClass);
       return null;
     } finally {
       _enclosingClass = outerClass;
@@ -2244,7 +2269,7 @@
       _expectedElements.remove(_enclosingExecutable);
       node.element = _enclosingExecutable as ConstructorElement;
       super.visitConstructorDeclaration(node);
-      _resolveMetadata(node.metadata, _enclosingExecutable);
+      _resolveMetadata(node, node.metadata, _enclosingExecutable);
       return null;
     } finally {
       _enclosingExecutable = outerExecutable;
@@ -2257,7 +2282,7 @@
     Element element =
         _findIdentifier(_enclosingExecutable.localVariables, variableName);
     super.visitDeclaredIdentifier(node);
-    _resolveMetadata(node.metadata, element);
+    _resolveMetadata(node, node.metadata, element);
     return null;
   }
 
@@ -2279,7 +2304,7 @@
     try {
       _enclosingParameter = element;
       super.visitDefaultFormalParameter(node);
-      _resolveMetadata(node.metadata, element);
+      _resolveMetadata(node, node.metadata, element);
       return null;
     } finally {
       _enclosingParameter = outerParameter;
@@ -2295,30 +2320,22 @@
       _findIdentifier(constants, constant.name);
     }
     super.visitEnumDeclaration(node);
-    _resolveMetadata(node.metadata, enclosingEnum);
+    _resolveMetadata(node, node.metadata, enclosingEnum);
     return null;
   }
 
   @override
   Object visitExportDirective(ExportDirective node) {
-    String uri = _getStringValue(node.uri);
-    ExportElement exportElement;
-    if (uri != null) {
-      LibraryElement library = _enclosingUnit.library;
-      Source source = _enclosingUnit.context.sourceFactory
-          .resolveUri(_enclosingUnit.source, uri);
-      exportElement = _findExport(node, library.exports, source);
-      node.element = exportElement;
-    }
     super.visitExportDirective(node);
-    _resolveMetadata(node.metadata, exportElement);
+    _resolveAnnotations(
+        node, node.metadata, _enclosingUnit.getAnnotations(node.offset));
     return null;
   }
 
   @override
   Object visitFieldDeclaration(FieldDeclaration node) {
     super.visitFieldDeclaration(node);
-    _resolveMetadata(node.metadata, node.fields.variables[0].element);
+    _resolveMetadata(node, node.metadata, node.fields.variables[0].element);
     return null;
   }
 
@@ -2331,7 +2348,7 @@
       try {
         _enclosingParameter = element;
         super.visitFieldFormalParameter(node);
-        _resolveMetadata(node.metadata, element);
+        _resolveMetadata(node, node.metadata, element);
         return null;
       } finally {
         _enclosingParameter = outerParameter;
@@ -2380,7 +2397,7 @@
       }
       node.functionExpression.element = _enclosingExecutable;
       super.visitFunctionDeclaration(node);
-      _resolveMetadata(node.metadata, _enclosingExecutable);
+      _resolveMetadata(node, node.metadata, _enclosingExecutable);
       return null;
     } finally {
       _enclosingExecutable = outerExecutable;
@@ -2412,7 +2429,7 @@
       _enclosingAlias =
           _findIdentifier(_enclosingUnit.functionTypeAliases, aliasName);
       super.visitFunctionTypeAlias(node);
-      _resolveMetadata(node.metadata, _enclosingAlias);
+      _resolveMetadata(node, node.metadata, _enclosingAlias);
       return null;
     } finally {
       _enclosingAlias = outerAlias;
@@ -2428,7 +2445,7 @@
       try {
         _enclosingParameter = element;
         super.visitFunctionTypedFormalParameter(node);
-        _resolveMetadata(node.metadata, _enclosingParameter);
+        _resolveMetadata(node, node.metadata, _enclosingParameter);
         return null;
       } finally {
         _enclosingParameter = outerParameter;
@@ -2440,17 +2457,9 @@
 
   @override
   Object visitImportDirective(ImportDirective node) {
-    String uri = _getStringValue(node.uri);
-    ImportElement importElement;
-    if (uri != null) {
-      LibraryElement library = _enclosingUnit.library;
-      Source source = _enclosingUnit.context.sourceFactory
-          .resolveUri(_enclosingUnit.source, uri);
-      importElement = _findImport(node, library.imports, source);
-      node.element = importElement;
-    }
     super.visitImportDirective(node);
-    _resolveMetadata(node.metadata, importElement);
+    _resolveAnnotations(
+        node, node.metadata, _enclosingUnit.getAnnotations(node.offset));
     return null;
   }
 
@@ -2465,10 +2474,9 @@
 
   @override
   Object visitLibraryDirective(LibraryDirective node) {
-    LibraryElement libraryElement = _enclosingUnit.library;
-    node.element = libraryElement;
     super.visitLibraryDirective(node);
-    _resolveMetadata(node.metadata, libraryElement);
+    _resolveAnnotations(
+        node, node.metadata, _enclosingUnit.getAnnotations(node.offset));
     return null;
   }
 
@@ -2500,7 +2508,7 @@
         _enclosingExecutable = accessor;
       }
       super.visitMethodDeclaration(node);
-      _resolveMetadata(node.metadata, _enclosingExecutable);
+      _resolveMetadata(node, node.metadata, _enclosingExecutable);
       return null;
     } finally {
       _enclosingExecutable = outerExecutable;
@@ -2509,16 +2517,9 @@
 
   @override
   Object visitPartDirective(PartDirective node) {
-    String uri = _getStringValue(node.uri);
-    CompilationUnitElement compilationUnitElement;
-    if (uri != null) {
-      Source partSource = _enclosingUnit.context.sourceFactory
-          .resolveUri(_enclosingUnit.source, uri);
-      compilationUnitElement =
-          _findPart(_enclosingUnit.library.parts, node, partSource);
-    }
     super.visitPartDirective(node);
-    _resolveMetadata(node.metadata, compilationUnitElement);
+    _resolveAnnotations(
+        node, node.metadata, _enclosingUnit.getAnnotations(node.offset));
     return null;
   }
 
@@ -2537,7 +2538,7 @@
       try {
         _enclosingParameter = element;
         super.visitSimpleFormalParameter(node);
-        _resolveMetadata(node.metadata, element);
+        _resolveMetadata(node, node.metadata, element);
         return null;
       } finally {
         _enclosingParameter = outerParameter;
@@ -2567,7 +2568,7 @@
   @override
   Object visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
     super.visitTopLevelVariableDeclaration(node);
-    _resolveMetadata(node.metadata, node.variables.variables[0].element);
+    _resolveMetadata(node, node.metadata, node.variables.variables[0].element);
     return null;
   }
 
@@ -2596,7 +2597,7 @@
           'Could not find type parameter with name "$name" at $offset', node);
     }
     super.visitTypeParameter(node);
-    _resolveMetadata(node.metadata, element);
+    _resolveMetadata(node, node.metadata, element);
     return null;
   }
 
@@ -2634,7 +2635,7 @@
     super.visitVariableDeclarationList(node);
     if (node.parent is! FieldDeclaration &&
         node.parent is! TopLevelVariableDeclaration) {
-      _resolveMetadata(node.metadata, node.variables[0].element);
+      _resolveMetadata(node, node.metadata, node.variables[0].element);
     }
     return null;
   }
@@ -2651,25 +2652,6 @@
       _findWithNameAndOffset(elements, node, '', offset);
 
   /**
-   * Return the export element from the given list of [exports] whose library
-   * has the given [source]. Throw an [ElementMismatchException] if an element
-   * corresponding to the identifier cannot be found.
-   */
-  ExportElement _findExport(
-      ExportDirective node, List<ExportElement> exports, Source source) {
-    if (source == null || !_context.exists(source)) {
-      return null;
-    }
-    for (ExportElement export in exports) {
-      if (export.exportedLibrary.source == source) {
-        return export;
-      }
-    }
-    _mismatch("Could not find export element for '$source'", node);
-    return null; // Never reached
-  }
-
-  /**
    * Return the element in the given list of [elements] that was created for the
    * declaration with the given [identifier]. As a side-effect, associate the
    * returned element with the identifier. Throw an [ElementMismatchException]
@@ -2687,64 +2669,6 @@
   }
 
   /**
-   * Return the import element from the given list of [imports] whose library
-   * has the given [source]. Throw an [ElementMismatchException] if an element
-   * corresponding to the [source] cannot be found.
-   */
-  ImportElement _findImport(
-      ImportDirective node, List<ImportElement> imports, Source source) {
-    if (source == null || !_context.exists(source)) {
-      return null;
-    }
-    SimpleIdentifier prefix = node.prefix;
-    bool foundSource = false;
-    for (ImportElement element in imports) {
-      if (element.importedLibrary.source == source) {
-        foundSource = true;
-        PrefixElement prefixElement = element.prefix;
-        if (prefix == null) {
-          if (prefixElement == null) {
-            return element;
-          }
-        } else {
-          if (prefixElement != null &&
-              prefix.name == prefixElement.displayName) {
-            return element;
-          }
-        }
-      }
-    }
-    if (foundSource) {
-      if (prefix == null) {
-        _mismatch(
-            "Could not find import element for '$source' with no prefix", node);
-      }
-      _mismatch(
-          "Could not find import element for '$source' with prefix ${prefix.name}",
-          node);
-    }
-    _mismatch("Could not find import element for '$source'", node);
-    return null; // Never reached
-  }
-
-  /**
-   * Return the element in the given list of [parts] that was created for the
-   * part with the given [source]. Throw an [ElementMismatchException] if an
-   * element corresponding to the source cannot be found.
-   */
-  CompilationUnitElement _findPart(List<CompilationUnitElement> parts,
-      PartDirective directive, Source source) {
-    for (CompilationUnitElement part in parts) {
-      if (part.source == source) {
-        return part;
-      }
-    }
-    _mismatch(
-        'Could not find compilation unit element for "$source"', directive);
-    return null; // Never reached
-  }
-
-  /**
    * Return the element in the given list of [elements] that was created for the
    * declaration with the given [name] at the given [offset]. Throw an
    * [ElementMismatchException] if an element corresponding to the identifier
@@ -2811,51 +2735,37 @@
   }
 
   /**
-   * Return the value of the given string [literal], or `null` if the string is
-   * not a constant string without any string interpolation.
+   * Associate each of the annotation [nodes] with the corresponding
+   * [ElementAnnotation] in [annotations]. If there is a problem, report it
+   * against the given [parent] node.
    */
-  String _getStringValue(StringLiteral literal) {
-    if (literal is StringInterpolation) {
-      return null;
+  void _resolveAnnotations(AstNode parent, NodeList<Annotation> nodes,
+      List<ElementAnnotation> annotations) {
+    int nodeCount = nodes.length;
+    if (nodeCount != annotations.length) {
+      _mismatch(
+          'Found $nodeCount annotation nodes and '
+          '${annotations.length} element annotations',
+          parent);
     }
-    return literal.stringValue;
+    for (int i = 0; i < nodeCount; i++) {
+      nodes[i].elementAnnotation = annotations[i];
+    }
   }
 
   /**
-   * Throw an [ElementMismatchException] to report that the element model and
-   * the AST do not match. The [message] will have the path to the given [node]
-   * appended to it.
-   */
-  void _mismatch(String message, AstNode node) {
-    StringBuffer buffer = new StringBuffer();
-    buffer.writeln(message);
-    buffer.write('Path to root:');
-    String separator = ' ';
-    AstNode parent = node;
-    while (parent != null) {
-      buffer.write(separator);
-      buffer.write(parent.runtimeType.toString());
-      separator = ', ';
-      parent = parent.parent;
-    }
-    throw new ElementMismatchException(buffer.toString());
-  }
-
-  /**
-   * If [element] is not `null`, associate each [Annotation] in [astMetadata]
-   * with the corresponding [ElementAnnotation] in [element.metadata].
+   * If [element] is not `null`, associate each of the annotation [nodes] with
+   * the corresponding [ElementAnnotation] in [element.metadata]. If there is a
+   * problem, report it against the given [parent] node.
    *
    * If [element] is `null`, do nothing--this allows us to be robust in the
    * case where we are operating on an element model that hasn't been fully
    * built.
    */
-  void _resolveMetadata(NodeList<Annotation> astMetadata, Element element) {
+  void _resolveMetadata(
+      AstNode parent, NodeList<Annotation> nodes, Element element) {
     if (element != null) {
-      List<ElementAnnotation> elementMetadata = element.metadata;
-      assert(astMetadata.length == elementMetadata.length);
-      for (int i = 0; i < astMetadata.length; i++) {
-        astMetadata[i].elementAnnotation = elementMetadata[i];
-      }
+      _resolveAnnotations(parent, nodes, element.metadata);
     }
   }
 
@@ -2878,6 +2788,129 @@
 }
 
 /**
+ * A visitor that resolves directives in an AST structure to already built
+ * elements.
+ *
+ * The resulting AST must have everything resolved that would have been resolved
+ * by a [DirectiveElementBuilder].
+ */
+class DirectiveResolver extends SimpleAstVisitor {
+  CompilationUnitElementImpl _enclosingUnit;
+
+  @override
+  void visitCompilationUnit(CompilationUnit node) {
+    _enclosingUnit = node.element;
+    for (Directive directive in node.directives) {
+      directive.accept(this);
+    }
+  }
+
+  @override
+  void visitExportDirective(ExportDirective node) {
+    String uri = _getStringValue(node.uri);
+    if (uri != null) {
+      LibraryElement library = _enclosingUnit.library;
+      Source source = _enclosingUnit.context.sourceFactory
+          .resolveUri(_enclosingUnit.source, uri);
+      ExportElement exportElement = _findExport(node, library.exports, source);
+      node.element = exportElement;
+    } else {
+      node.element = null;
+    }
+  }
+
+  @override
+  void visitImportDirective(ImportDirective node) {
+    String uri = _getStringValue(node.uri);
+    if (uri != null) {
+      LibraryElement library = _enclosingUnit.library;
+      Source source = _enclosingUnit.context.sourceFactory
+          .resolveUri(_enclosingUnit.source, uri);
+      ImportElement importElement = _findImport(node, library.imports, source);
+      node.element = importElement;
+    } else {
+      node.element = null;
+    }
+  }
+
+  @override
+  void visitLibraryDirective(LibraryDirective node) {
+    node.element = _enclosingUnit.library;
+  }
+
+  /**
+   * Return the export element from the given list of [exports] whose library
+   * has the given [source]. Throw an [ElementMismatchException] if an element
+   * corresponding to the identifier cannot be found.
+   */
+  ExportElement _findExport(
+      ExportDirective node, List<ExportElement> exports, Source source) {
+    if (source == null || !_enclosingUnit.context.exists(source)) {
+      return null;
+    }
+    for (ExportElement export in exports) {
+      if (export.exportedLibrary.source == source) {
+        return export;
+      }
+    }
+    _mismatch("Could not find export element for '$source'", node);
+    return null; // Never reached
+  }
+
+  /**
+   * Return the import element from the given list of [imports] whose library
+   * has the given [source]. Throw an [ElementMismatchException] if an element
+   * corresponding to the [source] cannot be found.
+   */
+  ImportElement _findImport(
+      ImportDirective node, List<ImportElement> imports, Source source) {
+    if (source == null || !_enclosingUnit.context.exists(source)) {
+      return null;
+    }
+    SimpleIdentifier prefix = node.prefix;
+    bool foundSource = false;
+    for (ImportElement element in imports) {
+      if (element.importedLibrary.source == source) {
+        foundSource = true;
+        PrefixElement prefixElement = element.prefix;
+        if (prefix == null) {
+          if (prefixElement == null) {
+            return element;
+          }
+        } else {
+          if (prefixElement != null &&
+              prefix.name == prefixElement.displayName) {
+            return element;
+          }
+        }
+      }
+    }
+    if (foundSource) {
+      if (prefix == null) {
+        _mismatch(
+            "Could not find import element for '$source' with no prefix", node);
+      }
+      _mismatch(
+          "Could not find import element for '$source' with prefix ${prefix.name}",
+          node);
+    }
+    _mismatch("Could not find any import element for '$source'", node);
+    return null; // Never reached
+  }
+
+  /**
+   * Return the value of the given string [literal], or `null` if the string is
+   * not a constant string without any string interpolation.
+   */
+  String _getStringValue(StringLiteral literal) {
+    if (literal is StringInterpolation) {
+      return null;
+    }
+    return literal.stringValue;
+  }
+}
+
+/**
  * Instances of the class `ElementHolder` hold on to elements created while traversing an AST
  * structure so that they can be accessed when creating their enclosing element.
  */
@@ -3255,6 +3288,7 @@
   /**
    * The scope in which this scope is lexically enclosed.
    */
+  @override
   final Scope enclosingScope;
 
   /**
@@ -3363,7 +3397,7 @@
     valuesField.static = true;
     valuesField.const3 = true;
     valuesField.synthetic = true;
-    valuesField.type = _typeProvider.listType.substitute4(<DartType>[enumType]);
+    valuesField.type = _typeProvider.listType.instantiate(<DartType>[enumType]);
     fields.add(valuesField);
     getters.add(_createGetter(valuesField));
     //
@@ -3374,13 +3408,7 @@
     int constantCount = constants.length;
     for (int i = 0; i < constantCount; i++) {
       EnumConstantDeclaration constant = constants[i];
-      SimpleIdentifier constantName = constant.name;
-      FieldElementImpl constantField =
-          new ConstFieldElementImpl.forNode(constantName);
-      constantField.static = true;
-      constantField.const3 = true;
-      constantField.type = enumType;
-      setElementDocumentationComment(constantField, constant);
+      FieldElementImpl constantField = constant.name.staticElement;
       //
       // Create a value for the constant.
       //
@@ -3392,8 +3420,7 @@
       constantValues.add(value);
       constantField.evaluationResult = new EvaluationResultImpl(value);
       fields.add(constantField);
-      getters.add(_createGetter(constantField));
-      constantName.staticElement = constantField;
+      getters.add(constantField.getter);
     }
     //
     // Build the value of the 'values' field.
@@ -4886,7 +4913,7 @@
     if (!match(t1.element.type, null)) {
       return null;
     }
-    DartType newT1 = t1.element.type.substitute4(actuals);
+    DartType newT1 = t1.element.type.instantiate(actuals);
     // If we found a solution, return it.
     if (_typeSystem.isSubtypeOf(newT1, t2)) {
       return actuals;
@@ -6046,6 +6073,7 @@
   /**
    * The listener that is to be informed when an error is encountered.
    */
+  @override
   final AnalysisErrorListener errorListener;
 
   /**
@@ -7243,6 +7271,7 @@
    * The class element representing the class containing the current node,
    * or `null` if the current node is not contained in a class.
    */
+  @override
   ClassElement enclosingClass = null;
 
   /**
@@ -7718,7 +7747,7 @@
     DartType contextType = InferenceContext.getType(node);
     if (contextType != null) {
       InterfaceType futureT = typeProvider.futureType
-          .substitute4([contextType.flattenFutures(typeSystem)]);
+          .instantiate([contextType.flattenFutures(typeSystem)]);
       InferenceContext.setType(node.expression, futureT);
     }
     return super.visitAwaitExpression(node);
@@ -8156,7 +8185,7 @@
           ? typeProvider.iterableType
           : typeProvider.streamType;
       InferenceContext.setType(
-          iterable, targetType.substitute4([loopVariable.type.type]));
+          iterable, targetType.instantiate([loopVariable.type.type]));
     }
     safelyVisit(iterable);
     safelyVisit(loopVariable);
@@ -8424,12 +8453,12 @@
       targs = node.typeArguments.arguments.map((t) => t.type).toList();
     } else if (contextType is InterfaceType) {
       InterfaceType listD =
-          typeProvider.listType.substitute4([typeProvider.dynamicType]);
+          typeProvider.listType.instantiate([typeProvider.dynamicType]);
       targs = inferenceContext.matchTypes(listD, contextType);
     }
     if (targs != null && targs.length == 1 && !targs[0].isDynamic) {
       DartType eType = targs[0];
-      InterfaceType listT = typeProvider.listType.substitute4([eType]);
+      InterfaceType listT = typeProvider.listType.instantiate([eType]);
       for (Expression child in node.elements) {
         InferenceContext.setType(child, eType);
       }
@@ -8449,13 +8478,13 @@
       targs = node.typeArguments.arguments.map((t) => t.type).toList();
     } else if (contextType is InterfaceType) {
       InterfaceType mapD = typeProvider.mapType
-          .substitute4([typeProvider.dynamicType, typeProvider.dynamicType]);
+          .instantiate([typeProvider.dynamicType, typeProvider.dynamicType]);
       targs = inferenceContext.matchTypes(mapD, contextType);
     }
     if (targs != null && targs.length == 2 && targs.any((t) => !t.isDynamic)) {
       DartType kType = targs[0];
       DartType vType = targs[1];
-      InterfaceType mapT = typeProvider.mapType.substitute4([kType, vType]);
+      InterfaceType mapT = typeProvider.mapType.instantiate([kType, vType]);
       for (MapLiteralEntry entry in node.entries) {
         InferenceContext.setType(entry.key, kType);
         InferenceContext.setType(entry.value, vType);
@@ -8718,7 +8747,7 @@
         InterfaceType wrapperType = _enclosingFunction.isSynchronous
             ? typeProvider.iterableType
             : typeProvider.streamType;
-        type = wrapperType.substitute4(<DartType>[type]);
+        type = wrapperType.instantiate(<DartType>[type]);
       }
       InferenceContext.setType(e, type);
     }
@@ -8732,9 +8761,7 @@
         InterfaceType wrapperType = _enclosingFunction.isSynchronous
             ? typeProvider.iterableType
             : typeProvider.streamType;
-        List<DartType> candidates =
-            _findImplementedTypeArgument(type, wrapperType);
-        type = InterfaceTypeImpl.findMostSpecificType(candidates, typeSystem);
+        type = typeSystem.mostSpecificTypeArgument(type, wrapperType);
       }
       if (type != null) {
         inferenceContext.addReturnOrYieldType(type);
@@ -8806,39 +8833,6 @@
   }
 
   /**
-   * Starting from t1, search its class hierarchy for types of the form
-   * `t2<R>`, and return a list of the resulting R's.
-   *
-   * For example, given t1 = `List<int>` and t2 = `Iterable<T>`, this will
-   * return [int].
-   */
-  // TODO(jmesserly): this is very similar to code used for flattening futures.
-  // The only difference is, because of a lack of TypeProvider, the other method
-  // has to match the Future type by its name and library. Here was are passed
-  // in the correct type.
-  List<DartType> _findImplementedTypeArgument(DartType t1, InterfaceType t2) {
-    List<DartType> result = <DartType>[];
-    HashSet<ClassElement> visitedClasses = new HashSet<ClassElement>();
-    void recurse(InterfaceTypeImpl type) {
-      if (type.element == t2.element && type.typeArguments.isNotEmpty) {
-        result.add(type.typeArguments[0]);
-      }
-      if (visitedClasses.add(type.element)) {
-        if (type.superclass != null) {
-          recurse(type.superclass);
-        }
-        type.mixins.forEach(recurse);
-        type.interfaces.forEach(recurse);
-        visitedClasses.remove(type.element);
-      }
-    }
-    if (t1 is InterfaceType) {
-      recurse(t1);
-    }
-    return result;
-  }
-
-  /**
    * The given expression is the expression used to compute the iterator for a
    * for-each statement. Attempt to compute the type of objects that will be
    * assigned to the loop variable and return that type. Return `null` if the
@@ -11248,10 +11242,10 @@
     _symbolType = _getType(coreNamespace, "Symbol");
     _typeType = _getType(coreNamespace, "Type");
     _undefinedType = UndefinedTypeImpl.instance;
-    _futureDynamicType = _futureType.substitute4(<DartType>[_dynamicType]);
-    _futureNullType = _futureType.substitute4(<DartType>[_nullType]);
-    _iterableDynamicType = _iterableType.substitute4(<DartType>[_dynamicType]);
-    _streamDynamicType = _streamType.substitute4(<DartType>[_dynamicType]);
+    _futureDynamicType = _futureType.instantiate(<DartType>[_dynamicType]);
+    _futureNullType = _futureType.instantiate(<DartType>[_nullType]);
+    _iterableDynamicType = _iterableType.instantiate(<DartType>[_dynamicType]);
+    _streamDynamicType = _streamType.instantiate(<DartType>[_dynamicType]);
   }
 }
 
@@ -11283,6 +11277,11 @@
   bool _strongMode;
 
   /**
+   * Type type system in use for this resolver pass.
+   */
+  TypeSystem _typeSystem;
+
+  /**
    * Initialize a newly created visitor to resolve the nodes in an AST node.
    *
    * [definingLibrary] is the element for the library containing the node being
@@ -11305,6 +11304,7 @@
     _dynamicType = typeProvider.dynamicType;
     _undefinedType = typeProvider.undefinedType;
     _strongMode = definingLibrary.context.analysisOptions.strongMode;
+    _typeSystem = TypeSystem.create(definingLibrary.context);
   }
 
   @override
@@ -11853,7 +11853,7 @@
     if (argumentList != null) {
       NodeList<TypeName> arguments = argumentList.arguments;
       int argumentCount = arguments.length;
-      List<DartType> parameters = _getTypeParameters(type);
+      List<DartType> parameters = _typeSystem.typeFormalsAsTypes(type);
       int parameterCount = parameters.length;
       List<DartType> typeArguments = new List<DartType>(parameterCount);
       if (argumentCount == parameterCount) {
@@ -11872,22 +11872,9 @@
           typeArguments[i] = _dynamicType;
         }
       }
-      type = _instantiateType(type, typeArguments);
+      type = _typeSystem.instantiateType(type, typeArguments);
     } else {
-      //
-      // Check for the case where there are no type arguments given for a
-      // parameterized type.
-      //
-      List<DartType> parameters = _getTypeParameters(type);
-      int parameterCount = parameters.length;
-      if (parameterCount > 0) {
-        DynamicTypeImpl dynamicType = DynamicTypeImpl.instance;
-        List<DartType> arguments = new List<DartType>(parameterCount);
-        for (int i = 0; i < parameterCount; i++) {
-          arguments[i] = dynamicType;
-        }
-        type = _instantiateType(type, arguments);
-      }
+      type = _typeSystem.instantiateToBounds(type);
     }
     typeName.staticType = type;
     node.type = type;
@@ -12066,21 +12053,6 @@
   }
 
   /**
-   * Return the type arguments associated with the given type.
-   *
-   * @param type the type whole type arguments are to be returned
-   * @return the type arguments associated with the given type
-   */
-  List<DartType> _getTypeParameters(DartType type) {
-    if (type is InterfaceType) {
-      return type.typeArguments;
-    } else if (type is FunctionType) {
-      return TypeParameterTypeImpl.getTypes(type.typeFormals);
-    }
-    return DartType.EMPTY_LIST;
-  }
-
-  /**
    * Returns the simple identifier of the given (may be qualified) type name.
    *
    * @param typeName the (may be qualified) qualified type name
@@ -12128,21 +12100,6 @@
     }
   }
 
-  DartType _instantiateType(DartType type, List<DartType> typeArguments) {
-    // TODO(jmesserly): this should use TypeSystem.instantiateToBounds,
-    // from calling methods when they know they're just trying to fill in
-    // "dynamic" for the case of missing type arguments.
-
-    if (type is InterfaceTypeImpl) {
-      return type.substitute4(typeArguments);
-    } else if (type is FunctionTypeImpl) {
-      return type.instantiate(typeArguments);
-    } else {
-      // TODO(brianwilkerson) Report this internal error.
-      return type;
-    }
-  }
-
   /**
    * Checks if the given type name is used as the type in an as expression.
    *
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index b54bc04..12c9aac 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -635,13 +635,16 @@
         _resolver.inferenceContext.recordInference(node, contextType);
       } else if (node.elements.isNotEmpty) {
         // Infer the list type from the arguments.
+        // TODO(jmesserly): record inference here?
         staticType =
             node.elements.map((e) => e.staticType).reduce(_leastUpperBound);
-        // TODO(jmesserly): record inference here?
+        if (staticType.isBottom) {
+          staticType = _dynamicType;
+        }
       }
     }
     _recordStaticType(
-        node, _typeProvider.listType.substitute4(<DartType>[staticType]));
+        node, _typeProvider.listType.instantiate(<DartType>[staticType]));
     return null;
   }
 
@@ -686,18 +689,24 @@
         _resolver.inferenceContext.recordInference(node, contextType);
       } else if (node.entries.isNotEmpty) {
         // Infer the list type from the arguments.
+        // TODO(jmesserly): record inference here?
         staticKeyType =
             node.entries.map((e) => e.key.staticType).reduce(_leastUpperBound);
         staticValueType = node.entries
             .map((e) => e.value.staticType)
             .reduce(_leastUpperBound);
-        // TODO(jmesserly): record inference here?
+        if (staticKeyType.isBottom) {
+          staticKeyType = _dynamicType;
+        }
+        if (staticValueType.isBottom) {
+          staticValueType = _dynamicType;
+        }
       }
     }
     _recordStaticType(
         node,
         _typeProvider.mapType
-            .substitute4(<DartType>[staticKeyType, staticValueType]));
+            .instantiate(<DartType>[staticKeyType, staticValueType]));
     return null;
   }
 
@@ -787,7 +796,7 @@
               if (returnType != null) {
                 // prepare the type of the returned Future
                 InterfaceType newFutureType = _typeProvider.futureType
-                    .substitute4([returnType.flattenFutures(_typeSystem)]);
+                    .instantiate([returnType.flattenFutures(_typeSystem)]);
                 // set the 'then' invocation type
                 _resolver.recordPropagatedTypeIfBetter(node, newFutureType);
                 needPropagatedType = false;
@@ -1485,10 +1494,10 @@
       InterfaceType genericType = body.isAsynchronous
           ? _typeProvider.streamType
           : _typeProvider.iterableType;
-      return genericType.substitute4(<DartType>[type]);
+      return genericType.instantiate(<DartType>[type]);
     } else if (body.isAsynchronous) {
       return _typeProvider.futureType
-          .substitute4(<DartType>[type.flattenFutures(_typeSystem)]);
+          .instantiate(<DartType>[type.flattenFutures(_typeSystem)]);
     } else {
       return type;
     }
@@ -1604,7 +1613,7 @@
         if (returnType.typeParameters.isNotEmpty) {
           // Caller can't deal with unbound type parameters, so substitute
           // `dynamic`.
-          return returnType.type.substitute4(
+          return returnType.type.instantiate(
               returnType.typeParameters.map((_) => _dynamicType).toList());
         }
         return returnType.type;
diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
index 2beeab4..9fd53dd 100644
--- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
@@ -167,7 +167,7 @@
     FieldElementImpl valuesField = new FieldElementImpl("values", -1);
     valuesField.static = true;
     valuesField.const3 = true;
-    valuesField.type = typeProvider.listType.substitute4(<DartType>[enumType]);
+    valuesField.type = typeProvider.listType.instantiate(<DartType>[enumType]);
     fields.add(valuesField);
     //
     // Build the enum constants.
diff --git a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart b/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
index 06f4bee..bf2e130 100644
--- a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
+++ b/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
@@ -248,7 +248,7 @@
   @override
   InterfaceType get futureDynamicType {
     if (_futureDynamicType == null) {
-      _futureDynamicType = futureType.substitute4(<DartType>[dynamicType]);
+      _futureDynamicType = futureType.instantiate(<DartType>[dynamicType]);
     }
     return _futureDynamicType;
   }
@@ -256,7 +256,7 @@
   @override
   InterfaceType get futureNullType {
     if (_futureNullType == null) {
-      _futureNullType = futureType.substitute4(<DartType>[nullType]);
+      _futureNullType = futureType.instantiate(<DartType>[nullType]);
     }
     return _futureNullType;
   }
@@ -291,7 +291,7 @@
   @override
   InterfaceType get iterableDynamicType {
     if (_iterableDynamicType == null) {
-      _iterableDynamicType = iterableType.substitute4(<DartType>[dynamicType]);
+      _iterableDynamicType = iterableType.instantiate(<DartType>[dynamicType]);
     }
     return _iterableDynamicType;
   }
@@ -305,7 +305,7 @@
       DartType eType = iterableElement.typeParameters[0].type;
       _setAccessors(iterableElement, <PropertyAccessorElement>[
         ElementFactory.getterElement(
-            "iterator", false, iteratorType.substitute4(<DartType>[eType])),
+            "iterator", false, iteratorType.instantiate(<DartType>[eType])),
         ElementFactory.getterElement("last", false, eType)
       ]);
       iterableElement.constructors = <ConstructorElement>[
@@ -345,7 +345,7 @@
       _listType = listElement.type;
       DartType eType = listElement.typeParameters[0].type;
       InterfaceType iterableType =
-          this.iterableType.substitute4(<DartType>[eType]);
+          this.iterableType.instantiate(<DartType>[eType]);
       listElement.interfaces = <InterfaceType>[iterableType];
       _setAccessors(listElement, <PropertyAccessorElement>[
         ElementFactory.getterElement("length", false, intType)
@@ -464,7 +464,7 @@
   @override
   InterfaceType get streamDynamicType {
     if (_streamDynamicType == null) {
-      _streamDynamicType = streamType.substitute4(<DartType>[dynamicType]);
+      _streamDynamicType = streamType.instantiate(<DartType>[dynamicType]);
     }
     return _streamDynamicType;
   }
@@ -486,7 +486,7 @@
         ElementFactory.getterElement("isEmpty", false, boolType),
         ElementFactory.getterElement("length", false, intType),
         ElementFactory.getterElement(
-            "codeUnits", false, listType.substitute4(<DartType>[intType]))
+            "codeUnits", false, listType.instantiate(<DartType>[intType]))
       ]);
       stringElement.methods = <MethodElement>[
         ElementFactory.methodElement("+", _stringType, [_stringType]),
diff --git a/pkg/analyzer/lib/src/generated/type_system.dart b/pkg/analyzer/lib/src/generated/type_system.dart
index ee4d0a1..ff70e89 100644
--- a/pkg/analyzer/lib/src/generated/type_system.dart
+++ b/pkg/analyzer/lib/src/generated/type_system.dart
@@ -21,11 +21,9 @@
  * Implementation of [TypeSystem] using the strong mode rules.
  * https://github.com/dart-lang/dev_compiler/blob/master/STRONG_MODE.md
  */
-class StrongTypeSystemImpl implements TypeSystem {
+class StrongTypeSystemImpl extends TypeSystem {
   final _specTypeSystem = new TypeSystemImpl();
 
-  StrongTypeSystemImpl();
-
   bool anyParameterType(FunctionType ft, bool predicate(DartType t)) {
     return ft.parameters.any((p) => predicate(p.type));
   }
@@ -52,6 +50,51 @@
     return _specTypeSystem.getLeastUpperBound(typeProvider, type1, type2);
   }
 
+  /**
+   * Given a generic function type `F<T0, T1, ... Tn>` and a context type C,
+   * infer an instantiation of F, such that `F<S0, S1, ..., Sn>` <: C.
+   *
+   * This is similar to [inferGenericFunctionCall], but the return type is also
+   * considered as part of the solution.
+   *
+   * If this function is called with a [contextType] that is also
+   * uninstantiated, or a [fnType] that is already instantiated, it will have
+   * no effect and return [fnType].
+   */
+  FunctionType inferFunctionTypeInstantiation(TypeProvider typeProvider,
+      FunctionType contextType, FunctionType fnType) {
+    if (contextType.typeFormals.isNotEmpty || fnType.typeFormals.isEmpty) {
+      return fnType;
+    }
+
+    // Create a TypeSystem that will allow certain type parameters to be
+    // inferred. It will optimistically assume these type parameters can be
+    // subtypes (or supertypes) as necessary, and track the constraints that
+    // are implied by this.
+    var inferringTypeSystem =
+        new _StrongInferenceTypeSystem(typeProvider, fnType.typeFormals);
+
+    // Since we're trying to infer the instantiation, we want to ignore type
+    // formals as we check the parameters and return type.
+    var inferFnType =
+        fnType.instantiate(TypeParameterTypeImpl.getTypes(fnType.typeFormals));
+    if (!inferringTypeSystem.isSubtypeOf(inferFnType, contextType)) {
+      return fnType;
+    }
+
+    // Try to infer and instantiate the resulting type.
+    var resultType =
+        inferringTypeSystem._infer(fnType, allowPartialSolution: false);
+
+    // If the instantiation failed (because some type variable constraints
+    // could not be solved, in other words, we could not find a valid subtype),
+    // then return the original type, so the error is in terms of it.
+    //
+    // It would be safe to return a partial solution here, but the user
+    // experience may be better if we simply do not infer in this case.
+    return resultType ?? fnType;
+  }
+
   /// Given a function type with generic type parameters, infer the type
   /// parameters from the actual argument types, and return the instantiated
   /// function type. If we can't, returns the original function type.
@@ -107,71 +150,31 @@
   }
 
   /**
-   * Given a generic function type `F<T0, T1, ... Tn>` and a context type C,
-   * infer an instantiation of F, such that `F<S0, S1, ..., Sn>` <: C.
-   *
-   * This is similar to [inferGenericFunctionCall], but the return type is also
-   * considered as part of the solution.
-   *
-   * If this function is called with a [contextType] that is also
-   * uninstantiated, or a [fnType] that is already instantiated, it will have
-   * no effect and return [fnType].
-   */
-  FunctionType inferFunctionTypeInstantiation(TypeProvider typeProvider,
-      FunctionType contextType, FunctionType fnType) {
-    if (contextType.typeFormals.isNotEmpty || fnType.typeFormals.isEmpty) {
-      return fnType;
-    }
-
-    // Create a TypeSystem that will allow certain type parameters to be
-    // inferred. It will optimistically assume these type parameters can be
-    // subtypes (or supertypes) as necessary, and track the constraints that
-    // are implied by this.
-    var inferringTypeSystem =
-        new _StrongInferenceTypeSystem(typeProvider, fnType.typeFormals);
-
-    // Since we're trying to infer the instantiation, we want to ignore type
-    // formals as we check the parameters and return type.
-    var inferFnType =
-        fnType.instantiate(TypeParameterTypeImpl.getTypes(fnType.typeFormals));
-    if (!inferringTypeSystem.isSubtypeOf(inferFnType, contextType)) {
-      return fnType;
-    }
-
-    // Try to infer and instantiate the resulting type.
-    var resultType =
-        inferringTypeSystem._infer(fnType, allowPartialSolution: false);
-
-    // If the instantiation failed (because some type variable constraints
-    // could not be solved, in other words, we could not find a valid subtype),
-    // then return the original type, so the error is in terms of it.
-    //
-    // It would be safe to return a partial solution here, but the user
-    // experience may be better if we simply do not infer in this case.
-    return resultType ?? fnType;
-  }
-
-  /**
-   * Given a [FunctionType] [function], of the form
-   * <T0 extends B0, ... Tn extends Bn>.F (where Bi is implicitly
-   * dynamic if absent, and F is a non-generic function type)
-   * compute {I0/T0, ..., In/Tn}F
+   * Given a [DartType] [type], if [type] is an uninstantiated
+   * parameterized type then instantiate the parameters to their
+   * bounds. Specifically, if [type] is of the form
+   * `<T0 extends B0, ... Tn extends Bn>.F` or
+   * `class C<T0 extends B0, ... Tn extends Bn> {...}`
+   * (where Bi is implicitly dynamic if absent),
+   * compute `{I0/T0, ..., In/Tn}F or C<I0, ..., In>` respectively
    * where I_(i+1) = {I0/T0, ..., Ii/Ti, dynamic/T_(i+1)}B_(i+1).
    * That is, we instantiate the generic with its bounds, replacing
    * each Ti in Bi with dynamic to get Ii, and then replacing Ti with
    * Ii in all of the remaining bounds.
    */
-  DartType instantiateToBounds(FunctionType function) {
-    int count = function.typeFormals.length;
+  DartType instantiateToBounds(DartType type) {
+    List<TypeParameterElement> typeFormals = typeFormalsAsElements(type);
+    int count = typeFormals.length;
     if (count == 0) {
-      return function;
+      return type;
     }
+
     // We build up a substitution replacing bound parameters with
     // their instantiated bounds, {substituted/variables}
     List<DartType> substituted = new List<DartType>();
     List<DartType> variables = new List<DartType>();
     for (int i = 0; i < count; i++) {
-      TypeParameterElement param = function.typeFormals[i];
+      TypeParameterElement param = typeFormals[i];
       DartType bound = param.bound ?? DynamicTypeImpl.instance;
       DartType variable = param.type;
       // For each Ti extends Bi, first compute Ii by replacing
@@ -183,7 +186,8 @@
       // of dynamic in subsequent rounds.
       substituted[i] = bound.substitute2(substituted, variables);
     }
-    return function.instantiate(substituted);
+
+    return instantiateType(type, substituted);
   }
 
   @override
@@ -460,13 +464,27 @@
       TypeProvider typeProvider, DartType type1, DartType type2);
 
   /**
-   * Given a [function] type, instantiate it with its bounds.
+   * Given a [DartType] [type], instantiate it with its bounds.
    *
    * The behavior of this method depends on the type system, for example, in
    * classic Dart `dynamic` will be used for all type arguments, whereas
    * strong mode prefers the actual bound type if it was specified.
    */
-  FunctionType instantiateToBounds(FunctionType function);
+  DartType instantiateToBounds(DartType type);
+
+  /**
+   * Given a [DartType] [type] and a list of types
+   * [typeArguments], instantiate the type formals with the
+   * provided actuals.  If [type] is not a parameterized type,
+   * no instantiation is done.
+   */
+  DartType instantiateType(DartType type, List<DartType> typeArguments) {
+    if (type is ParameterizedType) {
+      return type.instantiate(typeArguments);
+    } else {
+      return type;
+    }
+  }
 
   /**
    * Return `true` if the [leftType] is assignable to the [rightType] (that is,
@@ -489,6 +507,74 @@
   bool isSubtypeOf(DartType leftType, DartType rightType);
 
   /**
+   * Searches the superinterfaces of [type] for implementations of [genericType]
+   * and returns the most specific type argument used for that generic type.
+   *
+   * For example, given [type] `List<int>` and [genericType] `Iterable<T>`,
+   * returns [int].
+   *
+   * Returns `null` if [type] does not implement [genericType].
+   */
+  // TODO(jmesserly): this is very similar to code used for flattening futures.
+  // The only difference is, because of a lack of TypeProvider, the other method
+  // has to match the Future type by its name and library. Here was are passed
+  // in the correct type.
+  DartType mostSpecificTypeArgument(DartType type, DartType genericType) {
+    if (type is! InterfaceType) return null;
+
+    // Walk the superinterface hierarchy looking for [genericType].
+    List<DartType> candidates = <DartType>[];
+    HashSet<ClassElement> visitedClasses = new HashSet<ClassElement>();
+    void recurse(InterfaceTypeImpl interface) {
+      if (interface.element == genericType.element &&
+          interface.typeArguments.isNotEmpty) {
+        candidates.add(interface.typeArguments[0]);
+      }
+      if (visitedClasses.add(interface.element)) {
+        if (interface.superclass != null) {
+          recurse(interface.superclass);
+        }
+        interface.mixins.forEach(recurse);
+        interface.interfaces.forEach(recurse);
+        visitedClasses.remove(interface.element);
+      }
+    }
+
+    recurse(type);
+
+    // Since the interface may be implemented multiple times with different
+    // type arguments, choose the best one.
+    return InterfaceTypeImpl.findMostSpecificType(candidates, this);
+  }
+
+  /**
+   * Given a [DartType] type, return the [TypeParameterElement]s corresponding
+   * to its formal type parameters (if any).
+   *
+   * @param type the type whose type arguments are to be returned
+   * @return the type arguments associated with the given type
+   */
+  List<TypeParameterElement> typeFormalsAsElements(DartType type) {
+    if (type is FunctionType) {
+      return type.typeFormals;
+    } else if (type is InterfaceType) {
+      return type.typeParameters;
+    } else {
+      return TypeParameterElement.EMPTY_LIST;
+    }
+  }
+
+  /**
+   * Given a [DartType] type, return the [DartType]s corresponding
+   * to its formal type parameters (if any).
+   *
+   * @param type the type whose type arguments are to be returned
+   * @return the type arguments associated with the given type
+   */
+  List<DartType> typeFormalsAsTypes(DartType type) =>
+      TypeParameterTypeImpl.getTypes(typeFormalsAsElements(type));
+
+  /**
    * Create either a strong mode or regular type system based on context.
    */
   static TypeSystem create(AnalysisContext context) {
@@ -501,7 +587,7 @@
 /**
  * Implementation of [TypeSystem] using the rules in the Dart specification.
  */
-class TypeSystemImpl implements TypeSystem {
+class TypeSystemImpl extends TypeSystem {
   TypeSystemImpl();
 
   @override
@@ -574,15 +660,18 @@
   }
 
   /**
-   * Instantiate the function type using `dynamic` for all generic parameters.
+   * Instantiate a parameterized type using `dynamic` for all generic
+   * parameters.  Returns the type unchanged if there are no parameters.
    */
-  FunctionType instantiateToBounds(FunctionType function) {
-    int count = function.typeFormals.length;
-    if (count == 0) {
-      return function;
+  DartType instantiateToBounds(DartType type) {
+    List<DartType> typeFormals = typeFormalsAsTypes(type);
+    int count = typeFormals.length;
+    if (count > 0) {
+      List<DartType> typeArguments =
+          new List<DartType>.filled(count, DynamicTypeImpl.instance);
+      return instantiateType(type, typeArguments);
     }
-    return function.instantiate(
-        new List<DartType>.filled(count, DynamicTypeImpl.instance));
+    return type;
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/summary/flat_buffers.dart b/pkg/analyzer/lib/src/summary/flat_buffers.dart
index ba2c2ef..0464127 100644
--- a/pkg/analyzer/lib/src/summary/flat_buffers.dart
+++ b/pkg/analyzer/lib/src/summary/flat_buffers.dart
@@ -736,16 +736,16 @@
  * List of booleans backed by 8-bit unsigned integers.
  */
 class _FbBoolList extends Object with ListMixin<bool> implements List<bool> {
-  final List<int> uint8List;
+  final BufferPointer bp;
   int _length;
 
-  _FbBoolList(BufferPointer bp)
-      : uint8List = new _FbGenericList<int>(const Uint8Reader(), bp);
+  _FbBoolList(this.bp);
 
   @override
   int get length {
     if (_length == null) {
-      _length = (uint8List.length - 1) * 8 - uint8List.last;
+      int byteLength = bp._getUint32();
+      _length = (byteLength - 1) * 8 - _getByte(byteLength - 1);
     }
     return _length;
   }
@@ -758,32 +758,25 @@
   bool operator [](int i) {
     int index = i ~/ 8;
     int mask = 1 << i % 8;
-    return uint8List[index] & mask != 0;
+    return _getByte(index) & mask != 0;
   }
 
   @override
   void operator []=(int i, bool e) =>
       throw new StateError('Attempt to modify immutable list');
+
+  int _getByte(int index) => bp._getUint8(4 + index);
 }
 
 /**
  * The list backed by 64-bit values - Uint64 length and Float64.
  */
 class _FbFloat64List extends _FbList<double> {
-  List<double> _items;
-
   _FbFloat64List(BufferPointer bp) : super(bp);
 
   @override
   double operator [](int i) {
-    _items ??= new List<double>(length);
-    double item = _items[i];
-    if (item == null) {
-      BufferPointer ref = bp._advance(8 + 8 * i);
-      item = ref._getFloat64();
-      _items[i] = item;
-    }
-    return item;
+    return bp._getFloat64(8 + 8 * i);
   }
 }
 
@@ -838,19 +831,11 @@
  * List backed by 32-bit unsigned integers.
  */
 class _FbUint32List extends _FbList<int> {
-  List<int> _items;
-
   _FbUint32List(BufferPointer bp) : super(bp);
 
   @override
   int operator [](int i) {
-    _items ??= new List<int>(length);
-    int item = _items[i];
-    if (item == null) {
-      item = bp._getUint32(4 + 4 * i);
-      _items[i] = item;
-    }
-    return item;
+    return bp._getUint32(4 + 4 * i);
   }
 }
 
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index e5c4630..7228a00 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -33,7 +33,7 @@
   @override
   idl.IndexRelationKind read(fb.BufferPointer bp) {
     int index = const fb.Uint8Reader().read(bp);
-    return index < idl.IndexRelationKind.values.length ? idl.IndexRelationKind.values[index] : idl.IndexRelationKind.IS_EXTENDED_BY;
+    return index < idl.IndexRelationKind.values.length ? idl.IndexRelationKind.values[index] : idl.IndexRelationKind.IS_ANCESTOR_OF;
   }
 }
 
@@ -115,6 +115,101 @@
   }
 }
 
+class CodeRangeBuilder extends Object with _CodeRangeMixin implements idl.CodeRange {
+  bool _finished = false;
+
+  int _length;
+  int _offset;
+
+  @override
+  int get length => _length ??= 0;
+
+  /**
+   * Length of the element code.
+   */
+  void set length(int _value) {
+    assert(!_finished);
+    assert(_value == null || _value >= 0);
+    _length = _value;
+  }
+
+  @override
+  int get offset => _offset ??= 0;
+
+  /**
+   * Offset of the element code relative to the beginning of the file.
+   */
+  void set offset(int _value) {
+    assert(!_finished);
+    assert(_value == null || _value >= 0);
+    _offset = _value;
+  }
+
+  CodeRangeBuilder({int length, int offset})
+    : _length = length,
+      _offset = offset;
+
+  fb.Offset finish(fb.Builder fbBuilder) {
+    assert(!_finished);
+    _finished = true;
+    fbBuilder.startTable();
+    if (_length != null && _length != 0) {
+      fbBuilder.addUint32(1, _length);
+    }
+    if (_offset != null && _offset != 0) {
+      fbBuilder.addUint32(0, _offset);
+    }
+    return fbBuilder.endTable();
+  }
+}
+
+class _CodeRangeReader extends fb.TableReader<_CodeRangeImpl> {
+  const _CodeRangeReader();
+
+  @override
+  _CodeRangeImpl createObject(fb.BufferPointer bp) => new _CodeRangeImpl(bp);
+}
+
+class _CodeRangeImpl extends Object with _CodeRangeMixin implements idl.CodeRange {
+  final fb.BufferPointer _bp;
+
+  _CodeRangeImpl(this._bp);
+
+  int _length;
+  int _offset;
+
+  @override
+  int get length {
+    _length ??= const fb.Uint32Reader().vTableGet(_bp, 1, 0);
+    return _length;
+  }
+
+  @override
+  int get offset {
+    _offset ??= const fb.Uint32Reader().vTableGet(_bp, 0, 0);
+    return _offset;
+  }
+}
+
+abstract class _CodeRangeMixin implements idl.CodeRange {
+  @override
+  Map<String, Object> toJson() {
+    Map<String, Object> _result = <String, Object>{};
+    if (length != 0) _result["length"] = length;
+    if (offset != 0) _result["offset"] = offset;
+    return _result;
+  }
+
+  @override
+  Map<String, Object> toMap() => {
+    "length": length,
+    "offset": offset,
+  };
+
+  @override
+  String toString() => convert.JSON.encode(toJson());
+}
+
 class EntityRefBuilder extends Object with _EntityRefMixin implements idl.EntityRef {
   bool _finished = false;
 
@@ -1137,10 +1232,24 @@
 class LinkedUnitBuilder extends Object with _LinkedUnitMixin implements idl.LinkedUnit {
   bool _finished = false;
 
+  List<int> _constCycles;
   List<LinkedReferenceBuilder> _references;
   List<EntityRefBuilder> _types;
 
   @override
+  List<int> get constCycles => _constCycles ??= <int>[];
+
+  /**
+   * List of slot ids (referring to [UnlinkedExecutable.constCycleSlot])
+   * corresponding to const constructors that are part of cycles.
+   */
+  void set constCycles(List<int> _value) {
+    assert(!_finished);
+    assert(_value == null || _value.every((e) => e >= 0));
+    _constCycles = _value;
+  }
+
+  @override
   List<LinkedReferenceBuilder> get references => _references ??= <LinkedReferenceBuilder>[];
 
   /**
@@ -1168,15 +1277,20 @@
     _types = _value;
   }
 
-  LinkedUnitBuilder({List<LinkedReferenceBuilder> references, List<EntityRefBuilder> types})
-    : _references = references,
+  LinkedUnitBuilder({List<int> constCycles, List<LinkedReferenceBuilder> references, List<EntityRefBuilder> types})
+    : _constCycles = constCycles,
+      _references = references,
       _types = types;
 
   fb.Offset finish(fb.Builder fbBuilder) {
     assert(!_finished);
     _finished = true;
+    fb.Offset offset_constCycles;
     fb.Offset offset_references;
     fb.Offset offset_types;
+    if (!(_constCycles == null || _constCycles.isEmpty)) {
+      offset_constCycles = fbBuilder.writeListUint32(_constCycles);
+    }
     if (!(_references == null || _references.isEmpty)) {
       offset_references = fbBuilder.writeList(_references.map((b) => b.finish(fbBuilder)).toList());
     }
@@ -1184,6 +1298,9 @@
       offset_types = fbBuilder.writeList(_types.map((b) => b.finish(fbBuilder)).toList());
     }
     fbBuilder.startTable();
+    if (offset_constCycles != null) {
+      fbBuilder.addOffset(2, offset_constCycles);
+    }
     if (offset_references != null) {
       fbBuilder.addOffset(0, offset_references);
     }
@@ -1206,10 +1323,17 @@
 
   _LinkedUnitImpl(this._bp);
 
+  List<int> _constCycles;
   List<idl.LinkedReference> _references;
   List<idl.EntityRef> _types;
 
   @override
+  List<int> get constCycles {
+    _constCycles ??= const fb.Uint32ListReader().vTableGet(_bp, 2, const <int>[]);
+    return _constCycles;
+  }
+
+  @override
   List<idl.LinkedReference> get references {
     _references ??= const fb.ListReader<idl.LinkedReference>(const _LinkedReferenceReader()).vTableGet(_bp, 0, const <idl.LinkedReference>[]);
     return _references;
@@ -1226,6 +1350,7 @@
   @override
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
+    if (constCycles.isNotEmpty) _result["constCycles"] = constCycles;
     if (references.isNotEmpty) _result["references"] = references.map((_value) => _value.toJson()).toList();
     if (types.isNotEmpty) _result["types"] = types.map((_value) => _value.toJson()).toList();
     return _result;
@@ -1233,6 +1358,7 @@
 
   @override
   Map<String, Object> toMap() => {
+    "constCycles": constCycles,
     "references": references,
     "types": types,
   };
@@ -1551,7 +1677,9 @@
   List<String> get strings => _strings ??= <String>[];
 
   /**
-   * List of unique element strings used in this [PackageIndex].
+   * List of unique element strings used in this [PackageIndex].  The list is
+   * sorted in ascending order, so that the client can quickly check the
+   * presence of a string in this [PackageIndex].
    */
   void set strings(List<String> _value) {
     assert(!_finished);
@@ -2176,6 +2304,7 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   UnlinkedDocumentationCommentBuilder _documentationComment;
   List<UnlinkedExecutableBuilder> _executables;
   List<UnlinkedVariableBuilder> _fields;
@@ -2201,6 +2330,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the class.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   UnlinkedDocumentationCommentBuilder get documentationComment => _documentationComment;
 
   /**
@@ -2337,8 +2477,9 @@
     _typeParameters = _value;
   }
 
-  UnlinkedClassBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedDocumentationCommentBuilder documentationComment, List<UnlinkedExecutableBuilder> executables, List<UnlinkedVariableBuilder> fields, bool hasNoSupertype, List<EntityRefBuilder> interfaces, bool isAbstract, bool isMixinApplication, List<EntityRefBuilder> mixins, String name, int nameOffset, EntityRefBuilder supertype, List<UnlinkedTypeParamBuilder> typeParameters})
+  UnlinkedClassBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedDocumentationCommentBuilder documentationComment, List<UnlinkedExecutableBuilder> executables, List<UnlinkedVariableBuilder> fields, bool hasNoSupertype, List<EntityRefBuilder> interfaces, bool isAbstract, bool isMixinApplication, List<EntityRefBuilder> mixins, String name, int nameOffset, EntityRefBuilder supertype, List<UnlinkedTypeParamBuilder> typeParameters})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _documentationComment = documentationComment,
       _executables = executables,
       _fields = fields,
@@ -2356,6 +2497,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_documentationComment;
     fb.Offset offset_executables;
     fb.Offset offset_fields;
@@ -2367,6 +2509,9 @@
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_documentationComment != null) {
       offset_documentationComment = _documentationComment.finish(fbBuilder);
     }
@@ -2395,6 +2540,9 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(5, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(13, offset_codeRange);
+    }
     if (offset_documentationComment != null) {
       fbBuilder.addOffset(6, offset_documentationComment);
     }
@@ -2448,6 +2596,7 @@
   _UnlinkedClassImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   idl.UnlinkedDocumentationComment _documentationComment;
   List<idl.UnlinkedExecutable> _executables;
   List<idl.UnlinkedVariable> _fields;
@@ -2468,6 +2617,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 13, null);
+    return _codeRange;
+  }
+
+  @override
   idl.UnlinkedDocumentationComment get documentationComment {
     _documentationComment ??= const _UnlinkedDocumentationCommentReader().vTableGet(_bp, 6, null);
     return _documentationComment;
@@ -2545,6 +2700,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson();
     if (executables.isNotEmpty) _result["executables"] = executables.map((_value) => _value.toJson()).toList();
     if (fields.isNotEmpty) _result["fields"] = fields.map((_value) => _value.toJson()).toList();
@@ -2563,6 +2719,7 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "documentationComment": documentationComment,
     "executables": executables,
     "fields": fields,
@@ -3250,6 +3407,7 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   UnlinkedDocumentationCommentBuilder _documentationComment;
   String _name;
   int _nameOffset;
@@ -3267,6 +3425,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the enum.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   UnlinkedDocumentationCommentBuilder get documentationComment => _documentationComment;
 
   /**
@@ -3312,8 +3481,9 @@
     _values = _value;
   }
 
-  UnlinkedEnumBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedDocumentationCommentBuilder documentationComment, String name, int nameOffset, List<UnlinkedEnumValueBuilder> values})
+  UnlinkedEnumBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedDocumentationCommentBuilder documentationComment, String name, int nameOffset, List<UnlinkedEnumValueBuilder> values})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _documentationComment = documentationComment,
       _name = name,
       _nameOffset = nameOffset,
@@ -3323,12 +3493,16 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_documentationComment;
     fb.Offset offset_name;
     fb.Offset offset_values;
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_documentationComment != null) {
       offset_documentationComment = _documentationComment.finish(fbBuilder);
     }
@@ -3342,6 +3516,9 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(4, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(5, offset_codeRange);
+    }
     if (offset_documentationComment != null) {
       fbBuilder.addOffset(3, offset_documentationComment);
     }
@@ -3371,6 +3548,7 @@
   _UnlinkedEnumImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   idl.UnlinkedDocumentationComment _documentationComment;
   String _name;
   int _nameOffset;
@@ -3383,6 +3561,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 5, null);
+    return _codeRange;
+  }
+
+  @override
   idl.UnlinkedDocumentationComment get documentationComment {
     _documentationComment ??= const _UnlinkedDocumentationCommentReader().vTableGet(_bp, 3, null);
     return _documentationComment;
@@ -3412,6 +3596,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson();
     if (name != '') _result["name"] = name;
     if (nameOffset != 0) _result["nameOffset"] = nameOffset;
@@ -3422,6 +3607,7 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "documentationComment": documentationComment,
     "name": name,
     "nameOffset": nameOffset,
@@ -3564,7 +3750,9 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   List<UnlinkedConstructorInitializerBuilder> _constantInitializers;
+  int _constCycleSlot;
   UnlinkedDocumentationCommentBuilder _documentationComment;
   int _inferredReturnTypeSlot;
   bool _isAbstract;
@@ -3601,6 +3789,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the executable.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   List<UnlinkedConstructorInitializerBuilder> get constantInitializers => _constantInitializers ??= <UnlinkedConstructorInitializerBuilder>[];
 
   /**
@@ -3613,6 +3812,23 @@
   }
 
   @override
+  int get constCycleSlot => _constCycleSlot ??= 0;
+
+  /**
+   * If [kind] is [UnlinkedExecutableKind.constructor] and [isConst] is `true`,
+   * a nonzero slot id which is unique within this compilation unit.  If this id
+   * is found in [LinkedUnit.constCycles], then this constructor is part of a
+   * cycle.
+   *
+   * Otherwise, zero.
+   */
+  void set constCycleSlot(int _value) {
+    assert(!_finished);
+    assert(_value == null || _value >= 0);
+    _constCycleSlot = _value;
+  }
+
+  @override
   UnlinkedDocumentationCommentBuilder get documentationComment => _documentationComment;
 
   /**
@@ -3898,9 +4114,11 @@
     _visibleOffset = _value;
   }
 
-  UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, List<UnlinkedConstructorInitializerBuilder> constantInitializers, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isConst, bool isExternal, bool isFactory, bool isRedirectedConstructor, bool isStatic, idl.UnlinkedExecutableKind kind, List<UnlinkedExecutableBuilder> localFunctions, List<UnlinkedLabelBuilder> localLabels, List<UnlinkedVariableBuilder> localVariables, String name, int nameEnd, int nameOffset, List<UnlinkedParamBuilder> parameters, int periodOffset, EntityRefBuilder redirectedConstructor, String redirectedConstructorName, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters, int visibleLength, int visibleOffset})
+  UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, List<UnlinkedConstructorInitializerBuilder> constantInitializers, int constCycleSlot, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isConst, bool isExternal, bool isFactory, bool isRedirectedConstructor, bool isStatic, idl.UnlinkedExecutableKind kind, List<UnlinkedExecutableBuilder> localFunctions, List<UnlinkedLabelBuilder> localLabels, List<UnlinkedVariableBuilder> localVariables, String name, int nameEnd, int nameOffset, List<UnlinkedParamBuilder> parameters, int periodOffset, EntityRefBuilder redirectedConstructor, String redirectedConstructorName, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters, int visibleLength, int visibleOffset})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _constantInitializers = constantInitializers,
+      _constCycleSlot = constCycleSlot,
       _documentationComment = documentationComment,
       _inferredReturnTypeSlot = inferredReturnTypeSlot,
       _isAbstract = isAbstract,
@@ -3929,6 +4147,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_constantInitializers;
     fb.Offset offset_documentationComment;
     fb.Offset offset_localFunctions;
@@ -3943,6 +4162,9 @@
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (!(_constantInitializers == null || _constantInitializers.isEmpty)) {
       offset_constantInitializers = fbBuilder.writeList(_constantInitializers.map((b) => b.finish(fbBuilder)).toList());
     }
@@ -3980,9 +4202,15 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(6, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(26, offset_codeRange);
+    }
     if (offset_constantInitializers != null) {
       fbBuilder.addOffset(14, offset_constantInitializers);
     }
+    if (_constCycleSlot != null && _constCycleSlot != 0) {
+      fbBuilder.addUint32(25, _constCycleSlot);
+    }
     if (offset_documentationComment != null) {
       fbBuilder.addOffset(7, offset_documentationComment);
     }
@@ -4069,7 +4297,9 @@
   _UnlinkedExecutableImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   List<idl.UnlinkedConstructorInitializer> _constantInitializers;
+  int _constCycleSlot;
   idl.UnlinkedDocumentationComment _documentationComment;
   int _inferredReturnTypeSlot;
   bool _isAbstract;
@@ -4101,12 +4331,24 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 26, null);
+    return _codeRange;
+  }
+
+  @override
   List<idl.UnlinkedConstructorInitializer> get constantInitializers {
     _constantInitializers ??= const fb.ListReader<idl.UnlinkedConstructorInitializer>(const _UnlinkedConstructorInitializerReader()).vTableGet(_bp, 14, const <idl.UnlinkedConstructorInitializer>[]);
     return _constantInitializers;
   }
 
   @override
+  int get constCycleSlot {
+    _constCycleSlot ??= const fb.Uint32Reader().vTableGet(_bp, 25, 0);
+    return _constCycleSlot;
+  }
+
+  @override
   idl.UnlinkedDocumentationComment get documentationComment {
     _documentationComment ??= const _UnlinkedDocumentationCommentReader().vTableGet(_bp, 7, null);
     return _documentationComment;
@@ -4250,7 +4492,9 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (constantInitializers.isNotEmpty) _result["constantInitializers"] = constantInitializers.map((_value) => _value.toJson()).toList();
+    if (constCycleSlot != 0) _result["constCycleSlot"] = constCycleSlot;
     if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson();
     if (inferredReturnTypeSlot != 0) _result["inferredReturnTypeSlot"] = inferredReturnTypeSlot;
     if (isAbstract != false) _result["isAbstract"] = isAbstract;
@@ -4280,7 +4524,9 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "constantInitializers": constantInitializers,
+    "constCycleSlot": constCycleSlot,
     "documentationComment": documentationComment,
     "inferredReturnTypeSlot": inferredReturnTypeSlot,
     "isAbstract": isAbstract,
@@ -5033,6 +5279,7 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   UnlinkedConstBuilder _defaultValue;
   String _defaultValueCode;
   int _inferredTypeSlot;
@@ -5059,6 +5306,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the parameter.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   UnlinkedConstBuilder get defaultValue => _defaultValue;
 
   /**
@@ -5220,8 +5478,9 @@
     _visibleOffset = _value;
   }
 
-  UnlinkedParamBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedConstBuilder defaultValue, String defaultValueCode, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isFunctionTyped, bool isInitializingFormal, idl.UnlinkedParamKind kind, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder type, int visibleLength, int visibleOffset})
+  UnlinkedParamBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedConstBuilder defaultValue, String defaultValueCode, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isFunctionTyped, bool isInitializingFormal, idl.UnlinkedParamKind kind, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder type, int visibleLength, int visibleOffset})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _defaultValue = defaultValue,
       _defaultValueCode = defaultValueCode,
       _inferredTypeSlot = inferredTypeSlot,
@@ -5240,6 +5499,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_defaultValue;
     fb.Offset offset_defaultValueCode;
     fb.Offset offset_initializer;
@@ -5249,6 +5509,9 @@
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_defaultValue != null) {
       offset_defaultValue = _defaultValue.finish(fbBuilder);
     }
@@ -5271,6 +5534,9 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(9, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(14, offset_codeRange);
+    }
     if (offset_defaultValue != null) {
       fbBuilder.addOffset(7, offset_defaultValue);
     }
@@ -5327,6 +5593,7 @@
   _UnlinkedParamImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   idl.UnlinkedConst _defaultValue;
   String _defaultValueCode;
   int _inferredTypeSlot;
@@ -5348,6 +5615,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 14, null);
+    return _codeRange;
+  }
+
+  @override
   idl.UnlinkedConst get defaultValue {
     _defaultValue ??= const _UnlinkedConstReader().vTableGet(_bp, 7, null);
     return _defaultValue;
@@ -5431,6 +5704,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (defaultValue != null) _result["defaultValue"] = defaultValue.toJson();
     if (defaultValueCode != '') _result["defaultValueCode"] = defaultValueCode;
     if (inferredTypeSlot != 0) _result["inferredTypeSlot"] = inferredTypeSlot;
@@ -5450,6 +5724,7 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "defaultValue": defaultValue,
     "defaultValueCode": defaultValueCode,
     "inferredTypeSlot": inferredTypeSlot,
@@ -6005,6 +6280,7 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   UnlinkedDocumentationCommentBuilder _documentationComment;
   String _name;
   int _nameOffset;
@@ -6024,6 +6300,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the typedef.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   UnlinkedDocumentationCommentBuilder get documentationComment => _documentationComment;
 
   /**
@@ -6091,8 +6378,9 @@
     _typeParameters = _value;
   }
 
-  UnlinkedTypedefBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedDocumentationCommentBuilder documentationComment, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters})
+  UnlinkedTypedefBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedDocumentationCommentBuilder documentationComment, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _documentationComment = documentationComment,
       _name = name,
       _nameOffset = nameOffset,
@@ -6104,6 +6392,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_documentationComment;
     fb.Offset offset_name;
     fb.Offset offset_parameters;
@@ -6112,6 +6401,9 @@
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_documentationComment != null) {
       offset_documentationComment = _documentationComment.finish(fbBuilder);
     }
@@ -6131,6 +6423,9 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(4, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(7, offset_codeRange);
+    }
     if (offset_documentationComment != null) {
       fbBuilder.addOffset(6, offset_documentationComment);
     }
@@ -6166,6 +6461,7 @@
   _UnlinkedTypedefImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   idl.UnlinkedDocumentationComment _documentationComment;
   String _name;
   int _nameOffset;
@@ -6180,6 +6476,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 7, null);
+    return _codeRange;
+  }
+
+  @override
   idl.UnlinkedDocumentationComment get documentationComment {
     _documentationComment ??= const _UnlinkedDocumentationCommentReader().vTableGet(_bp, 6, null);
     return _documentationComment;
@@ -6221,6 +6523,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson();
     if (name != '') _result["name"] = name;
     if (nameOffset != 0) _result["nameOffset"] = nameOffset;
@@ -6233,6 +6536,7 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "documentationComment": documentationComment,
     "name": name,
     "nameOffset": nameOffset,
@@ -6250,6 +6554,7 @@
 
   List<UnlinkedConstBuilder> _annotations;
   EntityRefBuilder _bound;
+  CodeRangeBuilder _codeRange;
   String _name;
   int _nameOffset;
 
@@ -6277,6 +6582,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the type parameter.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   String get name => _name ??= '';
 
   /**
@@ -6299,9 +6615,10 @@
     _nameOffset = _value;
   }
 
-  UnlinkedTypeParamBuilder({List<UnlinkedConstBuilder> annotations, EntityRefBuilder bound, String name, int nameOffset})
+  UnlinkedTypeParamBuilder({List<UnlinkedConstBuilder> annotations, EntityRefBuilder bound, CodeRangeBuilder codeRange, String name, int nameOffset})
     : _annotations = annotations,
       _bound = bound,
+      _codeRange = codeRange,
       _name = name,
       _nameOffset = nameOffset;
 
@@ -6310,6 +6627,7 @@
     _finished = true;
     fb.Offset offset_annotations;
     fb.Offset offset_bound;
+    fb.Offset offset_codeRange;
     fb.Offset offset_name;
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
@@ -6317,6 +6635,9 @@
     if (_bound != null) {
       offset_bound = _bound.finish(fbBuilder);
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_name != null) {
       offset_name = fbBuilder.writeString(_name);
     }
@@ -6327,6 +6648,9 @@
     if (offset_bound != null) {
       fbBuilder.addOffset(2, offset_bound);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(4, offset_codeRange);
+    }
     if (offset_name != null) {
       fbBuilder.addOffset(0, offset_name);
     }
@@ -6351,6 +6675,7 @@
 
   List<idl.UnlinkedConst> _annotations;
   idl.EntityRef _bound;
+  idl.CodeRange _codeRange;
   String _name;
   int _nameOffset;
 
@@ -6367,6 +6692,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 4, null);
+    return _codeRange;
+  }
+
+  @override
   String get name {
     _name ??= const fb.StringReader().vTableGet(_bp, 0, '');
     return _name;
@@ -6385,6 +6716,7 @@
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
     if (bound != null) _result["bound"] = bound.toJson();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (name != '') _result["name"] = name;
     if (nameOffset != 0) _result["nameOffset"] = nameOffset;
     return _result;
@@ -6394,6 +6726,7 @@
   Map<String, Object> toMap() => {
     "annotations": annotations,
     "bound": bound,
+    "codeRange": codeRange,
     "name": name,
     "nameOffset": nameOffset,
   };
@@ -6406,6 +6739,7 @@
   bool _finished = false;
 
   List<UnlinkedClassBuilder> _classes;
+  CodeRangeBuilder _codeRange;
   List<UnlinkedEnumBuilder> _enums;
   List<UnlinkedExecutableBuilder> _executables;
   List<UnlinkedExportNonPublicBuilder> _exports;
@@ -6433,6 +6767,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the unit.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   List<UnlinkedEnumBuilder> get enums => _enums ??= <UnlinkedEnumBuilder>[];
 
   /**
@@ -6597,8 +6942,9 @@
     _variables = _value;
   }
 
-  UnlinkedUnitBuilder({List<UnlinkedClassBuilder> classes, List<UnlinkedEnumBuilder> enums, List<UnlinkedExecutableBuilder> executables, List<UnlinkedExportNonPublicBuilder> exports, List<UnlinkedImportBuilder> imports, List<UnlinkedConstBuilder> libraryAnnotations, UnlinkedDocumentationCommentBuilder libraryDocumentationComment, String libraryName, int libraryNameLength, int libraryNameOffset, List<UnlinkedPartBuilder> parts, UnlinkedPublicNamespaceBuilder publicNamespace, List<UnlinkedReferenceBuilder> references, List<UnlinkedTypedefBuilder> typedefs, List<UnlinkedVariableBuilder> variables})
+  UnlinkedUnitBuilder({List<UnlinkedClassBuilder> classes, CodeRangeBuilder codeRange, List<UnlinkedEnumBuilder> enums, List<UnlinkedExecutableBuilder> executables, List<UnlinkedExportNonPublicBuilder> exports, List<UnlinkedImportBuilder> imports, List<UnlinkedConstBuilder> libraryAnnotations, UnlinkedDocumentationCommentBuilder libraryDocumentationComment, String libraryName, int libraryNameLength, int libraryNameOffset, List<UnlinkedPartBuilder> parts, UnlinkedPublicNamespaceBuilder publicNamespace, List<UnlinkedReferenceBuilder> references, List<UnlinkedTypedefBuilder> typedefs, List<UnlinkedVariableBuilder> variables})
     : _classes = classes,
+      _codeRange = codeRange,
       _enums = enums,
       _executables = executables,
       _exports = exports,
@@ -6623,6 +6969,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_classes;
+    fb.Offset offset_codeRange;
     fb.Offset offset_enums;
     fb.Offset offset_executables;
     fb.Offset offset_exports;
@@ -6638,6 +6985,9 @@
     if (!(_classes == null || _classes.isEmpty)) {
       offset_classes = fbBuilder.writeList(_classes.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (!(_enums == null || _enums.isEmpty)) {
       offset_enums = fbBuilder.writeList(_enums.map((b) => b.finish(fbBuilder)).toList());
     }
@@ -6678,6 +7028,9 @@
     if (offset_classes != null) {
       fbBuilder.addOffset(2, offset_classes);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(15, offset_codeRange);
+    }
     if (offset_enums != null) {
       fbBuilder.addOffset(12, offset_enums);
     }
@@ -6742,6 +7095,7 @@
   _UnlinkedUnitImpl(this._bp);
 
   List<idl.UnlinkedClass> _classes;
+  idl.CodeRange _codeRange;
   List<idl.UnlinkedEnum> _enums;
   List<idl.UnlinkedExecutable> _executables;
   List<idl.UnlinkedExportNonPublic> _exports;
@@ -6764,6 +7118,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 15, null);
+    return _codeRange;
+  }
+
+  @override
   List<idl.UnlinkedEnum> get enums {
     _enums ??= const fb.ListReader<idl.UnlinkedEnum>(const _UnlinkedEnumReader()).vTableGet(_bp, 12, const <idl.UnlinkedEnum>[]);
     return _enums;
@@ -6853,6 +7213,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (classes.isNotEmpty) _result["classes"] = classes.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (enums.isNotEmpty) _result["enums"] = enums.map((_value) => _value.toJson()).toList();
     if (executables.isNotEmpty) _result["executables"] = executables.map((_value) => _value.toJson()).toList();
     if (exports.isNotEmpty) _result["exports"] = exports.map((_value) => _value.toJson()).toList();
@@ -6873,6 +7234,7 @@
   @override
   Map<String, Object> toMap() => {
     "classes": classes,
+    "codeRange": codeRange,
     "enums": enums,
     "executables": executables,
     "exports": exports,
@@ -6897,6 +7259,7 @@
   bool _finished = false;
 
   List<UnlinkedConstBuilder> _annotations;
+  CodeRangeBuilder _codeRange;
   UnlinkedConstBuilder _constExpr;
   UnlinkedDocumentationCommentBuilder _documentationComment;
   int _inferredTypeSlot;
@@ -6923,6 +7286,17 @@
   }
 
   @override
+  CodeRangeBuilder get codeRange => _codeRange;
+
+  /**
+   * Code range of the variable.
+   */
+  void set codeRange(CodeRangeBuilder _value) {
+    assert(!_finished);
+    _codeRange = _value;
+  }
+
+  @override
   UnlinkedConstBuilder get constExpr => _constExpr;
 
   /**
@@ -7086,8 +7460,9 @@
     _visibleOffset = _value;
   }
 
-  UnlinkedVariableBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedConstBuilder constExpr, UnlinkedDocumentationCommentBuilder documentationComment, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isConst, bool isFinal, bool isStatic, String name, int nameOffset, int propagatedTypeSlot, EntityRefBuilder type, int visibleLength, int visibleOffset})
+  UnlinkedVariableBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedConstBuilder constExpr, UnlinkedDocumentationCommentBuilder documentationComment, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isConst, bool isFinal, bool isStatic, String name, int nameOffset, int propagatedTypeSlot, EntityRefBuilder type, int visibleLength, int visibleOffset})
     : _annotations = annotations,
+      _codeRange = codeRange,
       _constExpr = constExpr,
       _documentationComment = documentationComment,
       _inferredTypeSlot = inferredTypeSlot,
@@ -7106,6 +7481,7 @@
     assert(!_finished);
     _finished = true;
     fb.Offset offset_annotations;
+    fb.Offset offset_codeRange;
     fb.Offset offset_constExpr;
     fb.Offset offset_documentationComment;
     fb.Offset offset_initializer;
@@ -7114,6 +7490,9 @@
     if (!(_annotations == null || _annotations.isEmpty)) {
       offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList());
     }
+    if (_codeRange != null) {
+      offset_codeRange = _codeRange.finish(fbBuilder);
+    }
     if (_constExpr != null) {
       offset_constExpr = _constExpr.finish(fbBuilder);
     }
@@ -7133,6 +7512,9 @@
     if (offset_annotations != null) {
       fbBuilder.addOffset(8, offset_annotations);
     }
+    if (offset_codeRange != null) {
+      fbBuilder.addOffset(14, offset_codeRange);
+    }
     if (offset_constExpr != null) {
       fbBuilder.addOffset(5, offset_constExpr);
     }
@@ -7189,6 +7571,7 @@
   _UnlinkedVariableImpl(this._bp);
 
   List<idl.UnlinkedConst> _annotations;
+  idl.CodeRange _codeRange;
   idl.UnlinkedConst _constExpr;
   idl.UnlinkedDocumentationComment _documentationComment;
   int _inferredTypeSlot;
@@ -7210,6 +7593,12 @@
   }
 
   @override
+  idl.CodeRange get codeRange {
+    _codeRange ??= const _CodeRangeReader().vTableGet(_bp, 14, null);
+    return _codeRange;
+  }
+
+  @override
   idl.UnlinkedConst get constExpr {
     _constExpr ??= const _UnlinkedConstReader().vTableGet(_bp, 5, null);
     return _constExpr;
@@ -7293,6 +7682,7 @@
   Map<String, Object> toJson() {
     Map<String, Object> _result = <String, Object>{};
     if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList();
+    if (codeRange != null) _result["codeRange"] = codeRange.toJson();
     if (constExpr != null) _result["constExpr"] = constExpr.toJson();
     if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson();
     if (inferredTypeSlot != 0) _result["inferredTypeSlot"] = inferredTypeSlot;
@@ -7312,6 +7702,7 @@
   @override
   Map<String, Object> toMap() => {
     "annotations": annotations,
+    "codeRange": codeRange,
     "constExpr": constExpr,
     "documentationComment": documentationComment,
     "inferredTypeSlot": inferredTypeSlot,
diff --git a/pkg/analyzer/lib/src/summary/format.fbs b/pkg/analyzer/lib/src/summary/format.fbs
index 63828ff..7114161 100644
--- a/pkg/analyzer/lib/src/summary/format.fbs
+++ b/pkg/analyzer/lib/src/summary/format.fbs
@@ -27,6 +27,13 @@
 enum IndexRelationKind : byte {
   /**
    * Left: class.
+   *   Is ancestor of (is extended or implemented, directly or indirectly).
+   * Right: other class declaration.
+   */
+  IS_ANCESTOR_OF,
+
+  /**
+   * Left: class.
    *   Is extended by.
    * Right: other class declaration.
    */
@@ -512,6 +519,21 @@
 }
 
 /**
+ * Information about an element code range.
+ */
+table CodeRange {
+  /**
+   * Length of the element code.
+   */
+  length:uint (id: 1);
+
+  /**
+   * Offset of the element code relative to the beginning of the file.
+   */
+  offset:uint (id: 0);
+}
+
+/**
  * Summary information about a reference to a an entity such as a type, top
  * level executable, or executable within a class.
  */
@@ -777,6 +799,12 @@
  */
 table LinkedUnit {
   /**
+   * List of slot ids (referring to [UnlinkedExecutable.constCycleSlot])
+   * corresponding to const constructors that are part of cycles.
+   */
+  constCycles:[uint] (id: 2);
+
+  /**
    * Information about the resolution of references within the compilation
    * unit.  Each element of [UnlinkedUnit.references] has a corresponding
    * element in this list (at the same index).  If this list has additional
@@ -863,7 +891,9 @@
   elementUnits:[uint] (id: 0);
 
   /**
-   * List of unique element strings used in this [PackageIndex].
+   * List of unique element strings used in this [PackageIndex].  The list is
+   * sorted in ascending order, so that the client can quickly check the
+   * presence of a string in this [PackageIndex].
    */
   strings:[string] (id: 6);
 
@@ -974,6 +1004,11 @@
   annotations:[UnlinkedConst] (id: 5);
 
   /**
+   * Code range of the class.
+   */
+  codeRange:CodeRange (id: 13);
+
+  /**
    * Documentation comment for the class, or `null` if there is no
    * documentation comment.
    */
@@ -1180,6 +1215,11 @@
   annotations:[UnlinkedConst] (id: 4);
 
   /**
+   * Code range of the enum.
+   */
+  codeRange:CodeRange (id: 5);
+
+  /**
    * Documentation comment for the enum, or `null` if there is no documentation
    * comment.
    */
@@ -1234,12 +1274,27 @@
   annotations:[UnlinkedConst] (id: 6);
 
   /**
+   * Code range of the executable.
+   */
+  codeRange:CodeRange (id: 26);
+
+  /**
    * If a constant [UnlinkedExecutableKind.constructor], the constructor
    * initializers.  Otherwise empty.
    */
   constantInitializers:[UnlinkedConstructorInitializer] (id: 14);
 
   /**
+   * If [kind] is [UnlinkedExecutableKind.constructor] and [isConst] is `true`,
+   * a nonzero slot id which is unique within this compilation unit.  If this id
+   * is found in [LinkedUnit.constCycles], then this constructor is part of a
+   * cycle.
+   *
+   * Otherwise, zero.
+   */
+  constCycleSlot:uint (id: 25);
+
+  /**
    * Documentation comment for the executable, or `null` if there is no
    * documentation comment.
    */
@@ -1524,6 +1579,11 @@
   annotations:[UnlinkedConst] (id: 9);
 
   /**
+   * Code range of the parameter.
+   */
+  codeRange:CodeRange (id: 14);
+
+  /**
    * If the parameter has a default value, the constant expression in the
    * default value.  Note that the presence of this expression does not mean
    * that it is a valid, check [UnlinkedConst.isInvalid].
@@ -1720,6 +1780,11 @@
   annotations:[UnlinkedConst] (id: 4);
 
   /**
+   * Code range of the typedef.
+   */
+  codeRange:CodeRange (id: 7);
+
+  /**
    * Documentation comment for the typedef, or `null` if there is no
    * documentation comment.
    */
@@ -1767,6 +1832,11 @@
   bound:EntityRef (id: 2);
 
   /**
+   * Code range of the type parameter.
+   */
+  codeRange:CodeRange (id: 4);
+
+  /**
    * Name of the type parameter.
    */
   name:string (id: 0);
@@ -1787,6 +1857,11 @@
   classes:[UnlinkedClass] (id: 2);
 
   /**
+   * Code range of the unit.
+   */
+  codeRange:CodeRange (id: 15);
+
+  /**
    * Enums declared in the compilation unit.
    */
   enums:[UnlinkedEnum] (id: 12);
@@ -1877,6 +1952,11 @@
   annotations:[UnlinkedConst] (id: 8);
 
   /**
+   * Code range of the variable.
+   */
+  codeRange:CodeRange (id: 14);
+
+  /**
    * If [isConst] is true, and the variable has an initializer, the constant
    * expression in the initializer.  Note that the presence of this expression
    * does not mean that it is a valid, check [UnlinkedConst.isInvalid].
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index 21473a2..0df5ab3 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -53,6 +53,23 @@
 const informative = null;
 
 /**
+ * Information about an element code range.
+ */
+abstract class CodeRange extends base.SummaryClass {
+  /**
+   * Length of the element code.
+   */
+  @Id(1)
+  int get length;
+
+  /**
+   * Offset of the element code relative to the beginning of the file.
+   */
+  @Id(0)
+  int get offset;
+}
+
+/**
  * Summary information about a reference to a an entity such as a type, top
  * level executable, or executable within a class.
  */
@@ -169,6 +186,13 @@
 enum IndexRelationKind {
   /**
    * Left: class.
+   *   Is ancestor of (is extended or implemented, directly or indirectly).
+   * Right: other class declaration.
+   */
+  IS_ANCESTOR_OF,
+
+  /**
+   * Left: class.
    *   Is extended by.
    * Right: other class declaration.
    */
@@ -429,6 +453,13 @@
  */
 abstract class LinkedUnit extends base.SummaryClass {
   /**
+   * List of slot ids (referring to [UnlinkedExecutable.constCycleSlot])
+   * corresponding to const constructors that are part of cycles.
+   */
+  @Id(2)
+  List<int> get constCycles;
+
+  /**
    * Information about the resolution of references within the compilation
    * unit.  Each element of [UnlinkedUnit.references] has a corresponding
    * element in this list (at the same index).  If this list has additional
@@ -535,7 +566,9 @@
   List<int> get elementUnits;
 
   /**
-   * List of unique element strings used in this [PackageIndex].
+   * List of unique element strings used in this [PackageIndex].  The list is
+   * sorted in ascending order, so that the client can quickly check the
+   * presence of a string in this [PackageIndex].
    */
   @Id(6)
   List<String> get strings;
@@ -731,6 +764,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the class.
+   */
+  @Id(13)
+  CodeRange get codeRange;
+
+  /**
    * Documentation comment for the class, or `null` if there is no
    * documentation comment.
    */
@@ -1281,6 +1320,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the enum.
+   */
+  @Id(5)
+  CodeRange get codeRange;
+
+  /**
    * Documentation comment for the enum, or `null` if there is no documentation
    * comment.
    */
@@ -1347,6 +1392,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the executable.
+   */
+  @Id(26)
+  CodeRange get codeRange;
+
+  /**
    * If a constant [UnlinkedExecutableKind.constructor], the constructor
    * initializers.  Otherwise empty.
    */
@@ -1354,6 +1405,17 @@
   List<UnlinkedConstructorInitializer> get constantInitializers;
 
   /**
+   * If [kind] is [UnlinkedExecutableKind.constructor] and [isConst] is `true`,
+   * a nonzero slot id which is unique within this compilation unit.  If this id
+   * is found in [LinkedUnit.constCycles], then this constructor is part of a
+   * cycle.
+   *
+   * Otherwise, zero.
+   */
+  @Id(25)
+  int get constCycleSlot;
+
+  /**
    * Documentation comment for the executable, or `null` if there is no
    * documentation comment.
    */
@@ -1719,6 +1781,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the parameter.
+   */
+  @Id(14)
+  CodeRange get codeRange;
+
+  /**
    * If the parameter has a default value, the constant expression in the
    * default value.  Note that the presence of this expression does not mean
    * that it is a valid, check [UnlinkedConst.isInvalid].
@@ -1969,6 +2037,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the typedef.
+   */
+  @Id(7)
+  CodeRange get codeRange;
+
+  /**
    * Documentation comment for the typedef, or `null` if there is no
    * documentation comment.
    */
@@ -2026,6 +2100,12 @@
   EntityRef get bound;
 
   /**
+   * Code range of the type parameter.
+   */
+  @Id(4)
+  CodeRange get codeRange;
+
+  /**
    * Name of the type parameter.
    */
   @Id(0)
@@ -2054,6 +2134,12 @@
   List<UnlinkedClass> get classes;
 
   /**
+   * Code range of the unit.
+   */
+  @Id(15)
+  CodeRange get codeRange;
+
+  /**
    * Enums declared in the compilation unit.
    */
   @Id(12)
@@ -2162,6 +2248,12 @@
   List<UnlinkedConst> get annotations;
 
   /**
+   * Code range of the variable.
+   */
+  @Id(14)
+  CodeRange get codeRange;
+
+  /**
    * If [isConst] is true, and the variable has an initializer, the constant
    * expression in the initializer.  Note that the presence of this expression
    * does not mean that it is a valid, check [UnlinkedConst.isInvalid].
diff --git a/pkg/analyzer/lib/src/summary/index_unit.dart b/pkg/analyzer/lib/src/summary/index_unit.dart
index db659c7..ca57e80 100644
--- a/pkg/analyzer/lib/src/summary/index_unit.dart
+++ b/pkg/analyzer/lib/src/summary/index_unit.dart
@@ -6,6 +6,7 @@
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:analyzer/src/summary/format.dart';
@@ -32,26 +33,20 @@
 
   /**
    * Each item of this list corresponds to the library URI of a unique
-   * [CompilationUnitElement].  It is an index into [_strings].
+   * [CompilationUnitElement].
    */
-  final List<int> _unitLibraryUris = <int>[];
+  final List<_StringInfo> _unitLibraryUris = <_StringInfo>[];
 
   /**
    * Each item of this list corresponds to the unit URI of a unique
-   * [CompilationUnitElement].  It is an index into [_strings].
+   * [CompilationUnitElement].
    */
-  final List<int> _unitUnitUris = <int>[];
+  final List<_StringInfo> _unitUnitUris = <_StringInfo>[];
 
   /**
-   * Map associating strings with their identifiers, which are indices
-   * into [_strings].
+   * Map associating strings with their [_StringInfo]s.
    */
-  final Map<String, int> _stringMap = <String, int>{};
-
-  /**
-   * List of unique strings used in this index.
-   */
-  final List<String> _strings = <String>[];
+  final Map<String, _StringInfo> _stringMap = <String, _StringInfo>{};
 
   /**
    * List of information about each unit indexed in this index.
@@ -63,6 +58,15 @@
    * [index].
    */
   PackageIndexBuilder assemble() {
+    // sort strings end set IDs
+    List<_StringInfo> stringInfoList = _stringMap.values.toList();
+    stringInfoList.sort((a, b) {
+      return a.value.compareTo(b.value);
+    });
+    for (int i = 0; i < stringInfoList.length; i++) {
+      stringInfoList[i].id = i;
+    }
+    // sort elements and set IDs
     List<_ElementInfo> elementInfoList = _elementMap.values.toList();
     elementInfoList.sort((a, b) {
       return a.offset - b.offset;
@@ -71,12 +75,12 @@
       elementInfoList[i].id = i;
     }
     return new PackageIndexBuilder(
-        unitLibraryUris: _unitLibraryUris,
-        unitUnitUris: _unitUnitUris,
+        unitLibraryUris: _unitLibraryUris.map((s) => s.id).toList(),
+        unitUnitUris: _unitUnitUris.map((s) => s.id).toList(),
         elementUnits: elementInfoList.map((e) => e.unitId).toList(),
         elementOffsets: elementInfoList.map((e) => e.offset).toList(),
         elementKinds: elementInfoList.map((e) => e.kind).toList(),
-        strings: _strings,
+        strings: stringInfoList.map((s) => s.value).toList(),
         units: _units.map((unit) => unit.assemble()).toList());
   }
 
@@ -111,14 +115,12 @@
   }
 
   /**
-   * Add information about [str] to [_strings] if necessary, and return the
-   * location in this array representing [str].
+   * Return the unique [_StringInfo] corresponding the [str].  The field
+   * [_StringInfo.id] is filled by [assemble] during final sorting.
    */
-  int _getStringId(String str) {
+  _StringInfo _getStringInfo(String str) {
     return _stringMap.putIfAbsent(str, () {
-      int id = _strings.length;
-      _strings.add(str);
-      return id;
+      return new _StringInfo(str);
     });
   }
 
@@ -131,18 +133,19 @@
     return _unitMap.putIfAbsent(unitElement, () {
       assert(_unitLibraryUris.length == _unitUnitUris.length);
       int id = _unitUnitUris.length;
-      _unitLibraryUris.add(_getUriId(unitElement.library.source.uri));
-      _unitUnitUris.add(_getUriId(unitElement.source.uri));
+      _unitLibraryUris.add(_getUriInfo(unitElement.library.source.uri));
+      _unitUnitUris.add(_getUriInfo(unitElement.source.uri));
       return id;
     });
   }
 
   /**
-   * Return the identifier corresponding to [uri].
+   * Return the unique [_StringInfo] corresponding [uri].  The field
+   * [_StringInfo.id] is filled by [assemble] during final sorting.
    */
-  int _getUriId(Uri uri) {
+  _StringInfo _getUriInfo(Uri uri) {
     String str = uri.toString();
-    return _getStringId(str);
+    return _getStringInfo(str);
   }
 
   /**
@@ -186,9 +189,10 @@
  */
 class _DefinedNameInfo {
   /**
-   * The identifier of the name returned [PackageIndexAssembler._getStringId].
+   * The information about the name returned from
+   * [PackageIndexAssembler._getStringInfo].
    */
-  final int nameId;
+  final _StringInfo nameInfo;
 
   /**
    * The coarse-grained kind of the defined name.
@@ -200,7 +204,7 @@
    */
   final int offset;
 
-  _DefinedNameInfo(this.nameId, this.kind, this.offset);
+  _DefinedNameInfo(this.nameInfo, this.kind, this.offset);
 }
 
 /**
@@ -232,6 +236,24 @@
 }
 
 /**
+ * Information about a string referenced in the index.
+ */
+class _StringInfo {
+  /**
+   * The value of the string.
+   */
+  final String value;
+
+  /**
+   * The unique id of the string.  It is set after indexing of the whole
+   * package is done and we are assembling the full package index.
+   */
+  int id;
+
+  _StringInfo(this.value);
+}
+
+/**
  * Information about a single relation.  Any [_ElementRelationInfo] is always
  * part of a [_UnitIndexAssembler], so [offset] and [length] should be
  * understood within the context of the compilation unit pointed to by the
@@ -272,6 +294,10 @@
     }
   }
 
+  void recordIsAncestorOf(Element descendant) {
+    _recordIsAncestorOf(descendant, descendant, false, <ClassElement>[]);
+  }
+
   /**
    * Record that the name [node] has a relation of the given [kind].
    */
@@ -344,11 +370,18 @@
     Identifier name = typeName?.name;
     if (name != null) {
       Element element = name.staticElement;
-      SimpleIdentifier relNode =
-          name is PrefixedIdentifier ? name.identifier : name;
-      recordRelation(element, kind, relNode, true);
+      bool isQualified;
+      SimpleIdentifier relNode;
+      if (name is PrefixedIdentifier) {
+        isQualified = true;
+        relNode = name.identifier;
+      } else {
+        isQualified = false;
+        relNode = name;
+      }
+      recordRelation(element, kind, relNode, isQualified);
       recordRelation(
-          element, IndexRelationKind.IS_REFERENCED_BY, relNode, true);
+          element, IndexRelationKind.IS_REFERENCED_BY, relNode, isQualified);
       typeName.typeArguments?.accept(this);
     }
   }
@@ -377,10 +410,17 @@
       recordRelationOffset(objectElement, IndexRelationKind.IS_EXTENDED_BY,
           node.name.offset, 0, true);
     }
+    recordIsAncestorOf(node.element);
     super.visitClassDeclaration(node);
   }
 
   @override
+  visitClassTypeAlias(ClassTypeAlias node) {
+    recordIsAncestorOf(node.element);
+    super.visitClassTypeAlias(node);
+  }
+
+  @override
   visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
     SimpleIdentifier fieldName = node.fieldName;
     if (fieldName != null) {
@@ -406,7 +446,7 @@
       recordRelationOffset(
           element, IndexRelationKind.IS_REFERENCED_BY, offset, 0, true);
     }
-    super.visitConstructorName(node);
+    node.type.accept(this);
   }
 
   @override
@@ -517,6 +557,10 @@
           element.field, IndexRelationKind.IS_REFERENCED_BY, node, true);
       return;
     }
+    // ignore a local reference to a parameter
+    if (element is ParameterElement && node.parent is! Label) {
+      return;
+    }
     // record specific relations
     recordRelation(
         element, IndexRelationKind.IS_REFERENCED_BY, node, isQualified);
@@ -586,6 +630,37 @@
     AstNode parent = node.parent;
     return parent is Combinator || parent is Label;
   }
+
+  void _recordIsAncestorOf(Element descendant, ClassElement ancestor,
+      bool includeThis, List<ClassElement> visitedElements) {
+    if (ancestor == null) {
+      return;
+    }
+    if (visitedElements.contains(ancestor)) {
+      return;
+    }
+    visitedElements.add(ancestor);
+    if (includeThis) {
+      int offset = descendant.nameOffset;
+      int length = descendant.nameLength;
+      assembler.addElementRelation(
+          ancestor, IndexRelationKind.IS_ANCESTOR_OF, offset, length, false);
+    }
+    {
+      InterfaceType superType = ancestor.supertype;
+      if (superType != null) {
+        _recordIsAncestorOf(
+            descendant, superType.element, true, visitedElements);
+      }
+    }
+    for (InterfaceType mixinType in ancestor.mixins) {
+      _recordIsAncestorOf(descendant, mixinType.element, true, visitedElements);
+    }
+    for (InterfaceType implementedType in ancestor.interfaces) {
+      _recordIsAncestorOf(
+          descendant, implementedType.element, true, visitedElements);
+    }
+  }
 }
 
 /**
@@ -595,13 +670,14 @@
  */
 class _NameRelationInfo {
   /**
-   * The identifier of the name returned [PackageIndexAssembler._getStringId].
+   * The information about the name returned from
+   * [PackageIndexAssembler._getStringInfo].
    */
-  final int nameId;
+  final _StringInfo nameInfo;
   final IndexRelationKind kind;
   final int offset;
 
-  _NameRelationInfo(this.nameId, this.kind, this.offset);
+  _NameRelationInfo(this.nameInfo, this.kind, this.offset);
 }
 
 /**
@@ -635,7 +711,7 @@
   }
 
   void addNameRelation(String name, IndexRelationKind kind, int offset) {
-    int nameId = pkg._getStringId(name);
+    _StringInfo nameId = pkg._getStringInfo(name);
     nameRelations.add(new _NameRelationInfo(nameId, kind, offset));
   }
 
@@ -645,17 +721,17 @@
    */
   UnitIndexBuilder assemble() {
     definedNames.sort((a, b) {
-      return a.nameId - b.nameId;
+      return a.nameInfo.id - b.nameInfo.id;
     });
     elementRelations.sort((a, b) {
       return a.elementInfo.id - b.elementInfo.id;
     });
     nameRelations.sort((a, b) {
-      return a.nameId - b.nameId;
+      return a.nameInfo.id - b.nameInfo.id;
     });
     return new UnitIndexBuilder(
         unit: unitId,
-        definedNames: definedNames.map((n) => n.nameId).toList(),
+        definedNames: definedNames.map((n) => n.nameInfo.id).toList(),
         definedNameKinds: definedNames.map((n) => n.kind).toList(),
         definedNameOffsets: definedNames.map((n) => n.offset).toList(),
         usedElements: elementRelations.map((r) => r.elementInfo.id).toList(),
@@ -664,13 +740,13 @@
         usedElementLengths: elementRelations.map((r) => r.length).toList(),
         usedElementIsQualifiedFlags:
             elementRelations.map((r) => r.isQualified).toList(),
-        usedNames: nameRelations.map((r) => r.nameId).toList(),
+        usedNames: nameRelations.map((r) => r.nameInfo.id).toList(),
         usedNameKinds: nameRelations.map((r) => r.kind).toList(),
         usedNameOffsets: nameRelations.map((r) => r.offset).toList());
   }
 
   void defineName(String name, IndexNameKind kind, int offset) {
-    int nameId = pkg._getStringId(name);
-    definedNames.add(new _DefinedNameInfo(nameId, kind, offset));
+    _StringInfo nameInfo = pkg._getStringInfo(name);
+    definedNames.add(new _DefinedNameInfo(nameInfo, kind, offset));
   }
 }
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index 214861a..8c9869f 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -845,6 +845,12 @@
   Map<int, EntityRef> linkedTypeMap;
 
   /**
+   * Set of slot ids corresponding to const constructors that are part of
+   * cycles.
+   */
+  Set<int> constCycles;
+
+  /**
    * The [CompilationUnitElementImpl] for the compilation unit currently being
    * resynthesized.
    */
@@ -1014,6 +1020,7 @@
     classElement.type = correspondingType;
     buildDocumentation(classElement, serializedClass.documentationComment);
     buildAnnotations(classElement, serializedClass.annotations);
+    buildCodeRange(classElement, serializedClass.codeRange);
     resolveConstructorInitializers(classElement);
     unitHolder.addType(classElement);
     currentTypeParameters.removeLast();
@@ -1022,6 +1029,12 @@
     constructors = null;
   }
 
+  void buildCodeRange(ElementImpl element, CodeRange codeRange) {
+    if (codeRange != null) {
+      element.setCodeRange(codeRange.offset, codeRange.length);
+    }
+  }
+
   /**
    * Resynthesize a [NamespaceCombinator].
    */
@@ -1076,6 +1089,8 @@
     assert(serializedExecutable.kind == UnlinkedExecutableKind.constructor);
     currentConstructor = new ConstructorElementImpl(
         serializedExecutable.name, serializedExecutable.nameOffset);
+    currentConstructor.isCycleFree = serializedExecutable.isConst &&
+        !constCycles.contains(serializedExecutable.constCycleSlot);
     if (serializedExecutable.name.isEmpty) {
       currentConstructor.nameEnd =
           serializedExecutable.nameOffset + classType.name.length;
@@ -1143,6 +1158,7 @@
     classElement.supertype = summaryResynthesizer.typeProvider.objectType;
     buildDocumentation(classElement, serializedEnum.documentationComment);
     buildAnnotations(classElement, serializedEnum.annotations);
+    buildCodeRange(classElement, serializedEnum.codeRange);
     ElementHolder memberHolder = new ElementHolder();
     // Build the 'index' field.
     FieldElementImpl indexField = new FieldElementImpl('index', -1);
@@ -1157,7 +1173,7 @@
     valuesField.const3 = true;
     valuesField.static = true;
     valuesField.type = summaryResynthesizer.typeProvider.listType
-        .substitute4(<DartType>[enumType]);
+        .instantiate(<DartType>[enumType]);
     memberHolder.addField(valuesField);
     buildImplicitAccessors(valuesField, memberHolder);
     // Build fields for all enum constants.
@@ -1298,6 +1314,7 @@
     buildDocumentation(
         executableElement, serializedExecutable.documentationComment);
     buildAnnotations(executableElement, serializedExecutable.annotations);
+    buildCodeRange(executableElement, serializedExecutable.codeRange);
     executableElement.functions =
         serializedExecutable.localFunctions.map(buildLocalFunction).toList();
     executableElement.labels =
@@ -1699,6 +1716,7 @@
     }
     parameterElement.synthetic = synthetic;
     buildAnnotations(parameterElement, serializedParameter.annotations);
+    buildCodeRange(parameterElement, serializedParameter.codeRange);
     if (serializedParameter.isFunctionTyped) {
       FunctionElementImpl parameterTypeElement =
           new FunctionElementImpl('', -1);
@@ -1832,6 +1850,7 @@
     buildDocumentation(
         functionTypeAliasElement, serializedTypedef.documentationComment);
     buildAnnotations(functionTypeAliasElement, serializedTypedef.annotations);
+    buildCodeRange(functionTypeAliasElement, serializedTypedef.codeRange);
     unitHolder.addTypeAlias(functionTypeAliasElement);
     currentTypeParameters.removeLast();
     assert(currentTypeParameters.isEmpty);
@@ -1852,6 +1871,7 @@
             serializedTypeParameter.name, serializedTypeParameter.nameOffset);
     typeParameterElement.type = new TypeParameterTypeImpl(typeParameterElement);
     buildAnnotations(typeParameterElement, serializedTypeParameter.annotations);
+    buildCodeRange(typeParameterElement, serializedTypeParameter.codeRange);
     return typeParameterElement;
   }
 
@@ -1925,6 +1945,7 @@
     buildVariableInitializer(element, serializedVariable.initializer);
     buildDocumentation(element, serializedVariable.documentationComment);
     buildAnnotations(element, serializedVariable.annotations);
+    buildCodeRange(element, serializedVariable.codeRange);
   }
 
   /**
@@ -1939,6 +1960,7 @@
     FunctionElementImpl initializerElement =
         buildLocalFunction(serializedInitializer);
     initializerElement.synthetic = true;
+    initializerElement.setCodeRange(null, null);
     variable.initializer = initializerElement;
   }
 
@@ -1961,6 +1983,7 @@
     linkedUnit = null;
     unlinkedUnit = null;
     linkedTypeMap = null;
+    constCycles = null;
     referenceInfos = null;
     currentCompilationUnit = null;
   }
@@ -2195,6 +2218,7 @@
     for (PropertyAccessorElementImpl accessor in unit.accessors) {
       elementMap[accessor.identifier] = accessor;
     }
+    buildCodeRange(unit, unlinkedUnit.codeRange);
     resynthesizedUnits[absoluteUri] = unit;
     resynthesizedElements[absoluteUri] = elementMap;
     assert(currentTypeParameters.isEmpty);
@@ -2211,6 +2235,7 @@
     for (EntityRef t in linkedUnit.types) {
       linkedTypeMap[t.slot] = t;
     }
+    constCycles = linkedUnit.constCycles.toSet();
     populateReferenceInfos();
     unitHolder = new ElementHolder();
   }
diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart
index cd9ff61..a527fba 100644
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart
@@ -93,9 +93,8 @@
     Expression target = access.target;
     if (target is Identifier) {
       EntityRefBuilder targetRef = serializeIdentifier(target);
-      return new EntityRefBuilder(
-          reference: visitor.serializeReference(
-              targetRef.reference, access.propertyName.name));
+      return new EntityRefBuilder(reference: visitor.serializeReference(
+          targetRef.reference, access.propertyName.name));
     } else {
       // TODO(scheglov) should we handle other targets in malformed constants?
       throw new StateError('Unexpected target type: ${target.runtimeType}');
@@ -296,9 +295,10 @@
   Block enclosingBlock = null;
 
   /**
-   * Create a slot id for storing a propagated or inferred type.
+   * Create a slot id for storing a propagated or inferred type or const cycle
+   * info.
    */
-  int assignTypeSlot() => ++numSlots;
+  int assignSlot() => ++numSlots;
 
   /**
    * Build a [_Scope] object containing the names defined within the body of a
@@ -348,6 +348,7 @@
    * and store the result in [classes].
    */
   void serializeClass(
+      AstNode node,
       Token abstractKeyword,
       String name,
       int nameOffset,
@@ -394,6 +395,7 @@
     b.isAbstract = abstractKeyword != null;
     b.documentationComment = serializeDocumentation(documentationComment);
     b.annotations = serializeAnnotations(annotations);
+    b.codeRange = serializeCodeRange(node);
     classes.add(b);
     scopes.removeLast();
     assert(scopes.length == oldScopesLength);
@@ -402,6 +404,13 @@
   }
 
   /**
+   * Create a [CodeRangeBuilder] for the given [node].
+   */
+  CodeRangeBuilder serializeCodeRange(AstNode node) {
+    return new CodeRangeBuilder(offset: node.offset, length: node.length);
+  }
+
+  /**
    * Serialize a [Combinator] into an [UnlinkedCombinator].
    */
   UnlinkedCombinatorBuilder serializeCombinator(Combinator combinator) {
@@ -437,6 +446,7 @@
     b.libraryNameLength = libraryNameLength;
     b.libraryDocumentationComment = libraryDocumentationComment;
     b.libraryAnnotations = libraryAnnotations;
+    b.codeRange = serializeCodeRange(compilationUnit);
     b.classes = classes;
     b.enums = enums;
     b.executables = executables;
@@ -484,6 +494,7 @@
    * [UnlinkedExecutable].
    */
   UnlinkedExecutableBuilder serializeExecutable(
+      AstNode node,
       String name,
       int nameOffset,
       bool isGetter,
@@ -529,15 +540,16 @@
         for (int i = 0; i < formalParameters.parameters.length; i++) {
           if (!b.parameters[i].isFunctionTyped &&
               b.parameters[i].type == null) {
-            b.parameters[i].inferredTypeSlot = assignTypeSlot();
+            b.parameters[i].inferredTypeSlot = assignSlot();
           }
         }
       }
     }
     b.documentationComment = serializeDocumentation(documentationComment);
     b.annotations = serializeAnnotations(annotations);
+    b.codeRange = serializeCodeRange(node);
     if (returnType == null && !isSemanticallyStatic) {
-      b.inferredReturnTypeSlot = assignTypeSlot();
+      b.inferredReturnTypeSlot = assignSlot();
     }
     b.visibleOffset = enclosingBlock?.offset;
     b.visibleLength = enclosingBlock?.length;
@@ -601,7 +613,7 @@
     UnlinkedExecutableBuilder initializer =
         new UnlinkedExecutableBuilder(nameOffset: expression.offset);
     serializeFunctionBody(initializer, expression);
-    initializer.inferredReturnTypeSlot = assignTypeSlot();
+    initializer.inferredReturnTypeSlot = assignSlot();
     return initializer;
   }
 
@@ -614,6 +626,7 @@
     b.name = node.identifier.name;
     b.nameOffset = node.identifier.offset;
     b.annotations = serializeAnnotations(node.metadata);
+    b.codeRange = serializeCodeRange(node);
     switch (node.kind) {
       case ParameterKind.REQUIRED:
         b.kind = UnlinkedParamKind.required;
@@ -771,6 +784,7 @@
       b.type = serializeTypeName(variables.type);
       b.documentationComment = serializeDocumentation(documentationComment);
       b.annotations = serializeAnnotations(annotations);
+      b.codeRange = serializeCodeRange(variables.parent);
       if (variable.isConst ||
           variable.isFinal && isField && !isDeclaredStatic) {
         Expression initializer = variable.initializer;
@@ -780,12 +794,12 @@
       }
       if (variable.initializer != null &&
           (variables.isFinal || variables.isConst)) {
-        b.propagatedTypeSlot = assignTypeSlot();
+        b.propagatedTypeSlot = assignSlot();
       }
       bool isSemanticallyStatic = !isField || isDeclaredStatic;
       if (variables.type == null &&
           (variable.initializer != null || !isSemanticallyStatic)) {
-        b.inferredTypeSlot = assignTypeSlot();
+        b.inferredTypeSlot = assignSlot();
       }
       b.visibleOffset = enclosingBlock?.offset;
       b.visibleLength = enclosingBlock?.length;
@@ -807,6 +821,7 @@
     TypeName superclass =
         node.extendsClause == null ? null : node.extendsClause.superclass;
     serializeClass(
+        node,
         node.abstractKeyword,
         node.name.name,
         node.name.offset,
@@ -823,6 +838,7 @@
   @override
   void visitClassTypeAlias(ClassTypeAlias node) {
     serializeClass(
+        node,
         node.abstractKeyword,
         node.name.name,
         node.name.offset,
@@ -867,7 +883,10 @@
         }
       }
     }
-    b.isConst = node.constKeyword != null;
+    if (node.constKeyword != null) {
+      b.isConst = true;
+      b.constCycleSlot = assignSlot();
+    }
     b.isExternal = node.externalKeyword != null;
     b.documentationComment = serializeDocumentation(node.documentationComment);
     b.annotations = serializeAnnotations(node.metadata);
@@ -911,6 +930,7 @@
         .toList();
     b.documentationComment = serializeDocumentation(node.documentationComment);
     b.annotations = serializeAnnotations(node.metadata);
+    b.codeRange = serializeCodeRange(node);
     enums.add(b);
   }
 
@@ -946,6 +966,7 @@
   @override
   void visitFunctionDeclaration(FunctionDeclaration node) {
     executables.add(serializeExecutable(
+        node,
         node.name.name,
         node.name.offset,
         node.isGetter,
@@ -965,6 +986,7 @@
   void visitFunctionExpression(FunctionExpression node) {
     if (node.parent is! FunctionDeclaration) {
       executables.add(serializeExecutable(
+          node,
           null,
           node.offset,
           false,
@@ -1000,6 +1022,7 @@
         .toList();
     b.documentationComment = serializeDocumentation(node.documentationComment);
     b.annotations = serializeAnnotations(node.metadata);
+    b.codeRange = serializeCodeRange(node);
     typedefs.add(b);
     scopes.removeLast();
     assert(scopes.length == oldScopesLength);
@@ -1059,6 +1082,7 @@
   @override
   void visitMethodDeclaration(MethodDeclaration node) {
     executables.add(serializeExecutable(
+        node,
         node.name.name,
         node.name.offset,
         node.isGetter,
@@ -1107,6 +1131,7 @@
       b.bound = serializeTypeName(node.bound);
     }
     b.annotations = serializeAnnotations(node.metadata);
+    b.codeRange = serializeCodeRange(node);
     return b;
   }
 
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index 3d9896b..212bb9d 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -246,6 +246,11 @@
   final List<_SerializeTypeRef> deferredLinkedTypes = <_SerializeTypeRef>[];
 
   /**
+   * List which should be stored in [LinkedUnit.constCycles].
+   */
+  final List<int> constCycles = <int>[];
+
+  /**
    * Index into the "references table" representing an unresolved reference, if
    * such an index exists.  `null` if no such entry has been made in the
    * references table yet.
@@ -364,6 +369,7 @@
       unlinkedUnit.publicNamespace =
           new UnlinkedPublicNamespaceBuilder(names: names);
     }
+    unlinkedUnit.codeRange = serializeCodeRange(compilationUnit);
     unlinkedUnit.classes = compilationUnit.types.map(serializeClass).toList();
     unlinkedUnit.enums = compilationUnit.enums.map(serializeEnum).toList();
     unlinkedUnit.typedefs =
@@ -394,13 +400,15 @@
 
   /**
    * Create the [LinkedUnit.types] table based on deferred types that were
-   * found during [addCompilationUnitElements].
+   * found during [addCompilationUnitElements].  Also populate
+   * [LinkedUnit.constCycles].
    */
-  void createLinkedTypes() {
+  void createLinkedInfo() {
     buildingLinkedReferences = true;
     linkedUnit.types = deferredLinkedTypes
         .map((_SerializeTypeRef closure) => closure())
         .toList();
+    linkedUnit.constCycles = constCycles;
     buildingLinkedReferences = false;
   }
 
@@ -530,6 +538,7 @@
     b.isMixinApplication = classElement.isMixinApplication;
     b.documentationComment = serializeDocumentation(classElement);
     b.annotations = serializeAnnotations(classElement);
+    b.codeRange = serializeCodeRange(classElement);
     return b;
   }
 
@@ -579,6 +588,13 @@
     return null;
   }
 
+  CodeRangeBuilder serializeCodeRange(Element element) {
+    if (element is ElementImpl && element.codeOffset != null) {
+      return new CodeRangeBuilder(offset: element.codeOffset, length: element.codeLength);
+    }
+    return null;
+  }
+
   /**
    * Serialize the given [combinator] into an [UnlinkedCombinator].
    */
@@ -641,6 +657,7 @@
     b.values = values;
     b.documentationComment = serializeDocumentation(enumElement);
     b.annotations = serializeAnnotations(enumElement);
+    b.codeRange = serializeCodeRange(enumElement);
     return b;
   }
 
@@ -706,17 +723,19 @@
           b.redirectedConstructorName = redirectedConstructor.name;
         }
       }
-      if (executableElement.isConst &&
-          executableElement.constantInitializers != null) {
-        Set<String> constructorParameterNames =
-            executableElement.parameters.map((p) => p.name).toSet();
-        b.constantInitializers = executableElement.constantInitializers
-            .map((ConstructorInitializer initializer) =>
-                serializeConstructorInitializer(
-                    initializer,
-                    (expr) =>
-                        serializeConstExpr(expr, constructorParameterNames)))
-            .toList();
+      if (executableElement.isConst) {
+        b.constCycleSlot = storeConstCycle(!executableElement.isCycleFree);
+        if (executableElement.constantInitializers != null) {
+          Set<String> constructorParameterNames =
+              executableElement.parameters.map((p) => p.name).toSet();
+          b.constantInitializers = executableElement.constantInitializers
+              .map((ConstructorInitializer initializer) =>
+                  serializeConstructorInitializer(
+                      initializer,
+                      (expr) =>
+                          serializeConstExpr(expr, constructorParameterNames)))
+              .toList();
+        }
       }
     } else {
       b.kind = UnlinkedExecutableKind.functionOrMethod;
@@ -727,6 +746,7 @@
     b.isExternal = executableElement.isExternal;
     b.documentationComment = serializeDocumentation(executableElement);
     b.annotations = serializeAnnotations(executableElement);
+    b.codeRange = serializeCodeRange(executableElement);
     if (executableElement is FunctionElement) {
       SourceRange visibleRange = executableElement.visibleRange;
       if (visibleRange != null) {
@@ -823,6 +843,7 @@
         break;
     }
     b.annotations = serializeAnnotations(parameter);
+    b.codeRange = serializeCodeRange(parameter);
     b.isInitializingFormal = parameter.isInitializingFormal;
     DartType type = parameter.type;
     if (parameter.hasImplicitType) {
@@ -912,6 +933,7 @@
     b.parameters = typedefElement.parameters.map(serializeParam).toList();
     b.documentationComment = serializeDocumentation(typedefElement);
     b.annotations = serializeAnnotations(typedefElement);
+    b.codeRange = serializeCodeRange(typedefElement);
     return b;
   }
 
@@ -927,6 +949,7 @@
       b.bound = serializeTypeRef(typeParameter.bound, typeParameter);
     }
     b.annotations = serializeAnnotations(typeParameter);
+    b.codeRange = serializeCodeRange(typeParameter);
     return b;
   }
 
@@ -1076,6 +1099,7 @@
         (variable.initializer != null || !variable.isStatic)) {
       b.inferredTypeSlot = storeInferredType(variable.type, variable);
     }
+    b.codeRange = serializeCodeRange(variable);
     if (variable is LocalVariableElement) {
       SourceRange visibleRange = variable.visibleRange;
       if (visibleRange != null) {
@@ -1091,6 +1115,18 @@
   }
 
   /**
+   * Create a new slot id and return it.  If [hasCycle] is `true`, arrange for
+   * the slot id to be included in [LinkedUnit.constCycles].
+   */
+  int storeConstCycle(bool hasCycle) {
+    int slot = ++numSlots;
+    if (hasCycle) {
+      constCycles.add(slot);
+    }
+    return slot;
+  }
+
+  /**
    * Create a slot id for the given [type] (which is an inferred type).  If
    * [type] is not `dynamic`, it is stored in [linkedTypes] so that once the
    * compilation unit has been fully visited, it will be serialized into
@@ -1522,7 +1558,7 @@
     pb.numPrelinkedDependencies = dependencies.length;
     for (_CompilationUnitSerializer compilationUnitSerializer
         in compilationUnitSerializers) {
-      compilationUnitSerializer.createLinkedTypes();
+      compilationUnitSerializer.createLinkedInfo();
     }
     pb.importDependencies = linkedImports;
     List<String> exportedNames =
diff --git a/pkg/analyzer/lib/src/summary/summary_sdk.dart b/pkg/analyzer/lib/src/summary/summary_sdk.dart
index ad422ca..cd6c52e 100644
--- a/pkg/analyzer/lib/src/summary/summary_sdk.dart
+++ b/pkg/analyzer/lib/src/summary/summary_sdk.dart
@@ -371,9 +371,9 @@
     _isAsyncInitialized = true;
     _futureType = _getType(library, "Future");
     _streamType = _getType(library, "Stream");
-    _futureDynamicType = _futureType.substitute4(<DartType>[dynamicType]);
-    _futureNullType = _futureType.substitute4(<DartType>[_nullType]);
-    _streamDynamicType = _streamType.substitute4(<DartType>[dynamicType]);
+    _futureDynamicType = _futureType.instantiate(<DartType>[dynamicType]);
+    _futureNullType = _futureType.instantiate(<DartType>[_nullType]);
+    _streamDynamicType = _streamType.instantiate(<DartType>[dynamicType]);
   }
 
   /**
@@ -398,7 +398,7 @@
     _stringType = _getType(library, "String");
     _symbolType = _getType(library, "Symbol");
     _typeType = _getType(library, "Type");
-    _iterableDynamicType = _iterableType.substitute4(<DartType>[dynamicType]);
+    _iterableDynamicType = _iterableType.instantiate(<DartType>[dynamicType]);
   }
 
   /**
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index b94806d..11a704d 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -1004,24 +1004,46 @@
     Map<Source, SourceKind> exportSourceKindMap =
         getRequiredInput(EXPORTS_SOURCE_KIND_INPUT_NAME);
     //
-    // Build elements.
+    // Try to get the existing LibraryElement.
     //
-    DirectiveElementBuilder builder = new DirectiveElementBuilder(
-        context,
-        libraryElement,
-        importLibraryMap,
-        importSourceKindMap,
-        exportLibraryMap,
-        exportSourceKindMap);
-    libraryUnit.accept(builder);
-    // See commentary in the computation of the LIBRARY_CYCLE result
-    // for details on library cycle invalidation.
-    libraryElement.invalidateLibraryCycles();
+    LibraryElement element;
+    {
+      InternalAnalysisContext internalContext =
+          context as InternalAnalysisContext;
+      AnalysisCache analysisCache = internalContext.analysisCache;
+      CacheEntry cacheEntry = internalContext.getCacheEntry(target);
+      element = analysisCache.getValue(target, LIBRARY_ELEMENT2);
+      if (element == null &&
+          internalContext.aboutToComputeResult(cacheEntry, LIBRARY_ELEMENT2)) {
+        element = analysisCache.getValue(target, LIBRARY_ELEMENT2);
+      }
+    }
+    //
+    // Build or reuse the directive elements.
+    //
+    List<AnalysisError> errors;
+    if (element == null) {
+      DirectiveElementBuilder builder = new DirectiveElementBuilder(
+          context,
+          libraryElement,
+          importLibraryMap,
+          importSourceKindMap,
+          exportLibraryMap,
+          exportSourceKindMap);
+      libraryUnit.accept(builder);
+      // See the commentary in the computation of the LIBRARY_CYCLE result
+      // for details on library cycle invalidation.
+      libraryElement.invalidateLibraryCycles();
+      errors = builder.errors;
+    } else {
+      DirectiveResolver resolver = new DirectiveResolver();
+      libraryUnit.accept(resolver);
+    }
     //
     // Record outputs.
     //
     outputs[LIBRARY_ELEMENT2] = libraryElement;
-    outputs[BUILD_DIRECTIVES_ERRORS] = builder.errors;
+    outputs[BUILD_DIRECTIVES_ERRORS] = errors;
   }
 
   /**
@@ -1383,9 +1405,7 @@
       libraryElement.definingCompilationUnit = definingCompilationUnitElement;
       libraryElement.entryPoint = entryPoint;
       libraryElement.parts = sourcedCompilationUnits;
-      for (Directive directive in directivesToResolve) {
-        directive.element = libraryElement;
-      }
+      libraryElement.hasExtUri = _hasExtUri(definingCompilationUnit);
       BuildLibraryElementUtils.patchTopLevelAccessors(libraryElement);
       // set the library documentation to the docs associated with the first
       // directive in the compilation unit.
@@ -1395,6 +1415,15 @@
       }
     }
     //
+    // Resolve the relevant directives to the library element.
+    //
+    // TODO(brianwilkerson) This updates the state of the AST structures but
+    // does not associate a new result with it.
+    //
+    for (Directive directive in directivesToResolve) {
+      directive.element = libraryElement;
+    }
+    //
     // Record outputs.
     //
     outputs[BUILD_LIBRARY_ERRORS] = errors;
@@ -1434,6 +1463,21 @@
   }
 
   /**
+   * Return `true` if the given compilation [unit] contains at least one
+   * import directive with a `dart-ext:` URI.
+   */
+  bool _hasExtUri(CompilationUnit unit) {
+    for (Directive directive in unit.directives) {
+      if (directive is ImportDirective) {
+        if (DartUriResolver.isDartExtUri(directive.uriContent)) {
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+
+  /**
    * 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
    * [libSource].
diff --git a/pkg/analyzer/lib/src/task/driver.dart b/pkg/analyzer/lib/src/task/driver.dart
index a041729..b729a2b 100644
--- a/pkg/analyzer/lib/src/task/driver.dart
+++ b/pkg/analyzer/lib/src/task/driver.dart
@@ -44,11 +44,11 @@
   final InternalAnalysisContext context;
 
   /**
-   * The map of [ComputedResult] controllers.
+   * The map of [ResultChangedEvent] controllers.
    */
-  final Map<ResultDescriptor, StreamController<ComputedResult>>
+  final Map<ResultDescriptor, StreamController<ResultChangedEvent>>
       resultComputedControllers =
-      <ResultDescriptor, StreamController<ComputedResult>>{};
+      <ResultDescriptor, StreamController<ResultChangedEvent>>{};
 
   /**
    * The work order that was previously computed but that has not yet been
@@ -208,11 +208,10 @@
    * Return the stream that is notified when a new value for the given
    * [descriptor] is computed.
    */
-  Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor) {
-    return resultComputedControllers
-        .putIfAbsent(descriptor,
-            () => new StreamController<ComputedResult>.broadcast(sync: true))
-        .stream;
+  Stream<ResultChangedEvent> onResultComputed(ResultDescriptor descriptor) {
+    return resultComputedControllers.putIfAbsent(descriptor, () {
+      return new StreamController<ResultChangedEvent>.broadcast(sync: true);
+    }).stream;
   }
 
   /**
@@ -284,11 +283,11 @@
           entry.setValue(result, outputs[result], dependedOn);
         }
         outputs.forEach((ResultDescriptor descriptor, value) {
-          StreamController<ComputedResult> controller =
+          StreamController<ResultChangedEvent> controller =
               resultComputedControllers[descriptor];
           if (controller != null) {
-            ComputedResult event =
-                new ComputedResult(context, descriptor, target, value);
+            ResultChangedEvent event = new ResultChangedEvent(
+                context, target, descriptor, value, true);
             controller.add(event);
           }
         });
@@ -397,6 +396,8 @@
     while (_currentIndices.isNotEmpty) {
       Node nextUnevaluatedInput = getNextInput(_path[_currentIndices.last],
           _provisionalDependencies[_currentIndices.last]);
+      // If the assertion below fails, it indicates that [getNextInput] did not
+      // skip an input that we asked it to skip.
       assert(!_provisionalDependencies[_currentIndices.last]
           .contains(nextUnevaluatedInput));
       if (nextUnevaluatedInput != null) {
@@ -683,12 +684,7 @@
       inputTargetedResults.add(new TargetedResult(inputTarget, inputResult));
       CacheEntry inputEntry = context.getCacheEntry(inputTarget);
       CacheState inputState = inputEntry.getState(inputResult);
-      if (skipInputs.any((WorkItem item) =>
-          item.target == inputTarget && item.spawningResult == inputResult)) {
-        // This input is being skipped due to a circular dependency.  Tell the
-        // builder that it's not available so we can move on to other inputs.
-        builder.currentValueNotAvailable();
-      } else if (inputState == CacheState.ERROR) {
+      if (inputState == CacheState.ERROR) {
         exception = inputEntry.exception;
         return null;
       } else if (inputState == CacheState.IN_PROCESS) {
@@ -716,8 +712,16 @@
               throw new AnalysisException(
                   'Cannot find task to build $inputResult for $inputTarget');
             }
-            return new WorkItem(context, inputTarget, descriptor, inputResult,
-                level + 1, workOrder);
+            if (skipInputs.any((WorkItem item) =>
+                item.target == inputTarget && item.descriptor == descriptor)) {
+              // This input is being skipped due to a circular dependency.  Tell
+              // the builder that it's not available so we can move on to other
+              // inputs.
+              builder.currentValueNotAvailable();
+            } else {
+              return new WorkItem(context, inputTarget, descriptor, inputResult,
+                  level + 1, workOrder);
+            }
           } on AnalysisException catch (exception, stackTrace) {
             this.exception = new CaughtException(exception, stackTrace);
             return null;
diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart
index 8f0c9de..9831fb6 100644
--- a/pkg/analyzer/lib/src/task/strong/checker.dart
+++ b/pkg/analyzer/lib/src/task/strong/checker.dart
@@ -337,7 +337,7 @@
         : node.loopVariable?.identifier;
     if (loopVariable != null) {
       var iteratorType = loopVariable.staticType;
-      var checkedType = iterableType.substitute4([iteratorType]);
+      var checkedType = iterableType.instantiate([iteratorType]);
       checkAssignment(expr, checkedType);
     }
     node.visitChildren(this);
@@ -648,7 +648,7 @@
         !body.isGenerator &&
         actualType is InterfaceType &&
         actualType.element == futureType.element) {
-      type = futureType.substitute4([type]);
+      type = futureType.instantiate([type]);
     }
     // TODO(vsm): Enforce void or dynamic (to void?) when expression is null.
     if (expression != null) checkAssignment(expression, type);
@@ -753,7 +753,7 @@
     if (yieldStar) {
       if (type.isDynamic) {
         // Ensure it's at least a Stream / Iterable.
-        return expectedType.substitute4([typeProvider.dynamicType]);
+        return expectedType.instantiate([typeProvider.dynamicType]);
       } else {
         // Analyzer will provide a separate error if expected type
         // is not compatible with type.
diff --git a/pkg/analyzer/lib/src/task/strong_mode.dart b/pkg/analyzer/lib/src/task/strong_mode.dart
index b106dee..0ab8a8b 100644
--- a/pkg/analyzer/lib/src/task/strong_mode.dart
+++ b/pkg/analyzer/lib/src/task/strong_mode.dart
@@ -11,11 +11,11 @@
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/type.dart';
 import 'package:analyzer/src/generated/resolver.dart'
     show TypeProvider, InheritanceManager;
 import 'package:analyzer/src/generated/type_system.dart';
 import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/dart/element/type.dart';
 
 /**
  * Sets the type of the field. This is stored in the field itself, and the
@@ -284,11 +284,13 @@
     List<FunctionType> overriddenTypes = new List<FunctionType>();
     for (ExecutableElement overriddenMethod in overriddenMethods) {
       FunctionType overriddenType = overriddenMethod.type;
-      if (overriddenType.typeFormals.isNotEmpty &&
-          overriddenType.typeFormals.length != typeFormals.length) {
-        return;
+      if (overriddenType.typeFormals.isNotEmpty) {
+        if (overriddenType.typeFormals.length != typeFormals.length) {
+          return;
+        }
+        overriddenType = overriddenType.instantiate(typeFormals);
       }
-      overriddenTypes.add(overriddenType.instantiate(typeFormals));
+      overriddenTypes.add(overriddenType);
     }
 
     //
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index fb6756b..15dc4c0 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,8 +1,8 @@
 name: analyzer
-version: 0.27.3-alpha.0
+version: 0.27.3-alpha.2
 author: Dart Team <misc@dartlang.org>
 description: Static analyzer for Dart.
-homepage: http://www.dartlang.org
+homepage: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer
 environment:
   sdk: '>=1.12.0 <2.0.0'
 dependencies:
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 09485aa..6327745 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
@@ -4,6 +4,7 @@
 
 library analyzer.test.generated.compile_time_error_code_test;
 
+import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/error.dart';
 import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode;
 import 'package:analyzer/src/generated/source_io.dart';
@@ -12,7 +13,6 @@
 import '../reflective_tests.dart';
 import '../utils.dart';
 import 'resolver_test.dart';
-import 'package:analyzer/src/generated/engine.dart';
 
 main() {
   initializeTestEnvironment();
diff --git a/pkg/analyzer/test/generated/declaration_resolver_test.dart b/pkg/analyzer/test/generated/declaration_resolver_test.dart
index 4f0b214..35eda15 100644
--- a/pkg/analyzer/test/generated/declaration_resolver_test.dart
+++ b/pkg/analyzer/test/generated/declaration_resolver_test.dart
@@ -10,6 +10,9 @@
 import 'package:analyzer/src/dart/ast/utilities.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/resolver.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/task/dart.dart';
 import 'package:unittest/unittest.dart';
 
 import '../reflective_tests.dart';
@@ -145,6 +148,17 @@
     checkMetadata('import');
   }
 
+  void test_metadata_importDirective_partiallyResolved() {
+    addNamedSource('/foo.dart', 'class C {}');
+    this.code = 'const a = null; @a import "foo.dart";';
+    Source source = addNamedSource('/test.dart', code);
+    LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
+    analysisContext.computeResult(source, LIBRARY_ELEMENT1);
+    unit = analysisContext.computeResult(target, RESOLVED_UNIT1);
+    unit2 = _cloneResolveUnit(unit);
+    checkMetadata('import');
+  }
+
   void test_metadata_libraryDirective() {
     setupCode('@a library L;');
     checkMetadata('L');
@@ -244,6 +258,18 @@
     super.setUp();
   }
 
+  void test_enumConstant_partiallyResolved() {
+    String code = r'''
+enum Fruit {apple, pear}
+''';
+    Source source = addNamedSource('/test.dart', code);
+    LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
+    analysisContext.computeResult(source, LIBRARY_ELEMENT1);
+    CompilationUnit unit =
+        analysisContext.computeResult(target, RESOLVED_UNIT1);
+    CompilationUnit unit2 = _cloneResolveUnit(unit);
+  }
+
   void test_functionDeclaration_getter() {
     String code = r'''
 int get zzz => 42;
diff --git a/pkg/analyzer/test/generated/engine_test.dart b/pkg/analyzer/test/generated/engine_test.dart
index f15ece1..52e3030 100644
--- a/pkg/analyzer/test/generated/engine_test.dart
+++ b/pkg/analyzer/test/generated/engine_test.dart
@@ -600,6 +600,12 @@
   }
 
   @override
+  Stream<ResultChangedEvent> onResultChanged(ResultDescriptor descriptor) {
+    fail("Unexpected invocation of onResultChanged");
+    return null;
+  }
+
+  @override
   Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor) {
     fail("Unexpected invocation of onResultComputed");
     return null;
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 41d96a5..b51be7f 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -12,8 +12,6 @@
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/context/context.dart';
-import 'package:analyzer/src/dart/ast/ast.dart'
-    show SimpleIdentifierImpl, PrefixedIdentifierImpl;
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/dart/element/type.dart';
@@ -237,7 +235,7 @@
           'onValue', futureThenR, [futureElement.typeParameters[0]], null);
       thenOnValue.synthetic = true;
 
-      DartType futureRType = futureElement.type.substitute4([futureThenR.type]);
+      DartType futureRType = futureElement.type.instantiate([futureThenR.type]);
       MethodElementImpl thenMethod = ElementFactory
           .methodElementWithParameters(futureElement, "then", futureRType, [
         ElementFactory.requiredParameter2("onValue", thenOnValue.type),
@@ -271,7 +269,7 @@
         ElementFactory.constructorElement2(streamElement, null)
       ];
       DartType returnType = streamSubscriptionElement.type
-          .substitute4(streamElement.type.typeArguments);
+          .instantiate(streamElement.type.typeArguments);
       FunctionElementImpl listenOnData = ElementFactory.functionElement3(
           'onData',
           VoidTypeImpl.instance.element,
@@ -2489,11 +2487,32 @@
       'package:meta/meta.dart': r'''
 library meta;
 
+const _Factory factory = const _Factory();
+const _Literal literal = const _Literal();
+const _MustCallSuper mustCallSuper = const _MustCallSuper();
+const _Override override = const _Override();
 const _Protected protected = const _Protected();
+const _Required required = const _Required();
 
+class _Factory {
+  const _Factory();
+}
+class _Literal {
+  const _Literal();
+}
+class _MustCallSuper {
+  const _MustCallSuper();
+}
+class _Override {
+  const _Override();
+}
 class _Protected {
   const _Protected();
 }
+class _Required {
+  final String reason;
+  const _Required([this.reason]));
+}
 '''
     });
   }
@@ -2990,10 +3009,10 @@
     verify([source]);
   }
 
-  void test_deprecatedAnnotationUse_deprecated() {
+  void test_deprecatedAnnotationUse_Deprecated() {
     Source source = addSource(r'''
 class A {
-  @deprecated
+  @Deprecated('0.9')
   m() {}
   n() {m();}
 }''');
@@ -3002,10 +3021,10 @@
     verify([source]);
   }
 
-  void test_deprecatedAnnotationUse_Deprecated() {
+  void test_deprecatedAnnotationUse_deprecated() {
     Source source = addSource(r'''
 class A {
-  @Deprecated('0.9')
+  @deprecated
   m() {}
   n() {m();}
 }''');
@@ -3616,6 +3635,67 @@
     verify([source]);
   }
 
+  void test_mustCallSuper() {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+class A {
+  @mustCallSuper
+  void a() {}
+}
+class B extends A {
+  @override
+  void a()
+  {}
+}
+''');
+    computeLibrarySourceErrors(source);
+    assertErrors(source, [HintCode.MUST_CALL_SUPER]);
+    verify([source]);
+  }
+
+  void test_mustCallSuper_indirect() {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+class A {
+  @mustCallSuper
+  void a() {}
+}
+class C extends A {
+  @override
+  void a() {
+    super.a();
+  }
+}
+class D extends C {
+  @override
+  void a() {}
+}
+''');
+    computeLibrarySourceErrors(source);
+    assertErrors(source, [HintCode.MUST_CALL_SUPER]);
+    verify([source]);
+  }
+
+  void test_mustCallSuper_OK() {
+    Source source = addSource(r'''
+import 'package:meta/meta.dart';
+class A {
+  @mustCallSuper
+  void a() {}
+}
+class C extends A {
+  @override
+  void a() {
+    super.a(); //OK
+  }
+}
+''');
+    computeLibrarySourceErrors(source);
+    assertErrors(source, []);
+    verify([source]);
+  }
+
+  @override
   void test_nullAwareInCondition_assert() {
     Source source = addSource(r'''
 m(x) {
@@ -8291,6 +8371,30 @@
   }
 
   /**
+   * Asserts that [code] verifies, but has errors with the given error codes.
+   *
+   * Like [assertErrors], but takes a string of source code.
+   */
+  // TODO(rnystrom): Use this in more tests that have the same structure.
+  void assertErrorsInCode(String code, List<ErrorCode> errors) {
+    Source source = addSource(code);
+    computeLibrarySourceErrors(source);
+    assertErrors(source, errors);
+    verify([source]);
+  }
+
+  /**
+   * Asserts that [code] has errors with the given error codes.
+   *
+   * Like [assertErrors], but takes a string of source code.
+   */
+  void assertErrorsInUnverifiedCode(String code, List<ErrorCode> errors) {
+    Source source = addSource(code);
+    computeLibrarySourceErrors(source);
+    assertErrors(source, errors);
+  }
+
+  /**
    * Assert that no errors have been reported against the given source.
    *
    * @param source the source against which no errors should have been reported
@@ -8302,6 +8406,17 @@
   }
 
   /**
+   * Asserts that [code] has no errors or warnings.
+   */
+  // TODO(rnystrom): Use this in more tests that have the same structure.
+  void assertNoErrorsInCode(String code) {
+    Source source = addSource(code);
+    computeLibrarySourceErrors(source);
+    assertNoErrors(source);
+    verify([source]);
+  }
+
+  /**
    * Cache the source file content in the source factory but don't add the source to the analysis
    * context. The file path should be absolute.
    *
@@ -10594,21 +10709,21 @@
     ClassElementImpl derivedClass =
         ElementFactory.classElement2('Derived', ['T']);
     derivedClass.supertype = _typeProvider.futureType
-        .substitute4([derivedClass.typeParameters[0].type]);
+        .instantiate([derivedClass.typeParameters[0].type]);
     InterfaceType intType = _typeProvider.intType;
     DartType dynamicType = _typeProvider.dynamicType;
-    InterfaceType derivedIntType = derivedClass.type.substitute4([intType]);
+    InterfaceType derivedIntType = derivedClass.type.instantiate([intType]);
     // flatten(Derived) = dynamic
     InterfaceType derivedDynamicType =
-        derivedClass.type.substitute4([dynamicType]);
+        derivedClass.type.instantiate([dynamicType]);
     expect(_flatten(derivedDynamicType), dynamicType);
     // flatten(Derived<int>) = int
     expect(_flatten(derivedIntType), intType);
     // flatten(Derived<Derived>) = Derived
-    expect(_flatten(derivedClass.type.substitute4([derivedDynamicType])),
+    expect(_flatten(derivedClass.type.instantiate([derivedDynamicType])),
         derivedDynamicType);
     // flatten(Derived<Derived<int>>) = Derived<int>
-    expect(_flatten(derivedClass.type.substitute4([derivedIntType])),
+    expect(_flatten(derivedClass.type.instantiate([derivedIntType])),
         derivedIntType);
   }
 
@@ -10633,19 +10748,19 @@
     ClassElementImpl derivedClass =
         ElementFactory.classElement2('Derived', ['T']);
     derivedClass.supertype = _typeProvider.futureType
-        .substitute4([derivedClass.typeParameters[0].type]);
+        .instantiate([derivedClass.typeParameters[0].type]);
     InterfaceType derivedType = derivedClass.type;
     // class A extends Derived<int> implements Derived<num> { ... }
     ClassElementImpl classA =
-        ElementFactory.classElement('A', derivedType.substitute4([intType]));
+        ElementFactory.classElement('A', derivedType.instantiate([intType]));
     classA.interfaces = <InterfaceType>[
-      derivedType.substitute4([numType])
+      derivedType.instantiate([numType])
     ];
     // class B extends Future<num> implements Future<int> { ... }
     ClassElementImpl classB =
-        ElementFactory.classElement('B', derivedType.substitute4([numType]));
+        ElementFactory.classElement('B', derivedType.instantiate([numType]));
     classB.interfaces = <InterfaceType>[
-      derivedType.substitute4([intType])
+      derivedType.instantiate([intType])
     ];
     // flatten(A) = flatten(B) = int, since int is more specific than num.
     // The code in flatten() that inhibits infinite recursion shouldn't be
@@ -10660,15 +10775,15 @@
     InterfaceType numType = _typeProvider.numType;
     // class A extends Future<int> implements Future<num> { ... }
     ClassElementImpl classA =
-        ElementFactory.classElement('A', futureType.substitute4([intType]));
+        ElementFactory.classElement('A', futureType.instantiate([intType]));
     classA.interfaces = <InterfaceType>[
-      futureType.substitute4([numType])
+      futureType.instantiate([numType])
     ];
     // class B extends Future<num> implements Future<int> { ... }
     ClassElementImpl classB =
-        ElementFactory.classElement('B', futureType.substitute4([numType]));
+        ElementFactory.classElement('B', futureType.instantiate([numType]));
     classB.interfaces = <InterfaceType>[
-      futureType.substitute4([intType])
+      futureType.instantiate([intType])
     ];
     // flatten(A) = flatten(B) = int, since int is more specific than num.
     expect(_flatten(classA.type), intType);
@@ -10680,11 +10795,11 @@
     DartType dynamicType = _typeProvider.dynamicType;
     InterfaceType futureDynamicType = _typeProvider.futureDynamicType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4([intType]);
+        _typeProvider.futureType.instantiate([intType]);
     InterfaceType futureFutureDynamicType =
-        _typeProvider.futureType.substitute4([futureDynamicType]);
+        _typeProvider.futureType.instantiate([futureDynamicType]);
     InterfaceType futureFutureIntType =
-        _typeProvider.futureType.substitute4([futureIntType]);
+        _typeProvider.futureType.instantiate([futureIntType]);
     // flatten(int) = int
     expect(_flatten(intType), intType);
     // flatten(dynamic) = dynamic
@@ -10705,15 +10820,15 @@
     InterfaceType stringType = _typeProvider.stringType;
     // class A extends Future<int> implements Future<String> { ... }
     ClassElementImpl classA =
-        ElementFactory.classElement('A', futureType.substitute4([intType]));
+        ElementFactory.classElement('A', futureType.instantiate([intType]));
     classA.interfaces = <InterfaceType>[
-      futureType.substitute4([stringType])
+      futureType.instantiate([stringType])
     ];
     // class B extends Future<String> implements Future<int> { ... }
     ClassElementImpl classB =
-        ElementFactory.classElement('B', futureType.substitute4([stringType]));
+        ElementFactory.classElement('B', futureType.instantiate([stringType]));
     classB.interfaces = <InterfaceType>[
-      futureType.substitute4([intType])
+      futureType.instantiate([intType])
     ];
     // flatten(A) = A and flatten(B) = B, since neither string nor int is more
     // specific than the other.
@@ -10786,9 +10901,9 @@
     // await e, where e has type Future<Future<int>>
     InterfaceType intType = _typeProvider.intType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[intType]);
+        _typeProvider.futureType.instantiate(<DartType>[intType]);
     InterfaceType futureFutureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[futureIntType]);
+        _typeProvider.futureType.instantiate(<DartType>[futureIntType]);
     Expression node =
         AstFactory.awaitExpression(_resolvedVariable(futureFutureIntType, 'e'));
     expect(_analyze(node), same(intType));
@@ -10799,7 +10914,7 @@
     // await e, where e has type Future<int>
     InterfaceType intType = _typeProvider.intType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[intType]);
+        _typeProvider.futureType.instantiate(<DartType>[intType]);
     Expression node =
         AstFactory.awaitExpression(_resolvedVariable(futureIntType, 'e'));
     expect(_analyze(node), same(intType));
@@ -10995,7 +11110,7 @@
     // () async => e, where e has type int
     InterfaceType intType = _typeProvider.intType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[intType]);
+        _typeProvider.futureType.instantiate(<DartType>[intType]);
     Expression expression = _resolvedVariable(intType, 'e');
     ExpressionFunctionBody body = AstFactory.expressionFunctionBody(expression);
     body.keyword = TokenFactory.tokenFromString('async');
@@ -11010,7 +11125,7 @@
     // () async => e, where e has type Future<int>
     InterfaceType intType = _typeProvider.intType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[intType]);
+        _typeProvider.futureType.instantiate(<DartType>[intType]);
     Expression expression = _resolvedVariable(futureIntType, 'e');
     ExpressionFunctionBody body = AstFactory.expressionFunctionBody(expression);
     body.keyword = TokenFactory.tokenFromString('async');
@@ -11025,9 +11140,9 @@
     // () async => e, where e has type Future<Future<int>>
     InterfaceType intType = _typeProvider.intType;
     InterfaceType futureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[intType]);
+        _typeProvider.futureType.instantiate(<DartType>[intType]);
     InterfaceType futureFutureIntType =
-        _typeProvider.futureType.substitute4(<DartType>[futureIntType]);
+        _typeProvider.futureType.instantiate(<DartType>[futureIntType]);
     Expression expression = _resolvedVariable(futureFutureIntType, 'e');
     ExpressionFunctionBody body = AstFactory.expressionFunctionBody(expression);
     body.keyword = TokenFactory.tokenFromString('async');
@@ -11288,7 +11403,7 @@
     MethodElement methodElement = getMethod(listType, "[]");
     // "list" has type List<int>
     SimpleIdentifier identifier = AstFactory.identifier3("list");
-    InterfaceType listOfIntType = listType.substitute4(<DartType>[intType]);
+    InterfaceType listOfIntType = listType.instantiate(<DartType>[intType]);
     identifier.staticType = listOfIntType;
     // list[0] has MethodElement element (int) -> E
     IndexExpression indexExpression =
@@ -11309,7 +11424,7 @@
     MethodElement methodElement = getMethod(listType, "[]=");
     // "list" has type List<int>
     SimpleIdentifier identifier = AstFactory.identifier3("list");
-    InterfaceType listOfIntType = listType.substitute4(<DartType>[intType]);
+    InterfaceType listOfIntType = listType.instantiate(<DartType>[intType]);
     identifier.staticType = listOfIntType;
     // list[0] has MethodElement element (int) -> E
     IndexExpression indexExpression =
@@ -11355,7 +11470,7 @@
     constructor.type = constructorType;
     TypeName typeName =
         AstFactory.typeName(elementC, [AstFactory.typeName(elementI)]);
-    typeName.type = elementC.type.substitute4(<DartType>[elementI.type]);
+    typeName.type = elementC.type.instantiate(<DartType>[elementI.type]);
     InstanceCreationExpression node =
         AstFactory.instanceCreationExpression2(null, typeName);
     node.staticElement = constructor;
@@ -11411,7 +11526,7 @@
     DartType resultType = _analyze(node);
     _assertType2(
         _typeProvider.listType
-            .substitute4(<DartType>[_typeProvider.dynamicType]),
+            .instantiate(<DartType>[_typeProvider.dynamicType]),
         resultType);
     _listener.assertNoErrors();
   }
@@ -11422,7 +11537,7 @@
     DartType resultType = _analyze(node);
     _assertType2(
         _typeProvider.listType
-            .substitute4(<DartType>[_typeProvider.dynamicType]),
+            .instantiate(<DartType>[_typeProvider.dynamicType]),
         resultType);
     _listener.assertNoErrors();
   }
@@ -11432,7 +11547,7 @@
     Expression node = AstFactory.mapLiteral2();
     DartType resultType = _analyze(node);
     _assertType2(
-        _typeProvider.mapType.substitute4(
+        _typeProvider.mapType.instantiate(
             <DartType>[_typeProvider.dynamicType, _typeProvider.dynamicType]),
         resultType);
     _listener.assertNoErrors();
@@ -11444,7 +11559,7 @@
         .mapLiteral2([AstFactory.mapLiteralEntry("k", _resolvedInteger(0))]);
     DartType resultType = _analyze(node);
     _assertType2(
-        _typeProvider.mapType.substitute4(
+        _typeProvider.mapType.instantiate(
             <DartType>[_typeProvider.dynamicType, _typeProvider.dynamicType]),
         resultType);
     _listener.assertNoErrors();
@@ -13766,7 +13881,7 @@
 
     SimpleIdentifier x = _findIdentifier('x');
     expect(x.staticType,
-        typeProvider.listType.substitute4([typeProvider.intType]));
+        typeProvider.listType.instantiate([typeProvider.intType]));
   }
 
   void test_genericMethod_functionExpressionInvocation_explicit() {
@@ -14228,6 +14343,33 @@
     _expectInitializerType('foo', 'Future<String>', isNull);
   }
 
+  void test_implicitBounds() {
+    String code = r'''
+class A<T> {}
+
+class B<T extends num> {}
+
+class C<S extends int, T extends B<S>, U extends B> {}
+
+void test() {
+//
+  A ai;
+  B bi;
+  C ci;
+  var aa = new A();
+  var bb = new B();
+  var cc = new C();
+}
+''';
+    _resolveTestUnit(code);
+    _expectIdentifierType('ai', "A<dynamic>");
+    _expectIdentifierType('bi', "B<num>");
+    _expectIdentifierType('ci', "C<int, B<int>, B<num>>");
+    _expectIdentifierType('aa', "A<dynamic>");
+    _expectIdentifierType('bb', "B<num>");
+    _expectIdentifierType('cc', "C<int, B<int>, B<num>>");
+  }
+
   void test_setterWithDynamicTypeIsError() {
     Source source = addSource(r'''
 class A {
@@ -15229,7 +15371,7 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     InterfaceType listOfStringType =
-        typeProvider.listType.substitute4([typeProvider.stringType]);
+        typeProvider.listType.instantiate([typeProvider.stringType]);
     // in the declaration
     {
       SimpleIdentifier identifier = EngineTestCase.findNode(
@@ -17087,20 +17229,6 @@
     _listener.assertErrorsWithCodes([StaticWarningCode.UNDEFINED_CLASS]);
   }
 
-  void test_visitTypeName_prefixed_noParameters_noArguments_undefined() {
-    SimpleIdentifier prefix = AstFactory.identifier3("unknownPrefix")
-      ..staticElement = new _StaleElement();
-    SimpleIdentifier suffix = AstFactory.identifier3("unknownSuffix")
-      ..staticElement = new _StaleElement();
-    TypeName typeName =
-        new TypeName(AstFactory.identifier(prefix, suffix), null);
-    _resolveNode(typeName, []);
-    expect(typeName.type, UndefinedTypeImpl.instance);
-    expect(prefix.staticElement, null);
-    expect(suffix.staticElement, null);
-    _listener.assertErrorsWithCodes([StaticWarningCode.UNDEFINED_CLASS]);
-  }
-
   void test_visitTypeName_parameters_arguments() {
     ClassElement classA = ElementFactory.classElement2("A", ["E"]);
     ClassElement classB = ElementFactory.classElement2("B");
@@ -17129,6 +17257,20 @@
     _listener.assertNoErrors();
   }
 
+  void test_visitTypeName_prefixed_noParameters_noArguments_undefined() {
+    SimpleIdentifier prefix = AstFactory.identifier3("unknownPrefix")
+      ..staticElement = new _StaleElement();
+    SimpleIdentifier suffix = AstFactory.identifier3("unknownSuffix")
+      ..staticElement = new _StaleElement();
+    TypeName typeName =
+        new TypeName(AstFactory.identifier(prefix, suffix), null);
+    _resolveNode(typeName, []);
+    expect(typeName.type, UndefinedTypeImpl.instance);
+    expect(prefix.staticElement, null);
+    expect(suffix.staticElement, null);
+    _listener.assertErrorsWithCodes([StaticWarningCode.UNDEFINED_CLASS]);
+  }
+
   void test_visitTypeName_void() {
     ClassElement classA = ElementFactory.classElement2("A");
     TypeName typeName = AstFactory.typeName4("void");
@@ -17269,10 +17411,10 @@
   _StaleElement() : super("_StaleElement", -1);
 
   @override
-  accept(_) => throw "_StaleElement shouldn't be visited";
+  get kind => throw "_StaleElement's kind shouldn't be accessed";
 
   @override
-  get kind => throw "_StaleElement's kind shouldn't be accessed";
+  accept(_) => throw "_StaleElement shouldn't be visited";
 }
 
 /**
diff --git a/pkg/analyzer/test/generated/static_type_warning_code_test.dart b/pkg/analyzer/test/generated/static_type_warning_code_test.dart
index 137deb5..0f4f64a 100644
--- a/pkg/analyzer/test/generated/static_type_warning_code_test.dart
+++ b/pkg/analyzer/test/generated/static_type_warning_code_test.dart
@@ -23,17 +23,18 @@
 @reflectiveTest
 class StaticTypeWarningCodeTest extends ResolverTestCase {
   void fail_inaccessibleSetter() {
-    Source source = addSource(r'''
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INACCESSIBLE_SETTER]);
-    verify([source]);
+    // TODO(rnystrom): This doesn't look right.
+    assertErrorsInCode(
+        r'''
+''',
+        [StaticTypeWarningCode.INACCESSIBLE_SETTER]);
   }
 
   void fail_method_lookup_mixin_of_extends() {
     // See dartbug.com/25605
     resetWithOptions(new AnalysisOptionsImpl()..enableSuperMixins = true);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 class A { a() => null; }
 class B {}
 abstract class M extends A {}
@@ -41,19 +42,19 @@
 main() {
   new T().a(); // Warning: The method 'a' is not defined for the class 'T'
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      // TODO(paulberry): when dartbug.com/25614 is fixed, add static warning
-      // code for "B does not extend A".
-      StaticTypeWarningCode.UNDEFINED_METHOD
-    ]);
+''',
+        [
+          // TODO(paulberry): when dartbug.com/25614 is fixed, add static warning
+          // code for "B does not extend A".
+          StaticTypeWarningCode.UNDEFINED_METHOD
+        ]);
   }
 
   void fail_method_lookup_mixin_of_implements() {
     // See dartbug.com/25605
     resetWithOptions(new AnalysisOptionsImpl()..enableSuperMixins = true);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 class A { a() => null; }
 class B {}
 abstract class M implements A {}
@@ -61,18 +62,18 @@
 main() {
   new T().a(); // Warning: The method 'a' is not defined for the class 'T'
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE,
-      StaticTypeWarningCode.UNDEFINED_METHOD
-    ]);
+''',
+        [
+          StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE,
+          StaticTypeWarningCode.UNDEFINED_METHOD
+        ]);
   }
 
   void fail_method_lookup_mixin_of_mixin() {
     // See dartbug.com/25605
     resetWithOptions(new AnalysisOptionsImpl()..enableSuperMixins = true);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 class A {}
 class B { b() => null; }
 class C {}
@@ -81,15 +82,15 @@
 main() {
   new T().b();
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void fail_method_lookup_mixin_of_mixin_application() {
     // See dartbug.com/25605
     resetWithOptions(new AnalysisOptionsImpl()..enableSuperMixins = true);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 class A { a() => null; }
 class B {}
 class C {}
@@ -98,21 +99,19 @@
 main() {
   new T().a();
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void fail_undefinedEnumConstant() {
     // We need a way to set the parseEnum flag in the parser to true.
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 enum E { ONE }
 E e() {
   return E.TWO;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_ENUM_CONSTANT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_ENUM_CONSTANT]);
   }
 
   void test_ambiguousImport_function() {
@@ -141,7 +140,8 @@
     // dubious practice for the computation of an assert message to have side
     // effects, since it is only evaluated if the assert fails).
     resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class C {
   void foo() {}
 }
@@ -152,40 +152,38 @@
     assert(true, () { x = new C(); return 'msg'; }());
   }
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
     // Do not verify since `x.foo()` fails to resolve.
   }
 
   void test_await_flattened() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Future<Future<int>> ffi() => null;
 f() async {
   Future<int> b = await ffi(); // Warning: int not assignable to Future<int>
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_await_simple() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Future<int> fi() => null;
 f() async {
   String a = await fi(); // Warning: int not assignable to String
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_bug21912() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class A {}
 class B extends A {}
 
@@ -204,120 +202,103 @@
     left = t2;
   }
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.INVALID_ASSIGNMENT,
-      StaticTypeWarningCode.INVALID_ASSIGNMENT
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.INVALID_ASSIGNMENT,
+          StaticTypeWarningCode.INVALID_ASSIGNMENT
+        ]);
   }
 
   void test_expectedOneListTypeArgument() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 main() {
   <int, int> [];
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS]);
   }
 
   void test_expectedTwoMapTypeArguments_one() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 main() {
   <int> {};
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]);
   }
 
   void test_expectedTwoMapTypeArguments_three() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 main() {
   <int, int, int> {};
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]);
   }
 
   void test_illegal_return_type_async_function() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() async {}
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE,
-      HintCode.MISSING_RETURN
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE,
+          HintCode.MISSING_RETURN
+        ]);
   }
 
   void test_illegal_return_type_async_generator_function() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() async* {}
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]);
   }
 
   void test_illegal_return_type_async_generator_method() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class C {
   int f() async* {}
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]);
   }
 
   void test_illegal_return_type_async_method() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class C {
   int f() async {}
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE,
-      HintCode.MISSING_RETURN
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE,
+          HintCode.MISSING_RETURN
+        ]);
   }
 
   void test_illegal_return_type_sync_generator_function() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() sync* {}
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]);
   }
 
   void test_illegal_return_type_sync_generator_method() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class C {
   int f() sync* {}
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]);
   }
 
   void test_inconsistentMethodInheritance_paramCount() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 abstract class A {
   int x();
 }
@@ -325,115 +306,101 @@
   int x(int y);
 }
 class C implements A, B {
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
   }
 
   void test_inconsistentMethodInheritance_paramType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 abstract class A {
   x(int i);
 }
 abstract class B {
   x(String s);
 }
-abstract class C implements A, B {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
-    verify([source]);
+abstract class C implements A, B {}
+''',
+        [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
   }
 
   void test_inconsistentMethodInheritance_returnType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 abstract class A {
   int x();
 }
 abstract class B {
   String x();
 }
-abstract class C implements A, B {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
-    verify([source]);
+abstract class C implements A, B {}
+''',
+        [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]);
   }
 
   void test_instanceAccessToStaticMember_method_invocation() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static m() {}
 }
 main(A a) {
   a.m();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
   }
 
   void test_instanceAccessToStaticMember_method_reference() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static m() {}
 }
 main(A a) {
   a.m;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
   }
 
   void test_instanceAccessToStaticMember_propertyAccess_field() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static var f;
 }
 main(A a) {
   a.f;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
   }
 
   void test_instanceAccessToStaticMember_propertyAccess_getter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static get f => 42;
 }
 main(A a) {
   a.f;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
   }
 
   void test_instanceAccessToStaticMember_propertyAccess_setter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static set f(x) {}
 }
 main(A a) {
   a.f = 42;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]);
   }
 
   void test_invalidAssignment_compoundAssignment() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class byte {
   int _value;
   byte(this._value);
@@ -443,152 +410,137 @@
 void main() {
   byte b = new byte(52);
   b += 3;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_defaultValue_named() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f({String x: 0}) {
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_defaultValue_optional() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f([String x = 0]) {
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_dynamic() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 main() {
   dynamic = 1;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_functionExpressionInvocation() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 main() {
   String x = (() => 5)();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_ifNullAssignment() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 void f(int i) {
   double d;
   d ??= i;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_instanceVariable() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   int x;
 }
 f() {
   A a;
   a.x = '0';
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_localVariable() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   int x;
   x = '0';
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_regressionInIssue18468Fix() {
     // https://code.google.com/p/dart/issues/detail?id=18628
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class C<T> {
   T t = int;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_staticVariable() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static int x;
 }
 f() {
   A.x = '0';
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_topLevelVariableDeclaration() {
-    Source source = addSource("int x = 'string';");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+    assertErrorsInCode(
+        "int x = 'string';", [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_typeParameter() {
     // 14221
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class B<T> {
   T value;
   void test(num n) {
     value = n;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invalidAssignment_variableDeclaration() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   int x = 'string';
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVALID_ASSIGNMENT]);
   }
 
   void test_invocationOfNonFunction_class() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   void m() {
     A();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
   }
 
   void test_invocationOfNonFunction_localGenericFunction() {
@@ -599,41 +551,39 @@
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f(Function f) {
   return f();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
   }
 
   void test_invocationOfNonFunction_localObject() {
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f(Object o) {
   return o();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
   }
 
   void test_invocationOfNonFunction_localVariable() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   int x;
   return x();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
   }
 
   void test_invocationOfNonFunction_ordinaryInvocation() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static int x;
 }
@@ -641,27 +591,27 @@
   m() {
     A.x();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
     // A call to verify(source) fails as A.x() cannot be resolved.
   }
 
   void test_invocationOfNonFunction_staticInvocation() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static int get g => 0;
   f() {
     A.g();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
     // A call to verify(source) fails as g() cannot be resolved.
   }
 
   void test_invocationOfNonFunction_superExpression() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   int get g => 0;
 }
@@ -669,282 +619,246 @@
   m() {
     var v = super.g();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]);
   }
 
   void test_invocationOfNonFunctionExpression_literal() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   3(5);
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION]);
   }
 
   void test_nonBoolCondition_conditional() {
-    Source source = addSource("f() { return 3 ? 2 : 1; }");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]);
-    verify([source]);
+    assertErrorsInCode("f() { return 3 ? 2 : 1; }",
+        [StaticTypeWarningCode.NON_BOOL_CONDITION]);
   }
 
   void test_nonBoolCondition_do() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   do {} while (3);
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_CONDITION]);
   }
 
   void test_nonBoolCondition_for() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   for (;3;) {}
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_CONDITION]);
   }
 
   void test_nonBoolCondition_if() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   if (3) return 2; else return 1;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_CONDITION]);
   }
 
   void test_nonBoolCondition_while() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   while (3) {}
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_CONDITION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_CONDITION]);
   }
 
   void test_nonBoolExpression_functionType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 int makeAssertion() => 1;
 f() {
   assert(makeAssertion);
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_EXPRESSION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_EXPRESSION]);
   }
 
   void test_nonBoolExpression_interfaceType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   assert(0);
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_EXPRESSION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_EXPRESSION]);
   }
 
   void test_nonBoolNegationExpression() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 f() {
   !42;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION]);
   }
 
   void test_nonBoolOperand_and_left() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 bool f(int left, bool right) {
   return left && right;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_OPERAND]);
   }
 
   void test_nonBoolOperand_and_right() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 bool f(bool left, String right) {
   return left && right;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_OPERAND]);
   }
 
   void test_nonBoolOperand_or_left() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 bool f(List<int> left, bool right) {
   return left || right;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_OPERAND]);
   }
 
   void test_nonBoolOperand_or_right() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 bool f(bool left, double right) {
   return left || right;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_BOOL_OPERAND]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_BOOL_OPERAND]);
   }
 
   void test_nonTypeAsTypeArgument_notAType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 int A;
 class B<E> {}
-f(B<A> b) {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
-    verify([source]);
+f(B<A> b) {}''',
+        [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
   }
 
   void test_nonTypeAsTypeArgument_undefinedIdentifier() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class B<E> {}
-f(B<A> b) {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
-    verify([source]);
+f(B<A> b) {}''',
+        [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
   }
 
   void test_returnOfInvalidType_async_future_int_mismatches_future_null() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Future<Null> f() async {
   return 5;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_async_future_int_mismatches_future_string() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Future<String> f() async {
   return 5;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_async_future_int_mismatches_int() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() async {
   return 5;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.RETURN_OF_INVALID_TYPE,
-      StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.RETURN_OF_INVALID_TYPE,
+          StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE
+        ]);
   }
 
   void test_returnOfInvalidType_expressionFunctionBody_function() {
-    Source source = addSource("int f() => '0';");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode(
+        "int f() => '0';", [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_expressionFunctionBody_getter() {
-    Source source = addSource("int get g => '0';");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode(
+        "int get g => '0';", [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_expressionFunctionBody_localFunction() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   String m() {
     int f() => '0';
     return '0';
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_expressionFunctionBody_method() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   int f() => '0';
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_expressionFunctionBody_void() {
-    Source source = addSource("void f() => 42;");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode(
+        "void f() => 42;", [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_function() {
-    Source source = addSource("int f() { return '0'; }");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode("int f() { return '0'; }",
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_getter() {
-    Source source = addSource("int get g { return '0'; }");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode("int get g { return '0'; }",
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_localFunction() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   String m() {
     int f() { return '0'; }
     return '0';
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_returnOfInvalidType_method() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   int f() { return '0'; }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   // https://github.com/dart-lang/sdk/issues/24713
   void test_returnOfInvalidType_not_issued_for_valid_generic_return() {
-    Source source = addSource(r'''
+    assertNoErrorsInCode(r'''
 abstract class F<T, U>  {
   U get value;
 }
@@ -958,321 +872,296 @@
 }
 
 void main() { }''');
-    computeLibrarySourceErrors(source);
-    assertNoErrors(source);
-    verify([source]);
   }
 
   void test_returnOfInvalidType_void() {
-    Source source = addSource("void f() { return 42; }");
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
-    verify([source]);
+    assertErrorsInCode("void f() { return 42; }",
+        [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]);
   }
 
   void test_typeArgumentNotMatchingBounds_classTypeAlias() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class C {}
 class G<E extends A> {}
-class D = G<B> with C;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class D = G<B> with C;
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_extends() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-class C extends G<B>{}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class C extends G<B>{}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_extends_regressionInIssue18468Fix() {
     // https://code.google.com/p/dart/issues/detail?id=18628
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class X<T extends Type> {}
-class Y<U> extends X<U> {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class Y<U> extends X<U> {}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_fieldFormalParameter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
 class C {
   var f;
   C(G<B> this.f) {}
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_functionReturnType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-G<B> f() { return null; }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+G<B> f() { return null; }
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_functionTypeAlias() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-typedef G<B> f();''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+typedef G<B> f();
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_functionTypedFormalParameter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-f(G<B> h()) {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+f(G<B> h()) {}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_implements() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-class C implements G<B>{}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class C implements G<B>{}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_is() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-var b = 1 is G<B>;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+var b = 1 is G<B>;
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_methodReturnType() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
 class C {
   G<B> m() { return null; }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_new() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-f() { return new G<B>(); }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+f() { return new G<B>(); }
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_new_superTypeOfUpperBound() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B extends A {}
 class C extends B {}
 class G<E extends B> {}
-f() { return new G<A>(); }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+f() { return new G<A>(); }
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_parameter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-f(G<B> g) {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+f(G<B> g) {}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_redirectingConstructor() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class X<T extends A> {
   X(int x, int y) {}
   factory X.name(int x, int y) = X<B>;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
-      StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE
-    ]);
-    verify([source]);
+}''',
+        [
+          StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
+          StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE
+        ]);
   }
 
   void test_typeArgumentNotMatchingBounds_typeArgumentList() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class C<E> {}
 class D<E extends A> {}
-C<D<B>> Var;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+C<D<B>> Var;
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_typeParameter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class C {}
 class G<E extends A> {}
-class D<F extends G<B>> {}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class D<F extends G<B>> {}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_variableDeclaration() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-G<B> g;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+G<B> g;
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeArgumentNotMatchingBounds_with() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {}
 class G<E extends A> {}
-class C extends Object with G<B>{}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
-    verify([source]);
+class C extends Object with G<B>{}
+''',
+        [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]);
   }
 
   void test_typeParameterSupertypeOfItsBound() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<T extends T> {
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND]);
-    verify([source]);
+}
+''',
+        [StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND]);
   }
 
   void
       test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_mutated() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 callMe(f()) { f(); }
 main(Object p) {
   (p is String) && callMe(() { p.length; });
   p = 0;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_booleanAnd_useInRight_mutatedInLeft() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   ((p is String) && ((p = 42) == 42)) && p.length != 0;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_booleanAnd_useInRight_mutatedInRight() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   (p is String) && (((p = 42) == 42) && p.length != 0);
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void
       test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_after() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 callMe(f()) { f(); }
 main(Object p) {
   p is String ? callMe(() { p.length; }) : 0;
   p = 42;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void
       test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_before() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 callMe(f()) { f(); }
 main(Object p) {
   p = 42;
   p is String ? callMe(() { p.length; }) : 0;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_conditional_useInThen_hasAssignment() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   p is String ? (p.length + (p = 42)) : 0;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_accessedInClosure_hasAssignment() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 callMe(f()) { f(); }
 main(Object p) {
   if (p is String) {
@@ -1281,24 +1170,24 @@
     });
   }
   p = 0;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_and_right_hasAssignment() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   if (p is String && (p = null) == null) {
     p.length;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_extends_notMoreSpecific_dynamic() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class V {}
 class A<T> {}
 class B<S> extends A<S> {
@@ -1309,13 +1198,13 @@
   if (p is B) {
     p.b;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_extends_notMoreSpecific_notMoreSpecificTypeArg() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class V {}
 class A<T> {}
 class B<S> extends A<S> {
@@ -1326,85 +1215,85 @@
   if (p is B<int>) {
     p.b;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_after() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   if (p is String) {
     p.length;
     p = 0;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_before() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   if (p is String) {
     p = 0;
     p.length;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_inClosure_anonymous_after() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   if (p is String) {
     p.length;
   }
   () {p = 0;};
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_inClosure_anonymous_before() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   () {p = 0;};
   if (p is String) {
     p.length;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_inClosure_function_after() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   if (p is String) {
     p.length;
   }
   f() {p = 0;};
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_hasAssignment_inClosure_function_before() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 main(Object p) {
   f() {p = 0;};
   if (p is String) {
     p.length;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_implements_notMoreSpecific_dynamic() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class V {}
 class A<T> {}
 class B<S> implements A<S> {
@@ -1415,13 +1304,13 @@
   if (p is B) {
     p.b;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_typePromotion_if_with_notMoreSpecific_dynamic() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class V {}
 class A<T> {}
 class B<S> extends Object with A<S> {
@@ -1432,30 +1321,29 @@
   if (p is B) {
     p.b;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedFunction() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 void f() {
   g();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_FUNCTION]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_FUNCTION]);
   }
 
   void test_undefinedFunction_inCatch() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 void f() {
   try {
   } on Object {
     g();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_FUNCTION]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_FUNCTION]);
   }
 
   void test_undefinedFunction_inImportedLib() {
@@ -1472,11 +1360,11 @@
   }
 
   void test_undefinedGetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class T {}
-f(T e) { return e.m; }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+f(T e) { return e.m; }''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_generic_function_call() {
@@ -1486,30 +1374,31 @@
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 f(Function f) {
   return f.call;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_object_call() {
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInUnverifiedCode(
+        '''
 f(Object o) {
   return o.call;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_proxy_annotation_fakeProxy() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 library L;
 class Fake {
   const Fake();
@@ -1518,115 +1407,109 @@
 @proxy class PrefixProxy {}
 main() {
   new PrefixProxy().foo;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_static() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
-var a = A.B;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+var a = A.B;''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_typeLiteral_cascadeTarget() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class T {
   static int get foo => 42;
 }
 main() {
   T..foo;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_typeLiteral_conditionalAccess() {
     // When applied to a type literal, the conditional access operator '?.'
     // cannot be used to access instance getters of Type.
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class A {}
 f() => A?.hashCode;
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_void() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class T {
   void m() {}
 }
-f(T e) { return e.m().f; }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_GETTER]);
+f(T e) { return e.m().f; }''',
+        [StaticTypeWarningCode.UNDEFINED_GETTER]);
   }
 
   void test_undefinedGetter_wrongNumberOfTypeArguments_tooLittle() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<K, V> {
   K element;
 }
 main(A<int> a) {
   a.element.anyGetterExistsInDynamic;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_undefinedGetter_wrongNumberOfTypeArguments_tooMany() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<E> {
   E element;
 }
 main(A<int,int> a) {
   a.element.anyGetterExistsInDynamic;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_undefinedGetter_wrongOfTypeArgument() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<E> {
   E element;
 }
 main(A<NoSuchType> a) {
   a.element.anyGetterExistsInDynamic;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]);
   }
 
   void test_undefinedMethod() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   void m() {
     n();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_assignmentExpression() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B {
   f(A a) {
     A a2 = new A();
     a += a2;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_generic_function_call() {
@@ -1636,17 +1519,18 @@
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f(Function f) {
   f.call();
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_ignoreTypePropagation() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B extends A {
   m() {}
@@ -1656,28 +1540,26 @@
     A a = new B();
     a.m();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_leastUpperBoundWithNull() {
-    Source source = addSource('f(bool b, int i) => (b ? null : i).foo();');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+    assertErrorsInCode('f(bool b, int i) => (b ? null : i).foo();',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_object_call() {
     AnalysisOptionsImpl options = new AnalysisOptionsImpl();
     options.enableStrictCallChecks = true;
     resetWithOptions(options);
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f(Object o) {
   o.call();
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_private() {
@@ -1688,19 +1570,20 @@
 class A {
   _foo() {}
 }''');
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 import 'lib.dart';
 class B extends A {
   test() {
     _foo();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_proxy_annotation_fakeProxy() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 library L;
 class Fake {
   const Fake();
@@ -1709,230 +1592,229 @@
 @proxy class PrefixProxy {}
 main() {
   new PrefixProxy().foo();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_typeLiteral_cascadeTarget() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class T {
   static void foo() {}
 }
 main() {
   T..foo();
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethod_typeLiteral_conditionalAccess() {
     // When applied to a type literal, the conditional access operator '?.'
     // cannot be used to access instance methods of Type.
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 class A {}
 f() => A?.toString();
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_METHOD]);
+''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD]);
   }
 
   void test_undefinedMethodWithConstructor() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class C {
   C.m();
 }
 f() {
   C c = C.m();
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.UNDEFINED_METHOD_WITH_CONSTRUCTOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_METHOD_WITH_CONSTRUCTOR]);
   }
 
   void test_undefinedOperator_indexBoth() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 f(A a) {
   a[0]++;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedOperator_indexGetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 f(A a) {
   a[0];
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedOperator_indexSetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 f(A a) {
   a[0] = 1;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedOperator_plus() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 f(A a) {
   a + 1;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedOperator_postfixExpression() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 f(A a) {
   a++;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedOperator_prefixExpression() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 f(A a) {
   ++a;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_OPERATOR]);
   }
 
   void test_undefinedSetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class T {}
-f(T e1) { e1.m = 0; }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]);
+f(T e1) { e1.m = 0; }''',
+        [StaticTypeWarningCode.UNDEFINED_SETTER]);
   }
 
   void test_undefinedSetter_static() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
-f() { A.B = 0;}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]);
+f() { A.B = 0;}''',
+        [StaticTypeWarningCode.UNDEFINED_SETTER]);
   }
 
   void test_undefinedSetter_typeLiteral_cascadeTarget() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class T {
   static void set foo(_) {}
 }
 main() {
   T..foo = 42;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SETTER]);
   }
 
   void test_undefinedSetter_void() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class T {
   void m() {}
 }
-f(T e) { e.m().f = 0; }''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SETTER]);
+f(T e) { e.m().f = 0; }''',
+        [StaticTypeWarningCode.UNDEFINED_SETTER]);
   }
 
   void test_undefinedSuperGetter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B extends A {
   get g {
     return super.g;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_GETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_GETTER]);
   }
 
   void test_undefinedSuperMethod() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B extends A {
   m() { return super.m(); }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_METHOD]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_METHOD]);
   }
 
   void test_undefinedSuperOperator_binaryExpression() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 class B extends A {
   operator +(value) {
     return super + value;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
   }
 
   void test_undefinedSuperOperator_indexBoth() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 class B extends A {
   operator [](index) {
     return super[index]++;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
   }
 
   void test_undefinedSuperOperator_indexGetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 class B extends A {
   operator [](index) {
     return super[index + 1];
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
   }
 
   void test_undefinedSuperOperator_indexSetter() {
-    Source source = addSource(r'''
+    assertErrorsInUnverifiedCode(
+        r'''
 class A {}
 class B extends A {
   operator []=(index, value) {
     return super[index] = 0;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]);
   }
 
   void test_undefinedSuperSetter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class B extends A {
   f() {
     super.m = 0;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.UNDEFINED_SUPER_SETTER]);
+}''',
+        [StaticTypeWarningCode.UNDEFINED_SUPER_SETTER]);
   }
 
   void test_unqualifiedReferenceToNonLocalStaticMember_getter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static int get a => 0;
 }
@@ -1940,16 +1822,15 @@
   int b() {
     return a;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
-    ]);
-    verify([source]);
+}''',
+        [
+          StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
+        ]);
   }
 
   void test_unqualifiedReferenceToNonLocalStaticMember_method() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static void a() {}
 }
@@ -1957,16 +1838,15 @@
   void b() {
     a();
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
-    ]);
-    verify([source]);
+}''',
+        [
+          StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
+        ]);
   }
 
   void test_unqualifiedReferenceToNonLocalStaticMember_setter() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {
   static set a(x) {}
 }
@@ -1974,196 +1854,390 @@
   b(y) {
     a = y;
   }
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
-    ]);
-    verify([source]);
+}''',
+        [
+          StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER
+        ]);
   }
 
   void test_wrongNumberOfTypeArguments_classAlias() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class M {}
-class B<F extends num> = A<F> with M;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+class B<F extends num> = A<F> with M;''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_wrongNumberOfTypeArguments_tooFew() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<E, F> {}
-A<A> a = null;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+A<A> a = null;''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_wrongNumberOfTypeArguments_tooMany() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A<E> {}
-A<A, A> a = null;''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+A<A, A> a = null;''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_wrongNumberOfTypeArguments_typeTest_tooFew() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class C<K, V> {}
 f(p) {
   return p is C<A>;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
   }
 
   void test_wrongNumberOfTypeArguments_typeTest_tooMany() {
-    Source source = addSource(r'''
+    assertErrorsInCode(
+        r'''
 class A {}
 class C<E> {}
 f(p) {
   return p is C<A, A>;
-}''');
-    computeLibrarySourceErrors(source);
-    assertErrors(
-        source, [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
-    verify([source]);
+}''',
+        [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]);
+  }
+
+  void test_forIn_notIterable() {
+    assertErrorsInCode(
+        '''
+f() {
+  for (var i in true) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]);
+  }
+
+  void test_forIn_declaredVariableWrongType() {
+    assertErrorsInCode(
+        '''
+f() {
+  for (int i in <String>[]) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]);
+  }
+
+  void test_forIn_existingVariableWrongType() {
+    assertErrorsInCode(
+        '''
+f() {
+  int i;
+  for (i in <String>[]) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]);
+  }
+
+  void test_forIn_declaredVariableRightType() {
+    assertNoErrorsInCode('''
+f() {
+  for (int i in <int>[]) {}
+}
+''');
+  }
+
+  void test_forIn_existingVariableRightType() {
+    assertNoErrorsInCode('''
+f() {
+  int i;
+  for (i in <int>[]) {}
+}
+''');
+  }
+
+  void test_forIn_dynamicVariable() {
+    assertNoErrorsInCode('''
+f() {
+  for (var i in <int>[]) {}
+}
+''');
+  }
+
+  void test_forIn_iterableOfDynamic() {
+    assertNoErrorsInCode('''
+f() {
+  for (int i in []) {}
+}
+''');
+  }
+
+  void test_forIn_dynamicIterable() {
+    assertNoErrorsInCode('''
+f() {
+  dynamic iterable;
+  for (int i in iterable) {}
+}
+''');
+  }
+
+  void test_forIn_upcast() {
+    assertNoErrorsInCode('''
+f() {
+  for (num i in <int>[]) {}
+}
+''');
+  }
+
+  void test_forIn_downcast() {
+    assertNoErrorsInCode('''
+f() {
+  for (int i in <num>[]) {}
+}
+''');
+  }
+
+  void test_forIn_typeBoundBad() {
+    assertErrorsInCode(
+        '''
+class Foo<T extends Iterable<int>> {
+  void method(T iterable) {
+    for (String i in iterable) {}
+  }
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]);
+  }
+
+  void test_forIn_typeBoundGood() {
+    assertNoErrorsInCode('''
+class Foo<T extends Iterable<int>> {
+  void method(T iterable) {
+    for (var i in iterable) {}
+  }
+}
+''');
+  }
+
+  void test_awaitForIn_notStream() {
+    assertErrorsInCode(
+        '''
+f() async {
+  await for (var i in true) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]);
+  }
+
+  void test_awaitForIn_declaredVariableWrongType() {
+    assertErrorsInCode(
+        '''
+import 'dart:async';
+f() async {
+  Stream<String> stream;
+  await for (int i in stream) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]);
+  }
+
+  void test_awaitForIn_existingVariableWrongType() {
+    assertErrorsInCode(
+        '''
+import 'dart:async';
+f() async {
+  Stream<String> stream;
+  int i;
+  await for (i in stream) {}
+}
+''',
+        [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]);
+  }
+
+  void test_awaitForIn_declaredVariableRightType() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream<int> stream;
+  await for (int i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_existingVariableRightType() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream<int> stream;
+  int i;
+  await for (i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_dynamicVariable() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream<int> stream;
+  await for (var i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_streamOfDynamic() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream stream;
+  await for (int i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_dynamicStream() {
+    assertNoErrorsInCode('''
+f() async {
+  dynamic stream;
+  await for (int i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_upcast() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream<int> stream;
+  await for (num i in stream) {}
+}
+''');
+  }
+
+  void test_awaitForIn_downcast() {
+    assertNoErrorsInCode('''
+import 'dart:async';
+f() async {
+  Stream<num> stream;
+  await for (int i in stream) {}
+}
+''');
   }
 
   void test_yield_async_to_basic_type() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() async* {
   yield 3;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
-      StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+          StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE
+        ]);
   }
 
   void test_yield_async_to_iterable() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 Iterable<int> f() async* {
   yield 3;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
-      StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+          StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE
+        ]);
   }
 
   void test_yield_async_to_mistyped_stream() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Stream<int> f() async* {
   yield "foo";
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_each_async_non_stream() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f() async* {
   yield* 0;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_each_async_to_mistyped_stream() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Stream<int> f() async* {
   yield* g();
 }
 Stream<String> g() => null;
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_each_sync_non_iterable() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 f() sync* {
   yield* 0;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_each_sync_to_mistyped_iterable() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 Iterable<int> f() sync* {
   yield* g();
 }
 Iterable<String> g() => null;
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_sync_to_basic_type() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 int f() sync* {
   yield 3;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
-      StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+          StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE
+        ]);
   }
 
   void test_yield_sync_to_mistyped_iterable() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 Iterable<int> f() sync* {
   yield "foo";
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
-    verify([source]);
+''',
+        [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]);
   }
 
   void test_yield_sync_to_stream() {
-    Source source = addSource('''
+    assertErrorsInCode(
+        '''
 import 'dart:async';
 Stream<int> f() sync* {
   yield 3;
 }
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [
-      StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
-      StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE
-    ]);
-    verify([source]);
+''',
+        [
+          StaticTypeWarningCode.YIELD_OF_INVALID_TYPE,
+          StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE
+        ]);
   }
 }
 
diff --git a/pkg/analyzer/test/generated/type_system_test.dart b/pkg/analyzer/test/generated/type_system_test.dart
index 20d1a821..fe69d2c 100644
--- a/pkg/analyzer/test/generated/type_system_test.dart
+++ b/pkg/analyzer/test/generated/type_system_test.dart
@@ -138,14 +138,14 @@
     InterfaceType LType = LClass.type;
     ClassElementImpl MClass = ElementFactory.classElement2('M', ["T"]);
     DartType typeParam = MClass.typeParameters[0].type;
-    InterfaceType superType = LType.substitute4(<DartType>[typeParam]);
+    InterfaceType superType = LType.instantiate(<DartType>[typeParam]);
     MClass.interfaces = <InterfaceType>[superType];
     InterfaceType MType = MClass.type;
 
-    InterfaceType top = LType.substitute4(<DartType>[dynamicType]);
-    InterfaceType left = MType.substitute4(<DartType>[dynamicType]);
-    InterfaceType right = LType.substitute4(<DartType>[intType]);
-    InterfaceType bottom = MType.substitute4(<DartType>[intType]);
+    InterfaceType top = LType.instantiate(<DartType>[dynamicType]);
+    InterfaceType left = MType.instantiate(<DartType>[dynamicType]);
+    InterfaceType right = LType.instantiate(<DartType>[intType]);
+    InterfaceType bottom = MType.instantiate(<DartType>[intType]);
 
     _checkCrossLattice(top, left, right, bottom);
   }
@@ -341,12 +341,12 @@
     // <TFrom, TTo extends Iterable<TFrom>>(TFrom) -> TTo
     var tFrom = TypeBuilder.variable('TFrom');
     var tTo =
-        TypeBuilder.variable('TTo', bound: iterableType.substitute4([tFrom]));
+        TypeBuilder.variable('TTo', bound: iterableType.instantiate([tFrom]));
     var cast = TypeBuilder
         .function(types: [tFrom, tTo], required: [tFrom], result: tTo);
     expect(_inferCall(cast, [stringType]), [
       stringType,
-      iterableType.substitute4([stringType])
+      iterableType.instantiate([stringType])
     ]);
   }
 
@@ -358,19 +358,19 @@
         clonable.type;
     // class Foo extends Clonable<Foo>
     ClassElementImpl foo = ElementFactory.classElement('Foo', null);
-    foo.supertype = clonable.type.substitute4([foo.type]);
+    foo.supertype = clonable.type.instantiate([foo.type]);
 
     // <S extends Clonable<S>>
     var s = TypeBuilder.variable('S');
     (s.element as TypeParameterElementImpl).bound =
-        clonable.type.substitute4([s]);
+        clonable.type.instantiate([s]);
     // (S, S) -> S
     var clone = TypeBuilder.function(types: [s], required: [s, s], result: s);
     expect(_inferCall(clone, [foo.type, foo.type]), [foo.type]);
 
     // Something invalid...
     expect(_inferCall(clone, [stringType, numType]), [
-      clonable.type.substitute4([dynamicType])
+      clonable.type.instantiate([dynamicType])
     ]);
   }
 
@@ -687,14 +687,14 @@
     ClassElementImpl AClass = ElementFactory.classElement2('A', ["Q"]);
     InterfaceType AType = AClass.type;
     ClassElementImpl BClass = ElementFactory.classElement2('B', ["R"]);
-    BClass.supertype = AType.substitute4([BClass.typeParameters[0].type]);
+    BClass.supertype = AType.instantiate([BClass.typeParameters[0].type]);
     InterfaceType BType = BClass.type;
 
     DartType s = TypeBuilder.variable("S");
-    (s.element as TypeParameterElementImpl).bound = AType.substitute4([s]);
+    (s.element as TypeParameterElementImpl).bound = AType.instantiate([s]);
     DartType t = TypeBuilder.variable("T", bound: s);
     DartType u = TypeBuilder.variable("U");
-    (u.element as TypeParameterElementImpl).bound = BType.substitute4([u]);
+    (u.element as TypeParameterElementImpl).bound = BType.instantiate([u]);
     DartType v = TypeBuilder.variable("V", bound: u);
 
     _checkIsStrictSubtypeOf(
@@ -710,14 +710,14 @@
     InterfaceType LType = LClass.type;
     ClassElementImpl MClass = ElementFactory.classElement2('M', ["T"]);
     DartType typeParam = MClass.typeParameters[0].type;
-    InterfaceType superType = LType.substitute4(<DartType>[typeParam]);
+    InterfaceType superType = LType.instantiate(<DartType>[typeParam]);
     MClass.interfaces = <InterfaceType>[superType];
     InterfaceType MType = MClass.type;
 
-    InterfaceType top = LType.substitute4(<DartType>[dynamicType]);
-    InterfaceType left = MType.substitute4(<DartType>[dynamicType]);
-    InterfaceType right = LType.substitute4(<DartType>[intType]);
-    InterfaceType bottom = MType.substitute4(<DartType>[intType]);
+    InterfaceType top = LType.instantiate(<DartType>[dynamicType]);
+    InterfaceType left = MType.instantiate(<DartType>[dynamicType]);
+    InterfaceType right = LType.instantiate(<DartType>[intType]);
+    InterfaceType bottom = MType.instantiate(<DartType>[intType]);
 
     _checkLattice(top, left, right, bottom);
   }
@@ -1224,9 +1224,9 @@
     // class List<int>
     // class List<double>
     //
-    InterfaceType listOfIntType = listType.substitute4(<DartType>[intType]);
+    InterfaceType listOfIntType = listType.instantiate(<DartType>[intType]);
     InterfaceType listOfDoubleType =
-        listType.substitute4(<DartType>[doubleType]);
+        listType.instantiate(<DartType>[doubleType]);
     _checkLeastUpperBound(listOfIntType, listOfDoubleType, objectType);
   }
 
@@ -1235,7 +1235,7 @@
     // List<int>
     // List<int>
     //
-    InterfaceType listOfIntType = listType.substitute4(<DartType>[intType]);
+    InterfaceType listOfIntType = listType.instantiate(<DartType>[intType]);
     expect(
         typeSystem.getLeastUpperBound(
             typeProvider, listOfIntType, listOfIntType),
diff --git a/pkg/analyzer/test/parse_compilation_unit_test.dart b/pkg/analyzer/test/parse_compilation_unit_test.dart
index c5313da..9f9679d 100644
--- a/pkg/analyzer/test/parse_compilation_unit_test.dart
+++ b/pkg/analyzer/test/parse_compilation_unit_test.dart
@@ -31,9 +31,7 @@
       parseCompilationUnit("void main() => print('Hello, world!')");
     }, throwsA(predicate((error) {
       return error is AnalyzerErrorGroup &&
-          error
-              .toString()
-              .contains("Error in <unknown source>: Expected to find ';'");
+          error.toString().contains("Error in <unknown source>: Expected to find ';'");
     })));
   });
 
diff --git a/pkg/analyzer/test/reflective_tests.dart b/pkg/analyzer/test/reflective_tests.dart
index 970743d..2391879 100644
--- a/pkg/analyzer/test/reflective_tests.dart
+++ b/pkg/analyzer/test/reflective_tests.dart
@@ -4,9 +4,9 @@
 
 library analyzer.test.reflective_tests;
 
+import 'dart:async';
 @MirrorsUsed(metaTargets: 'ReflectiveTest')
 import 'dart:mirrors';
-import 'dart:async';
 
 import 'package:unittest/unittest.dart';
 
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index d7e0a58..63130a5 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -1463,6 +1463,46 @@
     expect(context.isServerLibrary(source), isFalse);
   }
 
+  void test_onResultInvalidated_removeSource() {
+    Source source = addSource('/test.dart', 'main() {}');
+    _analyzeAll_assertFinished();
+    // listen for changes
+    bool listenerInvoked = false;
+    context.onResultChanged(RESOLVED_UNIT).listen((ResultChangedEvent event) {
+      Source eventSource = event.target.source;
+      expect(event.wasComputed, isFalse);
+      expect(event.wasInvalidated, isTrue);
+      expect(event.descriptor, RESOLVED_UNIT);
+      expect(eventSource, source);
+      listenerInvoked = true;
+    });
+    // apply changes
+    expect(listenerInvoked, false);
+    context.applyChanges(new ChangeSet()..removedSource(source));
+    // verify
+    expect(listenerInvoked, isTrue);
+  }
+
+  void test_onResultInvalidated_setContents() {
+    Source source = addSource('/test.dart', 'main() {}');
+    _analyzeAll_assertFinished();
+    // listen for changes
+    bool listenerInvoked = false;
+    context.onResultChanged(RESOLVED_UNIT).listen((ResultChangedEvent event) {
+      Source eventSource = event.target.source;
+      expect(event.wasComputed, isFalse);
+      expect(event.wasInvalidated, isTrue);
+      expect(event.descriptor, RESOLVED_UNIT);
+      expect(eventSource, source);
+      listenerInvoked = true;
+    });
+    // apply changes
+    expect(listenerInvoked, false);
+    context.setContents(source, 'class B {}');
+    // verify
+    expect(listenerInvoked, isTrue);
+  }
+
   void test_parseCompilationUnit_errors() {
     Source source = addSource("/lib.dart", "library {");
     CompilationUnit compilationUnit = context.parseCompilationUnit(source);
@@ -1930,20 +1970,26 @@
 //    JUnitTestCase.assertNotNullMsg("performAnalysisTask failed to compute an element model", _context.getLibraryElement(source));
   }
 
-  void test_performAnalysisTask_onResultComputed() {
+  void test_performAnalysisTask_onResultChanged() {
     Set<String> libraryElementUris = new Set<String>();
     Set<String> parsedUnitUris = new Set<String>();
     Set<String> resolvedUnitUris = new Set<String>();
     // listen
-    context.onResultComputed(LIBRARY_ELEMENT).listen((event) {
+    context.onResultChanged(LIBRARY_ELEMENT).listen((event) {
+      expect(event.wasComputed, isTrue);
+      expect(event.wasInvalidated, isFalse);
       Source librarySource = event.target;
       libraryElementUris.add(librarySource.uri.toString());
     });
-    context.onResultComputed(PARSED_UNIT).listen((event) {
+    context.onResultChanged(PARSED_UNIT).listen((event) {
+      expect(event.wasComputed, isTrue);
+      expect(event.wasInvalidated, isFalse);
       Source source = event.target;
       parsedUnitUris.add(source.uri.toString());
     });
-    context.onResultComputed(RESOLVED_UNIT).listen((event) {
+    context.onResultChanged(RESOLVED_UNIT).listen((event) {
+      expect(event.wasComputed, isTrue);
+      expect(event.wasInvalidated, isFalse);
       LibrarySpecificUnit target = event.target;
       Source librarySource = target.library;
       resolvedUnitUris.add(librarySource.uri.toString());
diff --git a/pkg/analyzer/test/src/dart/element/element_test.dart b/pkg/analyzer/test/src/dart/element/element_test.dart
index f907ae3..080c544 100644
--- a/pkg/analyzer/test/src/dart/element/element_test.dart
+++ b/pkg/analyzer/test/src/dart/element/element_test.dart
@@ -1969,7 +1969,7 @@
     FunctionTypeAliasElementImpl f =
         ElementFactory.functionTypeAliasElement('f');
     ClassElementImpl c = ElementFactory.classElement2('C', ['T']);
-    f.returnType = c.type.substitute4([f.type]);
+    f.returnType = c.type.instantiate([f.type]);
     expect(f.type.toString(), '() \u2192 C<...>');
   }
 
@@ -2757,8 +2757,8 @@
     ClassElement classB = ElementFactory.classElement2("B");
     DartType dynamicType = DynamicTypeImpl.instance;
     InterfaceType typeAOfDynamic =
-        classA.type.substitute4(<DartType>[dynamicType]);
-    InterfaceType typeAOfB = classA.type.substitute4(<DartType>[classB.type]);
+        classA.type.instantiate(<DartType>[dynamicType]);
+    InterfaceType typeAOfB = classA.type.instantiate(<DartType>[classB.type]);
     expect(typeAOfDynamic.isMoreSpecificThan(typeAOfB), isFalse);
     expect(typeAOfB.isMoreSpecificThan(typeAOfDynamic), isTrue);
   }
@@ -2895,8 +2895,8 @@
     ClassElement classB = ElementFactory.classElement2("B");
     DartType dynamicType = DynamicTypeImpl.instance;
     InterfaceType typeAOfDynamic =
-        classA.type.substitute4(<DartType>[dynamicType]);
-    InterfaceType typeAOfB = classA.type.substitute4(<DartType>[classB.type]);
+        classA.type.instantiate(<DartType>[dynamicType]);
+    InterfaceType typeAOfB = classA.type.instantiate(<DartType>[classB.type]);
     expect(typeAOfDynamic.isSubtypeOf(typeAOfB), isTrue);
     expect(typeAOfB.isSubtypeOf(typeAOfDynamic), isTrue);
   }
@@ -2982,7 +2982,7 @@
     ClassElement classJ = ElementFactory.classElement("J", classI.type);
     ClassElement classK = ElementFactory.classElement2("K");
     InterfaceType typeA = classA.type;
-    InterfaceType typeA_dynamic = typeA.substitute4(<DartType>[dynamicType]);
+    InterfaceType typeA_dynamic = typeA.instantiate(<DartType>[dynamicType]);
     InterfaceTypeImpl typeAI = new InterfaceTypeImpl(classA);
     InterfaceTypeImpl typeAJ = new InterfaceTypeImpl(classA);
     InterfaceTypeImpl typeAK = new InterfaceTypeImpl(classA);
@@ -3963,7 +3963,7 @@
   void test_resolveToBound_bound() {
     ClassElementImpl classS = ElementFactory.classElement2("A");
     TypeParameterElementImpl element =
-    new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
+        new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
     element.bound = classS.type;
     TypeParameterTypeImpl type = new TypeParameterTypeImpl(element);
     expect(type.resolveToBound(null), same(classS.type));
@@ -3972,11 +3972,11 @@
   void test_resolveToBound_nestedBound() {
     ClassElementImpl classS = ElementFactory.classElement2("A");
     TypeParameterElementImpl elementE =
-    new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
+        new TypeParameterElementImpl.forNode(AstFactory.identifier3("E"));
     elementE.bound = classS.type;
     TypeParameterTypeImpl typeE = new TypeParameterTypeImpl(elementE);
     TypeParameterElementImpl elementF =
-    new TypeParameterElementImpl.forNode(AstFactory.identifier3("F"));
+        new TypeParameterElementImpl.forNode(AstFactory.identifier3("F"));
     elementF.bound = typeE;
     TypeParameterTypeImpl typeF = new TypeParameterTypeImpl(elementE);
     expect(typeF.resolveToBound(null), same(classS.type));
diff --git a/pkg/analyzer/test/src/summary/index_unit_test.dart b/pkg/analyzer/test/src/summary/index_unit_test.dart
index bfa331f..83da4c2 100644
--- a/pkg/analyzer/test/src/summary/index_unit_test.dart
+++ b/pkg/analyzer/test/src/summary/index_unit_test.dart
@@ -139,6 +139,43 @@
     _assertDefinedName('V', IndexNameKind.topLevel, 'V = 42;');
   }
 
+  void test_hasAncestor_ClassDeclaration() {
+    _indexTestUnit('''
+class A {}
+class B1 extends A {}
+class B2 implements A {}
+class C1 extends B1 {}
+class C2 extends B2 {}
+class C3 implements B1 {}
+class C4 implements B2 {}
+class M extends Object with A {}
+''');
+    ClassElement classElementA = findElement("A");
+    assertThat(classElementA)
+      ..isAncestorOf('B1 extends A')
+      ..isAncestorOf('B2 implements A')
+      ..isAncestorOf('C1 extends B1')
+      ..isAncestorOf('C2 extends B2')
+      ..isAncestorOf('C3 implements B1')
+      ..isAncestorOf('C4 implements B2')
+      ..isAncestorOf('M extends Object with A');
+  }
+
+  void test_hasAncestor_ClassTypeAlias() {
+    _indexTestUnit('''
+class A {}
+class B extends A {}
+class C1 = Object with A;
+class C2 = Object with B;
+''');
+    ClassElement classElementA = findElement('A');
+    ClassElement classElementB = findElement('B');
+    assertThat(classElementA)
+      ..isAncestorOf('C1 = Object with A')
+      ..isAncestorOf('C2 = Object with B');
+    assertThat(classElementB)..isAncestorOf('C2 = Object with B');
+  }
+
   void test_isExtendedBy_ClassDeclaration() {
     _indexTestUnit('''
 class A {} // 1
@@ -146,8 +183,8 @@
 ''');
     ClassElement elementA = findElement('A');
     assertThat(elementA)
-      ..isExtendedAt('A {} // 2', true)
-      ..isReferencedAt('A {} // 2', true);
+      ..isExtendedAt('A {} // 2', false)
+      ..isReferencedAt('A {} // 2', false);
   }
 
   void test_isExtendedBy_ClassDeclaration_isQualified() {
@@ -181,6 +218,23 @@
 ''');
     ClassElement elementA = findElement('A');
     assertThat(elementA)
+      ..isExtendedAt('A with', false)
+      ..isReferencedAt('A with', false);
+  }
+
+  void test_isExtendedBy_ClassTypeAlias_isQualified() {
+    addSource(
+        '/lib.dart',
+        '''
+class A {}
+''');
+    _indexTestUnit('''
+import 'lib.dart' as p;
+class B {}
+class C = p.A with B;
+''');
+    ClassElement elementA = importedUnit().getType('A');
+    assertThat(elementA)
       ..isExtendedAt('A with', true)
       ..isReferencedAt('A with', true);
   }
@@ -192,8 +246,8 @@
 ''');
     ClassElement elementA = findElement('A');
     assertThat(elementA)
-      ..isImplementedAt('A {} // 2', true)
-      ..isReferencedAt('A {} // 2', true);
+      ..isImplementedAt('A {} // 2', false)
+      ..isReferencedAt('A {} // 2', false);
   }
 
   void test_isImplementedBy_ClassDeclaration_isQualified() {
@@ -220,8 +274,8 @@
 ''');
     ClassElement elementB = findElement('B');
     assertThat(elementB)
-      ..isImplementedAt('B; // 3', true)
-      ..isReferencedAt('B; // 3', true);
+      ..isImplementedAt('B; // 3', false)
+      ..isReferencedAt('B; // 3', false);
   }
 
   void test_isInvokedBy_FieldElement() {
@@ -345,8 +399,8 @@
 ''');
     ClassElement elementA = findElement('A');
     assertThat(elementA)
-      ..isMixedInAt('A {} // 2', true)
-      ..isReferencedAt('A {} // 2', true);
+      ..isMixedInAt('A {} // 2', false)
+      ..isReferencedAt('A {} // 2', false);
   }
 
   void test_isMixedInBy_ClassDeclaration_isQualified() {
@@ -369,7 +423,7 @@
 class B = Object with A; // 2
 ''');
     ClassElement elementA = findElement('A');
-    assertThat(elementA).isMixedInAt('A; // 2', true);
+    assertThat(elementA).isMixedInAt('A; // 2', false);
   }
 
   void test_isReferencedBy_ClassElement() {
@@ -540,6 +594,22 @@
     // No additional validation, but it should not fail with stack overflow.
   }
 
+  void test_isReferencedBy_ConstructorElement_namedOnlyWithDot() {
+    _indexTestUnit('''
+class A {
+  A.named() {}
+}
+main() {
+  new A.named();
+}
+''');
+    // has ".named()", but does not have "named()"
+    int offsetWithoutDot = findOffset('named();');
+    int offsetWithDot = findOffset('.named();');
+    expect(unitIndex.usedElementOffsets, isNot(contains(offsetWithoutDot)));
+    expect(unitIndex.usedElementOffsets, contains(offsetWithDot));
+  }
+
   void test_isReferencedBy_ConstructorElement_redirection() {
     _indexTestUnit('''
 class A {
@@ -882,6 +952,11 @@
 
   _ElementIndexAssert(this.test, this.element);
 
+  void isAncestorOf(String search, {int length}) {
+    test._assertHasRelation(element, IndexRelationKind.IS_ANCESTOR_OF,
+        test._expectedLocation(search, false, length: length));
+  }
+
   void isExtendedAt(String search, bool isQualified, {int length}) {
     test._assertHasRelation(element, IndexRelationKind.IS_EXTENDED_BY,
         test._expectedLocation(search, isQualified, length: length));
diff --git a/pkg/analyzer/test/src/summary/resynthesize_test.dart b/pkg/analyzer/test/src/summary/resynthesize_test.dart
index e163d04..d8951a3 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_test.dart
@@ -39,12 +39,6 @@
   Set<Source> otherLibrarySources = new Set<Source>();
   bool constantInitializersAreInvalid = false;
 
-  /**
-   * Determine the analysis options that should be used for this test.
-   */
-  AnalysisOptionsImpl createOptions() =>
-      new AnalysisOptionsImpl()..enableGenericMethods = true;
-
   void addLibrary(String uri) {
     otherLibrarySources.add(analysisContext2.sourceFactory.forUri(uri));
   }
@@ -458,7 +452,12 @@
         ConstructorName rConstructor = r.constructorName;
         expect(oConstructor, isNotNull, reason: desc);
         expect(rConstructor, isNotNull, reason: desc);
-        compareConstructorElements(
+        // Note: just compare rConstructor.staticElement and
+        // oConstructor.staticElement as elements, because we just want to
+        // check that they're pointing to the correct elements; we don't want
+        // to check that their constructor initializers match, because that
+        // could lead to infinite regress.
+        compareElements(
             rConstructor.staticElement, oConstructor.staticElement, desc);
         TypeName oType = oConstructor.type;
         TypeName rType = rConstructor.type;
@@ -517,10 +516,10 @@
       return;
     }
     compareExecutableElements(resynthesized, original, desc);
+    ConstructorElementImpl resynthesizedImpl =
+        getActualElement(resynthesized, desc);
+    ConstructorElementImpl originalImpl = getActualElement(original, desc);
     if (original.isConst) {
-      ConstructorElementImpl resynthesizedImpl =
-          getActualElement(resynthesized, desc);
-      ConstructorElementImpl originalImpl = getActualElement(original, desc);
       compareConstAstLists(resynthesizedImpl.constantInitializers,
           originalImpl.constantInitializers, desc);
     }
@@ -533,6 +532,8 @@
     checkPossibleMember(resynthesized, original, desc);
     expect(resynthesized.nameEnd, original.nameEnd, reason: desc);
     expect(resynthesized.periodOffset, original.periodOffset, reason: desc);
+    expect(resynthesizedImpl.isCycleFree, originalImpl.isCycleFree,
+        reason: desc);
   }
 
   void compareConstValues(
@@ -618,6 +619,8 @@
     expect(resynthesized.location, original.location, reason: desc);
     expect(resynthesized.name, original.name);
     expect(resynthesized.nameOffset, original.nameOffset, reason: desc);
+    expect(rImpl.codeOffset, oImpl.codeOffset, reason: desc);
+    expect(rImpl.codeLength, oImpl.codeLength, reason: desc);
     expect(resynthesized.documentationComment, original.documentationComment,
         reason: desc);
     expect(resynthesized.docRange, original.docRange, reason: desc);
@@ -1031,6 +1034,12 @@
   }
 
   /**
+   * Determine the analysis options that should be used for this test.
+   */
+  AnalysisOptionsImpl createOptions() =>
+      new AnalysisOptionsImpl()..enableGenericMethods = true;
+
+  /**
    * Serialize the given [library] into a summary.  Then create a
    * [_TestSummaryResynthesizer] which can deserialize it, along with any
    * references it makes to `dart:core`.
@@ -2513,6 +2522,32 @@
 ''');
   }
 
+  test_constructor_withCycles_const() {
+    checkLibrary('''
+class C {
+  final x;
+  const C() : x = const D();
+}
+class D {
+  final x;
+  const D() : x = const C();
+}
+''');
+  }
+
+  test_constructor_withCycles_nonConst() {
+    checkLibrary('''
+class C {
+  final x;
+  C() : x = new D();
+}
+class D {
+  final x;
+  D() : x = new C();
+}
+''');
+  }
+
   test_core() {
     if (createOptions().strongMode) {
       // The fake `dart:core` library is always in spec mode, so don't bother
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index 9427cd6..23b0a29 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -1076,6 +1076,11 @@
     expect(cls.hasNoSupertype, isFalse);
   }
 
+  test_class_codeRange() {
+    UnlinkedClass cls = serializeClassText(' class C {}');
+    _assertCodeRange(cls.codeRange, 1, 10);
+  }
+
   test_class_concrete() {
     UnlinkedClass cls = serializeClassText('class C {}');
     expect(cls.isAbstract, false);
@@ -3800,6 +3805,49 @@
     expect(executable.returnType, isNull);
   }
 
+  test_constructor_withCycles_const() {
+    serializeLibraryText('''
+class C {
+  final x;
+  const C() : x = const D();
+}
+class D {
+  final x;
+  const D() : x = const C();
+}
+class E {
+  final x;
+  const E() : x = null;
+}
+''');
+    int classCConstCycleSlot = findClass('C').executables[0].constCycleSlot;
+    expect(classCConstCycleSlot, isNot(0));
+    int classDConstCycleSlot = findClass('D').executables[0].constCycleSlot;
+    expect(classDConstCycleSlot, isNot(0));
+    int classEConstCycleSlot = findClass('E').executables[0].constCycleSlot;
+    expect(classEConstCycleSlot, isNot(0));
+    if (!skipFullyLinkedData) {
+      expect(definingUnit.constCycles, contains(classCConstCycleSlot));
+      expect(definingUnit.constCycles, contains(classDConstCycleSlot));
+      expect(definingUnit.constCycles, isNot(contains(classEConstCycleSlot)));
+    }
+  }
+
+  test_constructor_withCycles_nonConst() {
+    serializeLibraryText('''
+class C {
+  final x;
+  C() : x = new D();
+}
+class D {
+  final x;
+  D() : x = new C();
+}
+''');
+    expect(findClass('C').executables[0].constCycleSlot, 0);
+    expect(findClass('D').executables[0].constCycleSlot, 0);
+  }
+
   test_dependencies_export_to_export_unused() {
     addNamedSource('/a.dart', 'export "b.dart";');
     addNamedSource('/b.dart', '');
@@ -3967,6 +4015,7 @@
     expect(e.values, hasLength(1));
     expect(e.values[0].name, 'v1');
     expect(e.values[0].nameOffset, text.indexOf('v1'));
+    _assertCodeRange(e.codeRange, 0, 13);
     expect(unlinkedUnits[0].publicNamespace.names, hasLength(1));
     expect(unlinkedUnits[0].publicNamespace.names[0].kind,
         ReferenceKind.classOrEnum);
@@ -4367,6 +4416,7 @@
     expect(executable.isExternal, isFalse);
     expect(executable.visibleOffset, 0);
     expect(executable.visibleLength, 0);
+    _assertCodeRange(executable.codeRange, 10, 6);
   }
 
   test_executable_member_function_explicit_return() {
@@ -4390,6 +4440,7 @@
     expect(executable.kind, UnlinkedExecutableKind.getter);
     expect(executable.returnType, isNotNull);
     expect(executable.isExternal, isFalse);
+    _assertCodeRange(executable.codeRange, 10, 15);
     expect(findVariable('f', variables: cls.fields), isNull);
     expect(findExecutable('f=', executables: cls.executables), isNull);
   }
@@ -4408,6 +4459,7 @@
     expect(executable.kind, UnlinkedExecutableKind.setter);
     expect(executable.returnType, isNotNull);
     expect(executable.isExternal, isFalse);
+    _assertCodeRange(executable.codeRange, 10, 20);
     expect(findVariable('f', variables: cls.fields), isNull);
     expect(findExecutable('f', executables: cls.executables), isNull);
   }
@@ -4529,6 +4581,12 @@
     expect(executable.name, '<=');
   }
 
+  test_executable_param_codeRange() {
+    UnlinkedExecutable executable = serializeExecutableText('f(int x) {}');
+    UnlinkedParam parameter = executable.parameters[0];
+    _assertCodeRange(parameter.codeRange, 2, 5);
+  }
+
   test_executable_param_function_typed() {
     if (!checkAstDerivedData) {
       // TODO(paulberry): this test fails when building the summary from the
@@ -6751,6 +6809,13 @@
     checkDynamicTypeRef(serializeTypeText('dynamic'));
   }
 
+  test_type_param_codeRange() {
+    UnlinkedClass cls =
+        serializeClassText('class A {} class C<T extends A> {}');
+    UnlinkedTypeParam typeParameter = cls.typeParameters[0];
+    _assertCodeRange(typeParameter.codeRange, 19, 11);
+  }
+
   test_type_param_not_shadowed_by_constructor() {
     UnlinkedClass cls =
         serializeClassText('class C<D> { D x; C.D(); } class D {}');
@@ -7009,6 +7074,11 @@
     checkUnresolvedTypeRef(typeRef, null, 'Foo');
   }
 
+  test_typedef_codeRange() {
+    UnlinkedTypedef type = serializeTypedefText('typedef F();');
+    _assertCodeRange(type.codeRange, 0, 12);
+  }
+
   test_typedef_documented() {
     String text = '''
 // Extra comment so doc comment offset != 0
@@ -7093,6 +7163,12 @@
     expect(type.typeParameters[1].name, 'U');
   }
 
+  test_unit_codeRange() {
+    serializeLibraryText('  int a = 1;  ');
+    UnlinkedUnit unit = unlinkedUnits[0];
+    _assertCodeRange(unit.codeRange, 0, 14);
+  }
+
   test_unresolved_reference_in_multiple_parts() {
     addNamedSource('/a.dart', 'part of foo; int x; Unresolved y;');
     serializeLibraryText('library foo; part "a.dart"; Unresolved z;',
@@ -7134,6 +7210,13 @@
     expect(unlinkedUnits[0].publicNamespace.names[1].numTypeParameters, 0);
   }
 
+  test_variable_codeRange() {
+    serializeLibraryText(' int a = 1, b = 22;');
+    List<UnlinkedVariable> variables = unlinkedUnits[0].variables;
+    _assertCodeRange(variables[0].codeRange, 1, 18);
+    _assertCodeRange(variables[1].codeRange, 1, 18);
+  }
+
   test_variable_const() {
     UnlinkedVariable variable =
         serializeVariableText('const int i = 0;', variableName: 'i');
@@ -7383,6 +7466,12 @@
     }
   }
 
+  void _assertCodeRange(CodeRange codeRange, int offset, int length) {
+    expect(codeRange, isNotNull);
+    expect(codeRange.offset, offset);
+    expect(codeRange.length, length);
+  }
+
   void _assertExecutableVisible(String code, UnlinkedExecutable f,
       String visibleBegin, String visibleEnd) {
     int expectedVisibleOffset = code.indexOf(visibleBegin);
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index 4bfe3521..9f75d5d 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -1714,7 +1714,6 @@
     ''');
     });
 
-
     test('inferred generic instantiation', () {
       checkFile('''
 import 'dart:math' as math;
@@ -1836,6 +1835,22 @@
     ''');
     });
 
+    // Regression test for crash when adding genericity
+    test('handle override of non-generic with generic', () {
+      checkFile('''
+class C {
+  m(x) => x;
+}
+class D extends C {
+  /*=T*/ m/*<T>*/(/*=T*/ x) => x;
+}
+main() {
+  int y = /*info:DYNAMIC_CAST*/(new D() as C).m(42);
+  print(y);
+}
+    ''');
+    });
+
     test('correctly recognize generic upper bound', () {
       // Regression test for https://github.com/dart-lang/sdk/issues/25740.
       checkFile(r'''
@@ -1893,7 +1908,6 @@
 }
       ''');
     });
-
   });
 
   // Regression test for https://github.com/dart-lang/dev_compiler/issues/47
@@ -1939,6 +1953,17 @@
     ''');
   });
 
+  test('list literals should not infer bottom', () {
+    var unit = checkFile(r'''
+test1() {
+  var x = [null];
+  x.add(42);
+}
+    ''');
+    var x = unit.element.functions[0].localVariables[0];
+    expect(x.type.toString(), 'List<dynamic>');
+  });
+
   test('map literals', () {
     checkFile(r'''
 test1() {
@@ -1963,6 +1988,17 @@
     ''');
   });
 
+  test('map literals should not infer bottom', () {
+    var unit = checkFile(r'''
+test1() {
+  var x = { null: null };
+  x[3] = 'z';
+}
+
+    ''');
+    var x = unit.element.functions[0].localVariables[0];
+    expect(x.type.toString(), 'Map<dynamic, dynamic>');
+  });
 
   group('block bodied lambdas', () {
     // Original feature request: https://github.com/dart-lang/sdk/issues/25487
diff --git a/pkg/analyzer/tool/task_dependency_graph/generate.dart b/pkg/analyzer/tool/task_dependency_graph/generate.dart
index 9b960f3..766ca03 100644
--- a/pkg/analyzer/tool/task_dependency_graph/generate.dart
+++ b/pkg/analyzer/tool/task_dependency_graph/generate.dart
@@ -151,9 +151,9 @@
     resultDescriptorType = modelElement
         .getType('ResultDescriptor')
         .type
-        .substitute4([dynamicType]);
+        .instantiate([dynamicType]);
     listOfResultDescriptorType =
-        context.typeProvider.listType.substitute4([resultDescriptorType]);
+        context.typeProvider.listType.instantiate([resultDescriptorType]);
     CompilationUnitElement enginePluginUnitElement =
         getUnit(enginePluginSource).element;
     enginePluginClass = enginePluginUnitElement.getType('EnginePlugin');
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 85c53ee..dc40c0d 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -271,6 +271,10 @@
     if (options.enableSuperMixins != _previousOptions.enableSuperMixins) {
       return false;
     }
+    if (options.enableConditionalDirectives !=
+        _previousOptions.enableConditionalDirectives) {
+      return false;
+    }
     return true;
   }
 
@@ -579,6 +583,8 @@
     contextOptions.hint = !options.disableHints;
     contextOptions.enableStrictCallChecks = options.enableStrictCallChecks;
     contextOptions.enableSuperMixins = options.enableSuperMixins;
+    contextOptions.enableConditionalDirectives =
+        options.enableConditionalDirectives;
     contextOptions.generateImplicitErrors = options.showPackageWarnings;
     contextOptions.generateSdkErrors = options.showSdkWarnings;
     contextOptions.lint = options.lints;
diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
index 732fc63..ec62ce3 100644
--- a/pkg/analyzer_cli/lib/src/options.dart
+++ b/pkg/analyzer_cli/lib/src/options.dart
@@ -45,6 +45,9 @@
   /// Whether to display version information
   final bool displayVersion;
 
+  /// Whether to enable conditional directives (DEP 40).
+  final bool enableConditionalDirectives;
+
   /// Whether to enable null-aware operators (DEP 9).
   final bool enableNullAwareOperators;
 
@@ -86,6 +89,9 @@
   /// Mapping of package names to package summary file paths.
   final Map<String, String> packageSummaryInputs;
 
+  /// Whether to skip analysis when creating summaries.
+  final bool packageSummaryOnly;
+
   /// The path to find the package summary.
   final String packageSummaryOutput;
 
@@ -125,6 +131,7 @@
         analysisOptionsFile = args['options'],
         disableHints = args['no-hints'],
         displayVersion = args['version'],
+        enableConditionalDirectives = args['enable-conditional-directives'],
         enableNullAwareOperators = args['enable-null-aware-operators'],
         enableStrictCallChecks = args['enable-strict-call-checks'],
         enableSuperMixins = args['supermixin'],
@@ -138,6 +145,7 @@
         packageModePath = args['package-mode-path'],
         packageName = args['package-name'],
         packageSummaryInputs = _parsePackageSummaryInputs(args),
+        packageSummaryOnly = args['package-summary-only'],
         packageSummaryOutput = args['package-summary-output'],
         packageConfigPath = args['packages'],
         packageRootPath = args['package-root'],
@@ -313,6 +321,11 @@
           help: 'Specifies the path to the file where the summary information '
               'about the package should be written to.',
           hide: true)
+      ..addFlag('package-summary-only',
+          help: 'Disable analysis (only generate summaries).',
+          defaultsTo: false,
+          negatable: false,
+          hide: true)
       //
       // Hidden flags.
       //
@@ -326,6 +339,11 @@
           defaultsTo: false,
           negatable: false,
           hide: true)
+      ..addFlag('enable-conditional-directives',
+          help: 'Enable support for conditional directives (DEP 40).',
+          defaultsTo: false,
+          negatable: false,
+          hide: true)
       ..addFlag('enable-null-aware-operators',
           help: 'Enable support for null-aware operators (DEP 9).',
           defaultsTo: false,
diff --git a/pkg/analyzer_cli/lib/src/package_analyzer.dart b/pkg/analyzer_cli/lib/src/package_analyzer.dart
index 746c77a..418db25 100644
--- a/pkg/analyzer_cli/lib/src/package_analyzer.dart
+++ b/pkg/analyzer_cli/lib/src/package_analyzer.dart
@@ -45,7 +45,9 @@
    * Perform package analysis according to the given [options].
    */
   ErrorSeverity analyze() {
-    packagePath = options.packageModePath;
+    packagePath = resourceProvider.pathContext.normalize(resourceProvider
+        .pathContext
+        .join(io.Directory.current.absolute.path, options.packageModePath));
     packageLibPath = resourceProvider.pathContext.join(packagePath, 'lib');
     if (packageLibPath == null) {
       errorSink.writeln('--package-mode-path must be set to the root '
@@ -66,7 +68,6 @@
     ChangeSet changeSet = new ChangeSet();
     for (String path in options.sourceFiles) {
       if (AnalysisEngine.isDartFileName(path)) {
-        path = resourceProvider.pathContext.absolute(path);
         File file = resourceProvider.getFile(path);
         if (!file.exists) {
           errorSink.writeln('File not found: $path');
@@ -80,23 +81,26 @@
     }
     context.applyChanges(changeSet);
 
-    // Perform full analysis.
-    while (true) {
-      AnalysisResult analysisResult = context.performAnalysisTask();
-      if (!analysisResult.hasMoreWork) {
-        break;
+    if (!options.packageSummaryOnly) {
+      // Perform full analysis.
+      while (true) {
+        AnalysisResult analysisResult = context.performAnalysisTask();
+        if (!analysisResult.hasMoreWork) {
+          break;
+        }
       }
     }
 
     // Write summary for Dart libraries.
     if (options.packageSummaryOutput != null) {
       PackageBundleAssembler assembler = new PackageBundleAssembler();
-      for (Source source in context.librarySources) {
+      for (Source source in explicitSources) {
+        if (context.computeKindOf(source) != SourceKind.LIBRARY) {
+          continue;
+        }
         if (pathos.isWithin(packageLibPath, source.fullName)) {
-          LibraryElement libraryElement = context.getLibraryElement(source);
-          if (libraryElement != null) {
-            assembler.serializeLibraryElement(libraryElement);
-          }
+          LibraryElement libraryElement = context.computeLibraryElement(source);
+          assembler.serializeLibraryElement(libraryElement);
         }
       }
       // Write the whole package bundle.
@@ -105,9 +109,13 @@
       file.writeAsBytesSync(sdkBundle.toBuffer(), mode: io.FileMode.WRITE_ONLY);
     }
 
-    // Process errors.
-    _printErrors();
-    return _computeMaxSeverity();
+    if (options.packageSummaryOnly) {
+      return ErrorSeverity.NONE;
+    } else {
+      // Process errors.
+      _printErrors();
+      return _computeMaxSeverity();
+    }
   }
 
   ErrorSeverity _computeMaxSeverity() {
diff --git a/pkg/analyzer_cli/test/options_test.dart b/pkg/analyzer_cli/test/options_test.dart
index 1c6aa76..39e863a 100644
--- a/pkg/analyzer_cli/test/options_test.dart
+++ b/pkg/analyzer_cli/test/options_test.dart
@@ -25,6 +25,7 @@
         expect(options.displayVersion, isFalse);
         expect(options.enableStrictCallChecks, isFalse);
         expect(options.enableSuperMixins, isFalse);
+        expect(options.enableConditionalDirectives, isFalse);
         expect(options.enableTypeChecks, isFalse);
         expect(options.hintsAreFatal, isFalse);
         expect(options.ignoreUnrecognizedFlags, isFalse);
diff --git a/pkg/compiler/lib/src/apiimpl.dart b/pkg/compiler/lib/src/apiimpl.dart
index 73bbc60..31ce5a8 100644
--- a/pkg/compiler/lib/src/apiimpl.dart
+++ b/pkg/compiler/lib/src/apiimpl.dart
@@ -126,6 +126,7 @@
             useStartupEmitter: hasOption(options, Flags.fastStartup),
             enableConditionalDirectives:
                 hasOption(options, Flags.conditionalDirectives),
+            useNewSourceInfo: hasOption(options, Flags.useNewSourceInfo),
             hasIncrementalSupport:
                 forceIncrementalSupport ||
                 hasOption(options, Flags.incrementalSupport),
diff --git a/pkg/compiler/lib/src/commandline_options.dart b/pkg/compiler/lib/src/commandline_options.dart
index fdb8ca2..6223f3b 100644
--- a/pkg/compiler/lib/src/commandline_options.dart
+++ b/pkg/compiler/lib/src/commandline_options.dart
@@ -44,6 +44,7 @@
       '--experimental-trust-js-interop-type-annotations';
   static const String useContentSecurityPolicy = '--csp';
   static const String useCpsIr = '--use-cps-ir';
+  static const String useNewSourceInfo = '--use-new-source-info';
   static const String verbose = '--verbose';
   static const String version = '--version';
 
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 3df2ba4..79ff968 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -455,6 +455,7 @@
             this.dumpInfo: false,
             bool useStartupEmitter: false,
             bool enableConditionalDirectives: false,
+            bool useNewSourceInfo: false,
             this.useContentSecurityPolicy: false,
             bool hasIncrementalSupport: false,
             this.enableExperimentalMirrors: false,
@@ -502,7 +503,8 @@
       js_backend.JavaScriptBackend jsBackend =
           new js_backend.JavaScriptBackend(
               this, generateSourceMap: generateSourceMap,
-              useStartupEmitter: useStartupEmitter);
+              useStartupEmitter: useStartupEmitter,
+              useNewSourceInfo: useNewSourceInfo);
       backend = jsBackend;
     } else {
       backend = new dart_backend.DartBackend(this, strips,
diff --git a/pkg/compiler/lib/src/constants/values.dart b/pkg/compiler/lib/src/constants/values.dart
index fde5cde..3b0ed7d 100644
--- a/pkg/compiler/lib/src/constants/values.dart
+++ b/pkg/compiler/lib/src/constants/values.dart
@@ -389,6 +389,7 @@
   DartType getType(CoreTypes types) => types.stringType;
 
   bool operator ==(var other) {
+    if (identical(this, other)) return true;
     if (other is !StringConstantValue) return false;
     StringConstantValue otherString = other;
     return hashCode == otherString.hashCode &&
@@ -461,6 +462,7 @@
   bool get isList => true;
 
   bool operator ==(var other) {
+    if (identical(this, other)) return true;
     if (other is !ListConstantValue) return false;
     ListConstantValue otherList = other;
     if (hashCode != otherList.hashCode) return false;
@@ -525,6 +527,7 @@
   bool get isMap => true;
 
   bool operator ==(var other) {
+    if (identical(this, other)) return true;
     if (other is !MapConstantValue) return false;
     MapConstantValue otherMap = other;
     if (hashCode != otherMap.hashCode) return false;
@@ -661,6 +664,7 @@
   bool get isConstructedObject => true;
 
   bool operator ==(var otherVar) {
+    if (identical(this, otherVar)) return true;
     if (otherVar is !ConstructedConstantValue) return false;
     ConstructedConstantValue other = otherVar;
     if (hashCode != other.hashCode) return false;
diff --git a/pkg/compiler/lib/src/cps_ir/backward_null_check_remover.dart b/pkg/compiler/lib/src/cps_ir/backward_null_check_remover.dart
index de027ec..41bb65e 100644
--- a/pkg/compiler/lib/src/cps_ir/backward_null_check_remover.dart
+++ b/pkg/compiler/lib/src/cps_ir/backward_null_check_remover.dart
@@ -59,7 +59,7 @@
     if (prim is SetField) return prim.object;
     if (prim is SetIndex) return prim.object;
     if (prim is InvokeMethod && !selectorsOnNull.contains(prim.selector)) {
-      return prim.dartReceiver;
+      return prim.receiver;
     }
     if (prim is ForeignCode) {
       return prim.isNullGuardOnNullFirstArgument() ? prim.argument(0) : null;
diff --git a/pkg/compiler/lib/src/cps_ir/bounds_checker.dart b/pkg/compiler/lib/src/cps_ir/bounds_checker.dart
index b357c99..1197012 100644
--- a/pkg/compiler/lib/src/cps_ir/bounds_checker.dart
+++ b/pkg/compiler/lib/src/cps_ir/bounds_checker.dart
@@ -632,9 +632,9 @@
       // was not rewritten to GetLength.  But if we can prove that the call only
       // succeeds for indexables, we can trust that it returns the length.
       TypeMask successType =
-          types.receiverTypeFor(node.selector, node.dartReceiver.type);
+          types.receiverTypeFor(node.selector, node.receiver.type);
       if (types.isDefinitelyIndexable(successType)) {
-        valueOf[node] = getLength(node.dartReceiver, currentEffectNumber);
+        valueOf[node] = getLength(node.receiver, currentEffectNumber);
       }
     }
   }
diff --git a/pkg/compiler/lib/src/cps_ir/cps_fragment.dart b/pkg/compiler/lib/src/cps_ir/cps_fragment.dart
index f30375a..c84e9a9 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_fragment.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_fragment.dart
@@ -132,11 +132,13 @@
       Selector selector,
       TypeMask mask,
       List<Primitive> arguments,
-      [CallingConvention callingConvention = CallingConvention.Normal]) {
+      {Primitive interceptor,
+       CallingConvention callingConvention}) {
     InvokeMethod invoke =
         new InvokeMethod(receiver, selector, mask, arguments,
                          sourceInformation: sourceInformation,
-                         callingConvention: callingConvention);
+                         callingConvention: callingConvention,
+                         interceptor: interceptor);
     return letPrim(invoke);
   }
 
@@ -276,11 +278,15 @@
   ///
   /// The [target] function is destroyed and should not be reused.
   Primitive inlineFunction(FunctionDefinition target,
-                           Primitive thisArgument,
+                           Primitive receiver,
                            List<Primitive> arguments,
-                           {Entity hint}) {
-    if (thisArgument != null) {
-      target.thisParameter.replaceUsesWith(thisArgument);
+                           {Entity hint,
+                            Primitive interceptor}) {
+    if (interceptor != null) {
+      target.interceptorParameter.replaceUsesWith(interceptor);
+    }
+    if (receiver != null) {
+      target.receiverParameter.replaceUsesWith(receiver);
     }
     for (int i = 0; i < arguments.length; ++i) {
       target.parameters[i].replaceUsesWith(arguments[i]);
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 95fa11a..3bc7032 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
@@ -855,14 +855,16 @@
   /// 1. Call [buildFunctionHeader].
   /// 2. Call `buildXXX` methods to build the body.
   /// 3. Call [makeFunctionDefinition] to finish.
-  ir.FunctionDefinition makeFunctionDefinition() {
+  ir.FunctionDefinition makeFunctionDefinition(
+      SourceInformation sourceInformation) {
     _ensureReturn();
     return new ir.FunctionDefinition(
         state.currentElement,
         state.thisParameter,
         state.functionParameters,
         state.returnContinuation,
-        root);
+        root,
+        sourceInformation: sourceInformation);
   }
 
   /// Create a invocation of the [method] on the super class where the call
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 cfea55a..6b19607 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
@@ -487,7 +487,8 @@
           sourceInformation:
           sourceInformationBuilder.buildImplicitReturn(constructor));
 
-      return irBuilder.makeFunctionDefinition();
+      return irBuilder.makeFunctionDefinition(
+          sourceInformationBuilder.buildVariableDeclaration());
     });
   }
 
@@ -738,7 +739,8 @@
       irBuilder.buildConstructorBodyHeader(getConstructorBodyParameters(body),
           getClosureScopeForNode(node));
       visit(node.body);
-      return irBuilder.makeFunctionDefinition();
+      return irBuilder.makeFunctionDefinition(
+          sourceInformationBuilder.buildVariableDeclaration());
     });
   }
 
@@ -781,7 +783,8 @@
           value: initialValue,
           sourceInformation:
           sourceInformationBuilder.buildReturn(sendSet.assignmentOperator));
-      return irBuilder.makeFunctionDefinition();
+      return irBuilder.makeFunctionDefinition(
+          sourceInformationBuilder.buildVariableDeclaration());
     });
   }
 
@@ -952,7 +955,8 @@
     } else {
       visit(node.body);
     }
-    return irBuilder.makeFunctionDefinition();
+    return irBuilder.makeFunctionDefinition(
+        sourceInformationBuilder.buildVariableDeclaration());
   }
 
   /// Builds the IR for creating an instance of the closure class corresponding
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_integrity.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_integrity.dart
index 8fb65a2..efdc27f 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_integrity.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_integrity.dart
@@ -134,9 +134,13 @@
 
   @override
   visitFunctionDefinition(FunctionDefinition node) {
-    if (node.thisParameter != null) {
-      handleDeclaration(node.thisParameter);
-      enterScope([node.thisParameter]);
+    if (node.interceptorParameter != null) {
+      handleDeclaration(node.interceptorParameter);
+      enterScope([node.interceptorParameter]);
+    }
+    if (node.receiverParameter != null) {
+      handleDeclaration(node.receiverParameter);
+      enterScope([node.receiverParameter]);
     }
     node.parameters.forEach(handleDeclaration);
     enterScope(node.parameters);
@@ -181,6 +185,19 @@
     }
   }
 
+  @override
+  processInvokeMethod(InvokeMethod node) {
+    if (node.callingConvention == CallingConvention.Intercepted) {
+      if (node.interceptorRef == null) {
+        error('No interceptor on intercepted call', node);
+      }
+    } else {
+      if (node.interceptorRef != null) {
+        error('Interceptor on call with ${node.callingConvention}', node);
+      }
+    }
+  }
+
   void checkReferenceChain(Definition def) {
     Reference previous = null;
     for (Reference ref = def.firstRef; ref != null; ref = ref.next) {
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 61a5ddd..9649268 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
@@ -65,14 +65,15 @@
   ///
   /// Avoid using nodes as keys if there is a chance that two keys are the
   /// same node.
-  String debugString([Map annotations]) {
+  String debugString([Map annotations = const {}]) {
     return new SExpressionStringifier()
         .withAnnotations(annotations)
+        .withTypes()
         .visit(this);
   }
 
   /// Prints the result of [debugString].
-  void debugPrint([Map annotations]) {
+  void debugPrint([Map annotations = const {}]) {
     print(debugString(annotations));
   }
 }
@@ -416,18 +417,27 @@
 /// continuation to invoke when returning from the function.
 class FunctionDefinition extends InteriorNode {
   final ExecutableElement element;
-  final Parameter thisParameter;
+  Parameter interceptorParameter;
+  final Parameter receiverParameter;
   final List<Parameter> parameters;
   final Continuation returnContinuation;
+  final SourceInformation sourceInformation;
   Expression body;
 
-  FunctionDefinition(this.element, this.thisParameter, this.parameters,
-      this.returnContinuation, this.body);
+  FunctionDefinition(
+      this.element,
+      this.receiverParameter,
+      this.parameters,
+      this.returnContinuation,
+      this.body,
+      {this.interceptorParameter,
+       this.sourceInformation});
 
   accept(BlockVisitor visitor) => visitor.visitFunctionDefinition(this);
 
   void setParentPointers() {
-    if (thisParameter != null) thisParameter.parent = this;
+    if (interceptorParameter != null) interceptorParameter.parent = this;
+    if (receiverParameter != null) receiverParameter.parent = this;
     _setParentsOnNodes(parameters, this);
     returnContinuation.parent = this;
     if (body != null) body.parent = this;
@@ -491,6 +501,9 @@
 ///
 /// This class defines the common interface of function invocations.
 abstract class InvocationPrimitive extends UnsafePrimitive {
+  Reference<Primitive> get interceptorRef => null;
+  Primitive get interceptor => interceptorRef?.definition;
+
   Reference<Primitive> get receiverRef => null;
   Primitive get receiver => receiverRef?.definition;
 
@@ -498,30 +511,8 @@
   Primitive argument(int n) => argumentRefs[n].definition;
   Iterable<Primitive> get arguments => _dereferenceList(argumentRefs);
 
-  Reference<Primitive> get dartReceiverRef => null;
-  Primitive get dartReceiver => dartReceiverRef?.definition;
-
   CallingConvention get callingConvention => CallingConvention.Normal;
 
-  Reference<Primitive> dartArgumentReference(int n) {
-    switch (callingConvention) {
-      case CallingConvention.Normal:
-      case CallingConvention.OneShotIntercepted:
-        return argumentRefs[n];
-
-      case CallingConvention.Intercepted:
-      case CallingConvention.DummyIntercepted:
-        return argumentRefs[n + 1];
-    }
-  }
-
-  Primitive dartArgument(int n) => dartArgumentReference(n).definition;
-
-  int get dartArgumentsLength =>
-      argumentRefs.length -
-      (callingConvention == CallingConvention.Intercepted ||
-          callingConvention == CallingConvention.DummyIntercepted ? 1 : 0);
-
   SourceInformation get sourceInformation;
 }
 
@@ -565,35 +556,56 @@
 /// The [selector] records the names of named arguments. The value of named
 /// arguments occur at the end of the [arguments] list, in normalized order.
 class InvokeMethod extends InvocationPrimitive {
+  Reference<Primitive> interceptorRef;
   Reference<Primitive> receiverRef;
   Selector selector;
   TypeMask mask;
   final List<Reference<Primitive>> argumentRefs;
   final SourceInformation sourceInformation;
+  CallingConvention _callingConvention;
 
-  CallingConvention callingConvention = CallingConvention.Normal;
-
-  Reference<Primitive> get dartReceiverRef {
-    return callingConvention == CallingConvention.Intercepted
-        ? argumentRefs[0]
-        : receiverRef;
-  }
+  CallingConvention get callingConvention => _callingConvention;
 
   InvokeMethod(
       Primitive receiver, this.selector, this.mask, List<Primitive> arguments,
       {this.sourceInformation,
-      this.callingConvention: CallingConvention.Normal})
+       CallingConvention callingConvention,
+       Primitive interceptor})
       : this.receiverRef = new Reference<Primitive>(receiver),
-        this.argumentRefs = _referenceList(arguments);
+        this.argumentRefs = _referenceList(arguments),
+        this.interceptorRef = _optionalReference(interceptor),
+        this._callingConvention = callingConvention ??
+            (interceptor != null
+                ? CallingConvention.Intercepted
+                : CallingConvention.Normal);
 
   accept(Visitor visitor) => visitor.visitInvokeMethod(this);
 
   bool get hasValue => true;
 
   void setParentPointers() {
+    interceptorRef?.parent = this;
     receiverRef.parent = this;
     _setParentsOnList(argumentRefs, this);
   }
+
+  void makeIntercepted(Primitive interceptor) {
+    interceptorRef?.unlink();
+    interceptorRef = new Reference<Primitive>(interceptor)..parent = this;
+    _callingConvention = CallingConvention.Intercepted;
+  }
+
+  void makeOneShotIntercepted() {
+    interceptorRef?.unlink();
+    interceptorRef = null;
+    _callingConvention = CallingConvention.OneShotIntercepted;
+  }
+
+  void makeDummyIntercepted() {
+    interceptorRef?.unlink();
+    interceptorRef = null;
+    _callingConvention = CallingConvention.DummyIntercepted;
+  }
 }
 
 /// Invoke [target] on [receiver], bypassing dispatch and override semantics.
@@ -616,37 +628,37 @@
 /// All optional arguments declared by [target] are passed in explicitly, and
 /// occur at the end of [arguments] list, in normalized order.
 class InvokeMethodDirectly extends InvocationPrimitive {
+  Reference<Primitive> interceptorRef;
   Reference<Primitive> receiverRef;
   final FunctionElement target;
   final Selector selector;
   final List<Reference<Primitive>> argumentRefs;
   final SourceInformation sourceInformation;
 
-  CallingConvention callingConvention;
-
-  Reference<Primitive> get dartReceiverRef {
-    return callingConvention == CallingConvention.Intercepted
-        ? argumentRefs[0]
-        : receiverRef;
-  }
-
   InvokeMethodDirectly(Primitive receiver, this.target, this.selector,
       List<Primitive> arguments, this.sourceInformation,
-      {this.callingConvention: CallingConvention.Normal})
+      {Primitive interceptor})
       : this.receiverRef = new Reference<Primitive>(receiver),
-        this.argumentRefs = _referenceList(arguments);
+        this.argumentRefs = _referenceList(arguments),
+        this.interceptorRef = _optionalReference(interceptor);
 
   accept(Visitor visitor) => visitor.visitInvokeMethodDirectly(this);
 
   bool get hasValue => true;
 
   void setParentPointers() {
+    interceptorRef?.parent = this;
     receiverRef.parent = this;
     _setParentsOnList(argumentRefs, this);
   }
 
   bool get isConstructorBodyCall => target is ConstructorBodyElement;
   bool get isTearOff => selector.isGetter && !target.isGetter;
+
+  void makeIntercepted(Primitive interceptor) {
+    interceptorRef?.unlink();
+    interceptorRef = new Reference<Primitive>(interceptor)..parent = this;
+  }
 }
 
 /// Non-const call to a constructor.
@@ -2273,7 +2285,8 @@
   processFunctionDefinition(FunctionDefinition node) {}
   visitFunctionDefinition(FunctionDefinition node) {
     processFunctionDefinition(node);
-    if (node.thisParameter != null) visit(node.thisParameter);
+    if (node.interceptorParameter != null) visit(node.interceptorParameter);
+    if (node.receiverParameter != null) visit(node.receiverParameter);
     node.parameters.forEach(visit);
     visit(node.body);
   }
@@ -2331,6 +2344,9 @@
   processInvokeMethod(InvokeMethod node) {}
   visitInvokeMethod(InvokeMethod node) {
     processInvokeMethod(node);
+    if (node.interceptorRef != null) {
+      processReference(node.interceptorRef);
+    }
     processReference(node.receiverRef);
     node.argumentRefs.forEach(processReference);
   }
@@ -2338,6 +2354,9 @@
   processInvokeMethodDirectly(InvokeMethodDirectly node) {}
   visitInvokeMethodDirectly(InvokeMethodDirectly node) {
     processInvokeMethodDirectly(node);
+    if (node.interceptorRef != null) {
+      processReference(node.interceptorRef);
+    }
     processReference(node.receiverRef);
     node.argumentRefs.forEach(processReference);
   }
@@ -2626,7 +2645,8 @@
 
   visitFunctionDefinition(FunctionDefinition node) {
     processFunctionDefinition(node);
-    if (node.thisParameter != null) visit(node.thisParameter);
+    if (node.interceptorParameter != null) visit(node.interceptorParameter);
+    if (node.receiverParameter != null) visit(node.receiverParameter);
     node.parameters.forEach(visit);
     visit(node.body);
   }
@@ -2775,13 +2795,14 @@
     return new InvokeMethod(getCopy(node.receiverRef), node.selector, node.mask,
         getList(node.argumentRefs),
         sourceInformation: node.sourceInformation,
-        callingConvention: node.callingConvention);
+        callingConvention: node.callingConvention,
+        interceptor: getCopyOrNull(node.interceptorRef));
   }
 
   Definition visitInvokeMethodDirectly(InvokeMethodDirectly node) {
     return new InvokeMethodDirectly(getCopy(node.receiverRef), node.target,
         node.selector, getList(node.argumentRefs), node.sourceInformation,
-        callingConvention: node.callingConvention);
+        interceptor: getCopyOrNull(node.interceptorRef));
   }
 
   Definition visitInvokeConstructor(InvokeConstructor node) {
@@ -3007,9 +3028,12 @@
     _first = _current = null;
     // Definitions are copied where they are bound, before processing
     // expressions in the scope of their binding.
-    Parameter thisParameter = node.thisParameter == null
+    Parameter thisParameter = node.receiverParameter == null
         ? null
-        : _definitions.copy(node.thisParameter);
+        : _definitions.copy(node.receiverParameter);
+    Parameter interceptorParameter = node.interceptorParameter == null
+        ? null
+        : _definitions.copy(node.interceptorParameter);
     List<Parameter> parameters =
         node.parameters.map(_definitions.copy).toList();
     // Though the return continuation's parameter does not have any uses,
@@ -3022,7 +3046,9 @@
 
     visit(node.body);
     FunctionDefinition copy = new FunctionDefinition(
-        node.element, thisParameter, parameters, returnContinuation, _first);
+        node.element, thisParameter, parameters, returnContinuation, _first,
+        interceptorParameter: interceptorParameter,
+        sourceInformation: node.sourceInformation);
     _first = _current = null;
     return copy;
   }
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 4c39e16..5dad783 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
@@ -98,18 +98,21 @@
     return decorator(node, s);
   }
 
-  String formatThisParameter(Parameter thisParameter) {
-    return thisParameter == null ? '()' : '(${visit(thisParameter)})';
+  String formatOptionalParameter(Parameter parameter) {
+    return parameter == null ? '()' : '(${visit(parameter)})';
   }
 
   String visitFunctionDefinition(FunctionDefinition node) {
     String name = node.element.name;
-    String thisParameter = formatThisParameter(node.thisParameter);
+    String interceptorParameter =
+        formatOptionalParameter(node.interceptorParameter);
+    String thisParameter = formatOptionalParameter(node.receiverParameter);
     String parameters = node.parameters.map(visit).join(' ');
     namer.setReturnContinuation(node.returnContinuation);
     String body = indentBlock(() => visit(node.body));
     return '$indentation'
-        '(FunctionDefinition $name $thisParameter ($parameters) return\n'
+        '(FunctionDefinition $name $interceptorParameter $thisParameter '
+        '($parameters) return\n'
         '$body)';
   }
 
@@ -179,10 +182,6 @@
       List<Reference<Primitive>> arguments,
       [CallingConvention callingConvention = CallingConvention.Normal]) {
     int positionalArgumentCount = call.positionalArgumentCount;
-    if (callingConvention == CallingConvention.Intercepted ||
-        callingConvention == CallingConvention.DummyIntercepted) {
-      ++positionalArgumentCount;
-    }
     List<String> args =
         arguments.take(positionalArgumentCount).map(access).toList();
     List<String> argumentNames = call.getOrderedNamedArguments();
@@ -206,18 +205,20 @@
 
   String visitInvokeMethod(InvokeMethod node) {
     String name = node.selector.name;
-    String rcv = access(node.receiverRef);
-    String args = formatArguments(node.selector.callStructure, node.argumentRefs,
-        node.callingConvention);
-    return '(InvokeMethod $rcv $name $args)';
+    String interceptor = optionalAccess(node.interceptorRef);
+    String receiver = access(node.receiverRef);
+    String arguments = formatArguments(node.selector.callStructure,
+        node.argumentRefs, node.callingConvention);
+    return '(InvokeMethod $interceptor $receiver $name $arguments)';
   }
 
   String visitInvokeMethodDirectly(InvokeMethodDirectly node) {
+    String interceptor = optionalAccess(node.interceptorRef);
     String receiver = access(node.receiverRef);
     String name = node.selector.name;
-    String args = formatArguments(node.selector.callStructure, node.argumentRefs,
-        node.callingConvention);
-    return '(InvokeMethodDirectly $receiver $name $args)';
+    String arguments = formatArguments(node.selector.callStructure,
+        node.argumentRefs, node.callingConvention);
+    return '(InvokeMethodDirectly $interceptor $receiver $name $arguments)';
   }
 
   String visitInvokeConstructor(InvokeConstructor node) {
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 1c7779b..8a53864 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
@@ -84,11 +84,14 @@
           return '${names.name(param)} ${param.type}';
         }
         if (entryPoint != null) {
-          String thisParam = entryPoint.thisParameter != null
-              ? formatParameter(entryPoint.thisParameter)
+          String thisParam = entryPoint.receiverParameter != null
+              ? formatParameter(entryPoint.receiverParameter)
               : 'no receiver';
+          String interceptorParam = entryPoint.interceptorParameter != null
+              ? formatParameter(entryPoint.interceptorParameter)
+              : 'no interceptor';
           String params = entryPoint.parameters.map(formatParameter).join(', ');
-          printStmt('x0', 'Entry ($thisParam) ($params)');
+          printStmt('x0', 'Entry ($interceptorParam) ($thisParam) ($params)');
         }
         String params = block.parameters.map(formatParameter).join(', ');
         printStmt('x0', 'Parameters ($params)');
diff --git a/pkg/compiler/lib/src/cps_ir/inline.dart b/pkg/compiler/lib/src/cps_ir/inline.dart
index 6c9f30c..076e809 100644
--- a/pkg/compiler/lib/src/cps_ir/inline.dart
+++ b/pkg/compiler/lib/src/cps_ir/inline.dart
@@ -185,6 +185,11 @@
   Inliner(this.functionCompiler);
 
   bool isCalledOnce(Element element) {
+    if (element is ConstructorBodyElement) {
+      ClassElement class_ = element.enclosingClass;
+      return !functionCompiler.compiler.world.hasAnyStrictSubclass(class_) &&
+          class_.constructors.tail?.isEmpty ?? false;
+    }
     return functionCompiler.compiler.typesTask.typesInferrer.isCalledOnce(
         element);
   }
@@ -222,14 +227,12 @@
 class SizeVisitor extends TrampolineRecursiveVisitor {
   int size = 0;
 
-  void countArgument(Reference<Primitive> argument, Parameter parameter) {
+  void countArgument(Primitive argument, Parameter parameter) {
     // If a parameter is unused and the corresponding argument has only the
     // one use at the invocation, then inlining the call might enable
     // elimination of the argument.  This 'pays for itself' by decreasing the
     // cost of inlining at the call site.
-    if (argument != null &&
-        argument.definition.hasExactlyOneUse &&
-        parameter.hasNoUses) {
+    if (argument != null && argument.hasExactlyOneUse && parameter.hasNoUses) {
       --size;
     }
   }
@@ -237,9 +240,15 @@
   static int sizeOf(InvocationPrimitive invoke, FunctionDefinition function) {
     SizeVisitor visitor = new SizeVisitor();
     visitor.visit(function);
-    visitor.countArgument(invoke.receiverRef, function.thisParameter);
+    if (invoke.callingConvention == CallingConvention.Intercepted) {
+      // Note that if the invocation is a dummy-intercepted call, then the
+      // target has an unused interceptor parameter, but the caller provides
+      // no interceptor argument.
+      visitor.countArgument(invoke.interceptor, function.interceptorParameter);
+    }
+    visitor.countArgument(invoke.receiver, function.receiverParameter);
     for (int i = 0; i < invoke.argumentRefs.length; ++i) {
-      visitor.countArgument(invoke.argumentRefs[i], function.parameters[i]);
+      visitor.countArgument(invoke.argument(i), function.parameters[i]);
     }
     return visitor.size;
   }
@@ -285,7 +294,6 @@
   }
 }
 
-
 class InliningVisitor extends TrampolineRecursiveVisitor {
   final Inliner _inliner;
 
@@ -328,8 +336,8 @@
     return next;
   }
 
-  TypeMask abstractType(Reference<Primitive> ref) {
-    return ref.definition.type ?? typeSystem.dynamicType;
+  TypeMask abstractType(Primitive def) {
+    return def.type ?? typeSystem.dynamicType;
   }
 
   /// Build the IR term for the function that adapts a call site targeting a
@@ -337,6 +345,9 @@
   FunctionDefinition buildAdapter(InvokeMethod node, FunctionElement target) {
     Parameter thisParameter = new Parameter(new ThisParameterLocal(target))
         ..type = node.receiver.type;
+    Parameter interceptorParameter = node.interceptorRef != null
+        ? new Parameter(null)
+        : null;
     List<Parameter> parameters = new List<Parameter>.generate(
         node.argumentRefs.length,
         (int index) {
@@ -349,10 +360,6 @@
 
     FunctionSignature signature = target.functionSignature;
     int requiredParameterCount = signature.requiredParameterCount;
-    if (node.callingConvention == CallingConvention.Intercepted ||
-        node.callingConvention == CallingConvention.DummyIntercepted) {
-      ++requiredParameterCount;
-    }
     List<Primitive> arguments = new List<Primitive>.generate(
         requiredParameterCount,
         (int index) => parameters[index]);
@@ -396,14 +403,19 @@
     Selector newSelector =
         new Selector(node.selector.kind, node.selector.memberName,
             newCallStructure);
-    Primitive result = cps.invokeMethod(thisParameter, newSelector, node.mask,
-        arguments, node.callingConvention);
+    Primitive result = cps.invokeMethod(thisParameter,
+        newSelector,
+        node.mask,
+        arguments,
+        interceptor: interceptorParameter,
+        callingConvention: node.callingConvention);
     result.type = typeSystem.getInvokeReturnType(node.selector, node.mask);
     returnContinuation.parameters.single.type = result.type;
     cps.invokeContinuation(returnContinuation, <Primitive>[result]);
     return new FunctionDefinition(target, thisParameter, parameters,
         returnContinuation,
-        cps.root);
+        cps.root,
+        interceptorParameter: interceptorParameter);
   }
 
   // Given an invocation and a known target, possibly perform inlining.
@@ -431,7 +443,7 @@
 
     // Don't inline methods that never return. They are usually helper functions
     // that throw an exception.
-    if (invoke.type.isEmpty && !invoke.type.isNullable) {
+    if (invoke.type.isEmpty) {
       // TODO(sra): It would be ok to inline if doing so was shrinking.
       return null;
     }
@@ -444,18 +456,18 @@
       return null;
     }
 
-    Reference<Primitive> dartReceiver = invoke.dartReceiverRef;
+    Primitive receiver = invoke.receiver;
     TypeMask abstractReceiver =
-        dartReceiver == null ? null : abstractType(dartReceiver);
+        receiver == null ? null : abstractType(receiver);
     // The receiver is non-null in a method body, unless the receiver is known
     // to be `null` (isEmpty covers `null` and unreachable).
     TypeMask abstractReceiverInMethod = abstractReceiver == null
         ? null
-        : abstractReceiver.isEmpty
+        : abstractReceiver.isEmptyOrNull
             ? abstractReceiver
             : abstractReceiver.nonNullable();
     List<TypeMask> abstractArguments =
-        invoke.argumentRefs.map(abstractType).toList();
+        invoke.arguments.map(abstractType).toList();
     var cachedResult = _inliner.cache.get(target, callStructure,
         abstractReceiverInMethod,
         abstractArguments);
@@ -469,17 +481,12 @@
       List<Primitive> arguments = invoke.arguments.toList();
       // Add a null check to the inlined function body if necessary.  The
       // cached function body does not contain the null check.
-      if (dartReceiver != null && abstractReceiver.isNullable) {
-        Primitive check = nullReceiverGuard(
-            invoke, _fragment, dartReceiver.definition, abstractReceiver);
-        if (invoke.callingConvention == CallingConvention.Intercepted) {
-          arguments[0] = check;
-        } else {
-          receiver = check;
-        }
+      if (receiver != null && abstractReceiver.isNullable) {
+        receiver = nullReceiverGuard(
+            invoke, _fragment, receiver, abstractReceiver);
       }
       return _fragment.inlineFunction(function, receiver, arguments,
-          hint: invoke.hint);
+            interceptor: invoke.interceptor, hint: invoke.hint);
     }
 
     // Positive inlining result in the cache.
@@ -513,22 +520,11 @@
       }
     } else {
       function = compileToCpsIr(target);
-      void setValue(Variable variable, Reference<Primitive> value) {
-        variable.type = value.definition.type;
+      if (function.receiverParameter != null) {
+        function.receiverParameter.type = abstractReceiverInMethod;
       }
-      if (invoke.callingConvention == CallingConvention.Intercepted) {
-        setValue(function.thisParameter, invoke.receiverRef);
-        function.parameters[0].type = abstractReceiverInMethod;
-        for (int i = 1; i < invoke.argumentRefs.length; ++i) {
-          setValue(function.parameters[i], invoke.argumentRefs[i]);
-        }
-      } else {
-        if (invoke.receiverRef != null) {
-          function.thisParameter.type = abstractReceiverInMethod;
-        }
-        for (int i = 0; i < invoke.argumentRefs.length; ++i) {
-          setValue(function.parameters[i], invoke.argumentRefs[i]);
-        }
+      for (int i = 0; i < invoke.argumentRefs.length; ++i) {
+        function.parameters[i].type = invoke.argument(i).type;
       }
       optimizeBeforeInlining(function);
     }
@@ -582,7 +578,7 @@
 
   @override
   Primitive visitInvokeMethod(InvokeMethod node) {
-    Primitive receiver = node.dartReceiver;
+    Primitive receiver = node.receiver;
     Element element = world.locateSingleElement(node.selector, receiver.type);
     if (element == null || element is! FunctionElement) return null;
     if (node.selector.isGetter != element.isGetter) return null;
diff --git a/pkg/compiler/lib/src/cps_ir/insert_refinements.dart b/pkg/compiler/lib/src/cps_ir/insert_refinements.dart
index ef291b1..d5412c6 100644
--- a/pkg/compiler/lib/src/cps_ir/insert_refinements.dart
+++ b/pkg/compiler/lib/src/cps_ir/insert_refinements.dart
@@ -73,10 +73,6 @@
     let.insertAbove(use);
   }
 
-  Primitive unfoldInterceptor(Primitive prim) {
-    return prim is Interceptor ? prim.input : prim;
-  }
-
   /// Sets [refined] to be the current refinement for its value, and pushes an
   /// action that will restore the original scope again.
   ///
@@ -115,7 +111,7 @@
 
     // Note: node.dartArgumentsLength is shorter when the call doesn't include
     // some optional arguments.
-    int length = min(argumentSuccessTypes.length, node.dartArgumentsLength);
+    int length = min(argumentSuccessTypes.length, node.argumentRefs.length);
     for (int i = 0; i < length; i++) {
       TypeMask argSuccessType = argumentSuccessTypes[i];
 
@@ -123,7 +119,7 @@
       if (argSuccessType == types.dynamicType) continue;
 
       applyRefinement(node.parent,
-          new Refinement(node.dartArgument(i), argSuccessType));
+          new Refinement(node.argument(i), argSuccessType));
     }
   }
 
@@ -140,7 +136,7 @@
 
     // If the call is intercepted, we want to refine the actual receiver,
     // not the interceptor.
-    Primitive receiver = unfoldInterceptor(node.receiver);
+    Primitive receiver = node.receiver;
 
     // Do not try to refine the receiver of closure calls; the class world
     // does not know about closure classes.
@@ -237,8 +233,8 @@
     }
 
     if (condition is InvokeMethod && condition.selector == Selectors.equals) {
-      refineEquality(condition.dartReceiver,
-                     condition.dartArgument(0),
+      refineEquality(condition.receiver,
+                     condition.argument(0),
                      trueCont,
                      falseCont);
       return;
diff --git a/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart b/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart
index d9c59b6..9dd05c7b 100644
--- a/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart
+++ b/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart
@@ -104,7 +104,7 @@
     for (Reference ref = interceptor.firstRef; ref != null; ref = ref.next) {
       Node use = ref.parent;
       if (use is InvokeMethod) {
-        TypeMask type = use.dartReceiver.type;
+        TypeMask type = use.receiver.type;
         bool canOccurAsReceiver(ClassElement elem) {
           return classWorld.isInstantiated(elem) &&
               !typeSystem.areDisjoint(type,
@@ -137,7 +137,7 @@
     for (Reference ref = node.firstRef; ref != null; ref = ref.next) {
       if (ref.parent is InvokeMethod) {
         InvokeMethod invoke = ref.parent;
-        if (invoke.receiverRef != ref) return false;
+        if (invoke.interceptorRef != ref) return false;
         var interceptedClasses =
             backend.getInterceptedClassesOn(invoke.selector.name);
         if (interceptedClasses.contains(helpers.jsDoubleClass)) return false;
@@ -157,7 +157,7 @@
       Node use = ref.parent;
       if (use is InvokeMethod) {
         if (selectorsOnNull.contains(use.selector) &&
-            use.dartReceiver.type.isNullable) {
+            use.receiver.type.isNullable) {
           return true;
         }
       } else {
@@ -261,7 +261,7 @@
   @override
   void visitInvokeMethod(InvokeMethod node) {
     if (node.callingConvention != CallingConvention.Intercepted) return;
-    Primitive interceptor = node.receiver;
+    Primitive interceptor = node.interceptor;
     if (interceptor is! Interceptor ||
         interceptor.hasMultipleUses ||
         loopHeaderFor[interceptor] != currentLoopHeader) {
@@ -269,8 +269,7 @@
     }
     // TODO(asgerf): Consider heuristics for when to use one-shot interceptors.
     //   E.g. using only one-shot interceptors with a fast path.
-    node.callingConvention = CallingConvention.OneShotIntercepted;
-    node..receiverRef.unlink()..receiverRef = node.argumentRefs.removeAt(0);
+    node.makeOneShotIntercepted();
   }
 
   @override
diff --git a/pkg/compiler/lib/src/cps_ir/path_based_optimizer.dart b/pkg/compiler/lib/src/cps_ir/path_based_optimizer.dart
index aed13e6..e7c747f 100644
--- a/pkg/compiler/lib/src/cps_ir/path_based_optimizer.dart
+++ b/pkg/compiler/lib/src/cps_ir/path_based_optimizer.dart
@@ -157,27 +157,23 @@
   }
 
   void visitInvokeMethod(InvokeMethod node) {
-    int receiverValue = valueOf[node.dartReceiver] ?? ANY;
+    int receiverValue = valueOf[node.receiver] ?? ANY;
     if (!backend.isInterceptedSelector(node.selector)) {
       // Only self-interceptors can respond to a non-intercepted selector.
-      valueOf[node.dartReceiver] = receiverValue & SELF_INTERCEPTOR;
+      valueOf[node.receiver] = receiverValue & SELF_INTERCEPTOR;
     } else if (receiverValue & ~SELF_INTERCEPTOR == 0 &&
                node.callingConvention == CallingConvention.Intercepted) {
       // This is an intercepted call whose receiver is definitely a
       // self-interceptor.
       // TODO(25646): If TypeMasks could represent "any self-interceptor" this
       //   optimization should be subsumed by type propagation.
-      node.receiverRef.changeTo(node.dartReceiver);
+      node.interceptorRef.changeTo(node.receiver);
 
       // Replace the extra receiver argument with a dummy value if the
       // target definitely does not use it.
-      if (typeSystem.targetIgnoresReceiverArgument(node.dartReceiver.type,
+      if (typeSystem.targetIgnoresReceiverArgument(node.receiver.type,
             node.selector)) {
-        Constant dummy = new Constant(new IntConstantValue(0))
-            ..type = typeSystem.intType;
-        new LetPrim(dummy).insertAbove(node.parent);
-        node.argumentRefs[0].changeTo(dummy);
-        node.callingConvention = CallingConvention.DummyIntercepted;
+        node.makeDummyIntercepted();
       }
     }
   }
diff --git a/pkg/compiler/lib/src/cps_ir/type_mask_system.dart b/pkg/compiler/lib/src/cps_ir/type_mask_system.dart
index 2042320..b7a070e 100644
--- a/pkg/compiler/lib/src/cps_ir/type_mask_system.dart
+++ b/pkg/compiler/lib/src/cps_ir/type_mask_system.dart
@@ -281,7 +281,7 @@
       TypeMask computed = computeTypeMask(inferrer.compiler, constant);
       TypeMask inferred = inferrer.getGuaranteedTypeOfElement(element);
       TypeMask best = intersection(inferred, computed);
-      assert(!best.isEmpty);
+      assert(!best.isEmptyOrNull);
       _constantMasks[constant] = best;
     }
   }
diff --git a/pkg/compiler/lib/src/cps_ir/type_propagation.dart b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
index 6b09771..f665897 100644
--- a/pkg/compiler/lib/src/cps_ir/type_propagation.dart
+++ b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
@@ -968,7 +968,7 @@
     }
     // If a primitive has a value, but can't return anything, it must throw
     // or diverge.
-    return prim.hasValue && prim.type.isEmpty && !prim.type.isNullable;
+    return prim.hasValue && prim.type.isEmpty;
   }
 
   void visitContinuation(Continuation node) {
@@ -1160,7 +1160,7 @@
   /// Returns `true` if the node was replaced.
   specializeOperatorCall(InvokeMethod node) {
     if (!backend.isInterceptedSelector(node.selector)) return null;
-    if (node.dartArgumentsLength > 1) return null;
+    if (node.argumentRefs.length > 1) return null;
     if (node.callingConvention == CallingConvention.OneShotIntercepted) {
       return null;
     }
@@ -1178,11 +1178,11 @@
 
       // Determine which guards are needed.
       ChecksNeeded receiverChecks =
-          receiverGuard.getChecksNeeded(node.dartReceiver, classWorld);
+          receiverGuard.getChecksNeeded(node.receiver, classWorld);
       bool needReceiverGuard = receiverChecks != ChecksNeeded.None;
       bool needArgumentGuard =
           argumentGuard != null &&
-          argumentGuard.needsCheck(node.dartArgument(0), classWorld);
+          argumentGuard.needsCheck(node.argument(0), classWorld);
 
       if (!needReceiverGuard && !needArgumentGuard) return cps;
 
@@ -1193,9 +1193,9 @@
       //   if (typeof receiver !== "number") return receiver.$lt();
       //
       if (!needArgumentGuard) {
-        Primitive condition = receiverGuard.makeCheck(cps, node.dartReceiver);
+        Primitive condition = receiverGuard.makeCheck(cps, node.receiver);
         cps.letPrim(new ReceiverCheck(
-            node.dartReceiver,
+            node.receiver,
             node.selector,
             node.sourceInformation,
             condition: condition,
@@ -1214,9 +1214,9 @@
       //   if (typeof argument !== "number") return H.iae(argument);
       //
       if (!needReceiverGuard) {
-        cps.ifTruthy(argumentGuard.makeCheck(cps, node.dartArgument(0)))
+        cps.ifTruthy(argumentGuard.makeCheck(cps, node.argument(0)))
            .invokeStaticThrower(helpers.throwIllegalArgumentException,
-              [node.dartArgument(0)]);
+              [node.argument(0)]);
         return cps;
       }
 
@@ -1228,14 +1228,15 @@
       //       return J.$lt(receiver, argument);
       //
       Continuation fail = cps.letCont();
-      cps.ifTruthy(receiverGuard.makeCheck(cps, node.dartReceiver))
+      cps.ifTruthy(receiverGuard.makeCheck(cps, node.receiver))
          .invokeContinuation(fail);
-      cps.ifTruthy(argumentGuard.makeCheck(cps, node.dartArgument(0)))
+      cps.ifTruthy(argumentGuard.makeCheck(cps, node.argument(0)))
          .invokeContinuation(fail);
 
       cps.insideContinuation(fail)
-         ..invokeMethod(node.dartReceiver, node.selector, node.mask,
-             [node.dartArgument(0)], CallingConvention.OneShotIntercepted)
+         ..invokeMethod(node.receiver, node.selector, node.mask,
+             [node.argument(0)],
+             callingConvention: CallingConvention.OneShotIntercepted)
          ..put(new Unreachable());
 
       return cps;
@@ -1249,9 +1250,9 @@
     CpsFragment makeBinary(BuiltinOperator operator,
                            {TypeCheckOperator guard: TypeCheckOperator.none}) {
       CpsFragment cps = makeGuard(guard, guard);
-      Primitive left = guard.makeRefinement(cps, node.dartReceiver, classWorld);
+      Primitive left = guard.makeRefinement(cps, node.receiver, classWorld);
       Primitive right =
-          guard.makeRefinement(cps, node.dartArgument(0), classWorld);
+          guard.makeRefinement(cps, node.argument(0), classWorld);
       Primitive result = cps.applyBuiltin(operator, [left, right]);
       result.hint = node.hint;
       node.replaceUsesWith(result);
@@ -1264,7 +1265,7 @@
                           {TypeCheckOperator guard: TypeCheckOperator.none}) {
       CpsFragment cps = makeGuard(guard);
       Primitive argument =
-          guard.makeRefinement(cps, node.dartReceiver, classWorld);
+          guard.makeRefinement(cps, node.receiver, classWorld);
       Primitive result = cps.applyBuiltin(operator, [argument]);
       result.hint = node.hint;
       node.replaceUsesWith(result);
@@ -1284,15 +1285,16 @@
           node.mask,
           node.arguments.toList(),
           sourceInformation: node.sourceInformation,
-          callingConvention: node.callingConvention);
+          callingConvention: node.callingConvention,
+          interceptor: node.interceptor);
     }
 
     TypeMask successType =
-        typeSystem.receiverTypeFor(node.selector, node.dartReceiver.type);
+        typeSystem.receiverTypeFor(node.selector, node.receiver.type);
 
-    if (node.selector.isOperator && node.dartArgumentsLength == 1) {
-      Primitive leftArg = node.dartReceiver;
-      Primitive rightArg = node.dartArgument(0);
+    if (node.selector.isOperator && node.argumentRefs.length == 1) {
+      Primitive leftArg = node.receiver;
+      Primitive rightArg = node.argument(0);
       AbstractConstantValue left = getValue(leftArg);
       AbstractConstantValue right = getValue(rightArg);
 
@@ -1383,7 +1385,7 @@
         }
       }
     }
-    if (node.selector.isOperator && node.dartArgumentsLength == 0) {
+    if (node.selector.isOperator && node.argumentRefs.length == 0) {
       if (typeSystem.isDefinitelyNum(successType)) {
         String opname = node.selector.name;
         if (opname == '~') {
@@ -1396,11 +1398,11 @@
     }
     if (node.selector.isCall) {
       String name = node.selector.name;
-      Primitive receiver = node.dartReceiver;
+      Primitive receiver = node.receiver;
       AbstractConstantValue receiverValue = getValue(receiver);
       if (name == 'remainder') {
-        if (node.dartArgumentsLength == 1) {
-          Primitive arg = node.dartArgument(0);
+        if (node.argumentRefs.length == 1) {
+          Primitive arg = node.argument(0);
           AbstractConstantValue argValue = getValue(arg);
           if (lattice.isDefinitelyInt(receiverValue, allowNull: true) &&
               lattice.isDefinitelyInt(argValue) &&
@@ -1410,8 +1412,8 @@
           }
         }
       } else if (name == 'codeUnitAt') {
-        if (node.dartArgumentsLength == 1) {
-          Primitive index = node.dartArgument(0);
+        if (node.argumentRefs.length == 1) {
+          Primitive index = node.argument(0);
           if (lattice.isDefinitelyString(receiverValue) &&
               lattice.isDefinitelyInt(getValue(index))) {
             CpsFragment cps = new CpsFragment(node.sourceInformation);
@@ -1443,9 +1445,8 @@
   /// invocation with a direct access to a field.
   ///
   /// Returns `true` if the node was replaced.
-  Primitive specializeFieldAccess(InvokeMethod node) {
-    if (!node.selector.isGetter && !node.selector.isSetter) return null;
-    AbstractConstantValue receiver = getValue(node.dartReceiver);
+  specializeFieldAccess(InvokeMethod node) {
+    AbstractConstantValue receiver = getValue(node.receiver);
     Element target =
         typeSystem.locateSingleElement(receiver.type, node.selector);
     if (target is! FieldElement) return null;
@@ -1455,13 +1456,25 @@
       return null;
     }
     if (node.selector.isGetter) {
-      return new GetField(node.dartReceiver, target);
-    } else {
+      return new GetField(node.receiver, target);
+    } else if (node.selector.isSetter) {
       if (target.isFinal) return null;
       assert(node.hasNoUses);
-      return new SetField(node.dartReceiver,
+      return new SetField(node.receiver,
                           target,
-                          node.dartArgument(0));
+                          node.argument(0));
+    } else if (node.selector.isCall) {
+      CpsFragment cps = new CpsFragment(node.sourceInformation);
+      Primitive fieldValue = cps.letPrim(new GetField(node.receiver, target));
+      Primitive result = cps.invokeMethod(
+          fieldValue,
+          new Selector.callClosureFrom(node.selector),
+          typeSystem.getFieldType(target),
+          node.arguments.toList());
+      node.replaceUsesWith(result);
+      return cps;
+    } else {
+      return null;
     }
   }
 
@@ -1515,7 +1528,7 @@
   ///
   /// Returns `true` if the node was replaced.
   specializeIndexableAccess(InvokeMethod node) {
-    Primitive receiver = node.dartReceiver;
+    Primitive receiver = node.receiver;
     AbstractConstantValue receiverValue = getValue(receiver);
     if (!typeSystem.isDefinitelyIndexable(receiverValue.type,
             allowNull: true)) {
@@ -1532,7 +1545,7 @@
             return null;
           }
           CpsFragment cps = new CpsFragment(node.sourceInformation);
-          Primitive newLength = node.dartArgument(0);
+          Primitive newLength = node.argument(0);
           if (!typeSystem.isDefinitelyUint(newLength.type)) {
             // TODO(asgerf): We could let the SetLength instruction throw for
             // negative right-hand sides (see length setter in js_array.dart).
@@ -1557,7 +1570,7 @@
         return null;
 
       case '[]':
-        Primitive index = node.dartArgument(0);
+        Primitive index = node.argument(0);
         CpsFragment cps = new CpsFragment(node.sourceInformation);
         receiver = makeBoundsCheck(cps, receiver, index);
         GetIndex get = cps.letPrim(new GetIndex(receiver, index));
@@ -1571,8 +1584,8 @@
                 allowNull: true)) {
           return null;
         }
-        Primitive index = node.dartArgument(0);
-        Primitive value = node.dartArgument(1);
+        Primitive index = node.argument(0);
+        Primitive value = node.argument(1);
         CpsFragment cps = new CpsFragment(node.sourceInformation);
         receiver = makeBoundsCheck(cps, receiver, index);
         cps.letPrim(new SetIndex(receiver, index, value));
@@ -1610,7 +1623,7 @@
   ///
   /// Returns `true` if the node was replaced.
   CpsFragment specializeArrayAccess(InvokeMethod node) {
-    Primitive list = node.dartReceiver;
+    Primitive list = node.receiver;
     AbstractConstantValue listValue = getValue(list);
     // Ensure that the object is a native list or null.
     if (!lattice.isDefinitelyArray(listValue, allowNull: true)) {
@@ -1629,7 +1642,7 @@
           return null;
         }
         if (!isExtendable) return null;
-        Primitive addedItem = node.dartArgument(0);
+        Primitive addedItem = node.argument(0);
         CpsFragment cps = new CpsFragment(sourceInfo);
         cps.invokeBuiltin(BuiltinMethod.Push,
             list,
@@ -1661,7 +1674,7 @@
           return null;
         }
         if (!isExtendable) return null;
-        Primitive addedList = node.dartArgument(0);
+        Primitive addedList = node.argument(0);
         // Rewrite addAll([x1, ..., xN]) to push(x1), ..., push(xN).
         // Ensure that the list is not mutated between creation and use.
         // We aim for the common case where this is the only use of the list,
@@ -1688,7 +1701,7 @@
           return null;
         }
         if (listValue.isNullable) return null;
-        Primitive index = node.dartArgument(0);
+        Primitive index = node.argument(0);
         if (!lattice.isDefinitelyInt(getValue(index))) return null;
         CpsFragment cps = new CpsFragment(node.sourceInformation);
         list = makeBoundsCheck(cps, list, index);
@@ -1711,6 +1724,7 @@
         Primitive result = cps.inlineFunction(target,
             node.receiver,
             node.arguments.toList(),
+            interceptor: node.interceptor,
             hint: node.hint);
         node.replaceUsesWith(result);
         return cps;
@@ -1898,7 +1912,7 @@
     assert(!isInterceptedSelector(call));
     assert(call.argumentCount == node.argumentRefs.length);
 
-    Primitive tearOff = node.dartReceiver.effectiveDefinition;
+    Primitive tearOff = node.receiver.effectiveDefinition;
     // Note: We don't know if [tearOff] is actually a tear-off.
     // We name variables based on the pattern we are trying to match.
 
@@ -2028,7 +2042,7 @@
     // Accesses to closed-over values are field access primitives.  We we don't
     // inline if there are other uses of 'this' since that could be an escape or
     // a recursive call.
-    for (Reference ref = target.thisParameter.firstRef;
+    for (Reference ref = target.receiverParameter.firstRef;
          ref != null;
          ref = ref.next) {
       Node use = ref.parent;
@@ -2074,13 +2088,13 @@
     }
     node.effects =
         Effects.from(compiler.world.getSideEffectsOfElement(target));
-    TypeMask receiverType = node.dartReceiver.type;
+    TypeMask receiverType = node.receiver.type;
     if (node.callingConvention == CallingConvention.Intercepted &&
         typeSystem.areDisjoint(receiverType, typeSystem.interceptorType)) {
       // Some direct calls take an interceptor because the target class is
       // mixed into a native class.  If it is known at the call site that the
       // receiver is non-intercepted, get rid of the interceptor.
-      node.receiverRef.changeTo(node.dartReceiver);
+      node.interceptorRef.changeTo(node.receiver);
     }
   }
 
@@ -2094,7 +2108,7 @@
         specializeClosureCall(node);
     if (specialized != null) return specialized;
 
-    TypeMask receiverType = node.dartReceiver.type;
+    TypeMask receiverType = node.receiver.type;
     node.mask = typeSystem.intersection(node.mask, receiverType);
 
     node.effects = Effects.from(
@@ -2109,16 +2123,13 @@
         typeSystem.areDisjoint(receiverType, typeSystem.interceptorType)) {
       // Use the Dart receiver as the JS receiver. This changes the wording of
       // the error message when the receiver is null, but we accept this.
-      node.receiverRef.changeTo(node.dartReceiver);
+      node.interceptorRef.changeTo(node.receiver);
 
       // Replace the extra receiver argument with a dummy value if the
       // target definitely does not use it.
       if (typeSystem.targetIgnoresReceiverArgument(receiverType,
             node.selector)) {
-        Constant dummy = makeConstantPrimitive(new IntConstantValue(0));
-        new LetPrim(dummy).insertAbove(node.parent);
-        node.argumentRefs[0].changeTo(dummy);
-        node.callingConvention = CallingConvention.DummyIntercepted;
+        node.makeDummyIntercepted();
       }
     }
   }
@@ -2155,11 +2166,12 @@
             Selectors.toString_, value.type);
         if (typeSystem.isDefinitelyString(toStringReturn)) {
           CpsFragment cps = new CpsFragment(node.sourceInformation);
-          Primitive invoke = cps.invokeMethod(argument,
+          Primitive invoke = cps.invokeMethod(
+              argument,
               Selectors.toString_,
               value.type,
-              [cps.makeZero()],
-              CallingConvention.DummyIntercepted);
+              [],
+              callingConvention: CallingConvention.DummyIntercepted);
           node.replaceUsesWith(invoke);
           return cps;
         }
@@ -2680,38 +2692,25 @@
   void visit(Node node) { node.accept(this); }
 
   void visitFunctionDefinition(FunctionDefinition node) {
-    bool isIntercepted = backend.isInterceptedMethod(node.element);
-
+    if (node.interceptorParameter != null) {
+      setValue(node.interceptorParameter, nonConstant(typeSystem.nonNullType));
+    }
     // If the abstract value of the function parameters is Nothing, use the
     // inferred parameter type.  Otherwise (e.g., when inlining) do not
     // change the abstract value.
-    if (node.thisParameter != null && getValue(node.thisParameter).isNothing) {
-      if (isIntercepted &&
-          !typeSystem.methodIgnoresReceiverArgument(node.element)) {
-        setValue(node.thisParameter, nonConstant(typeSystem.nonNullType));
-      } else {
-        setValue(node.thisParameter,
-            nonConstant(typeSystem.getReceiverType(node.element)));
-      }
-    }
-    if (isIntercepted && getValue(node.parameters[0]).isNothing) {
-      if (typeSystem.methodIgnoresReceiverArgument(node.element)) {
-        setValue(node.parameters[0], nonConstant());
-      } else {
-        setValue(node.parameters[0],
-            nonConstant(typeSystem.getReceiverType(node.element)));
-      }
+    if (node.receiverParameter != null &&
+        getValue(node.receiverParameter).isNothing) {
+      setValue(node.receiverParameter,
+          nonConstant(typeSystem.getReceiverType(node.element)));
     }
     bool hasParameterWithoutValue = false;
-    for (Parameter param in node.parameters.skip(isIntercepted ? 1 : 0)) {
+    for (Parameter param in node.parameters) {
       if (getValue(param).isNothing) {
         TypeMask type = param.hint is ParameterElement
             ? typeSystem.getParameterType(param.hint)
             : typeSystem.dynamicType;
         setValue(param, lattice.fromMask(type));
-        if (type.isEmpty && !type.isNullable) {
-          hasParameterWithoutValue = true;
-        }
+        if (type.isEmpty) hasParameterWithoutValue = true;
       }
     }
     if (!hasParameterWithoutValue) { // Don't analyze unreachable code.
@@ -2775,7 +2774,7 @@
   }
 
   void visitInvokeMethod(InvokeMethod node) {
-    AbstractConstantValue receiver = getValue(node.dartReceiver);
+    AbstractConstantValue receiver = getValue(node.receiver);
     if (receiver.isNothing) {
       return setResult(node, lattice.nothing);
     }
@@ -2801,7 +2800,7 @@
 
     if (node.selector.isCall) {
       if (node.selector == Selectors.codeUnitAt) {
-        AbstractConstantValue right = getValue(node.dartArgument(0));
+        AbstractConstantValue right = getValue(node.argument(0));
         AbstractConstantValue result =
             lattice.codeUnitAtSpecial(receiver, right);
         return finish(result, canReplace: !receiver.isNullable);
@@ -2810,7 +2809,7 @@
     }
 
     if (node.selector == Selectors.index) {
-      AbstractConstantValue right = getValue(node.dartArgument(0));
+      AbstractConstantValue right = getValue(node.argument(0));
       AbstractConstantValue result = lattice.indexSpecial(receiver, right);
       return finish(result, canReplace: !receiver.isNullable);
     }
@@ -2821,7 +2820,7 @@
 
     // Calculate the resulting constant if possible.
     String opname = node.selector.name;
-    if (node.dartArgumentsLength == 0) {
+    if (node.argumentRefs.length == 0) {
       // Unary operator.
       if (opname == "unary-") {
         opname = "-";
@@ -2829,9 +2828,9 @@
       UnaryOperator operator = UnaryOperator.parse(opname);
       AbstractConstantValue result = lattice.unaryOp(operator, receiver);
       return finish(result, canReplace: !receiver.isNullable);
-    } else if (node.dartArgumentsLength == 1) {
+    } else if (node.argumentRefs.length == 1) {
       // Binary operator.
-      AbstractConstantValue right = getValue(node.dartArgument(0));
+      AbstractConstantValue right = getValue(node.argument(0));
       BinaryOperator operator = BinaryOperator.parse(opname);
       AbstractConstantValue result =
           lattice.binaryOp(operator, receiver, right);
@@ -3383,11 +3382,10 @@
 
   factory AbstractConstantValue.nonConstant(TypeMask type) {
     if (type.isEmpty) {
-      if (type.isNullable)
-        return new AbstractConstantValue.constantValue(
-            new NullConstantValue(), type);
-      else
-        return new AbstractConstantValue.nothing();
+      return new AbstractConstantValue.nothing();
+    } else if (type.isNull) {
+      return new AbstractConstantValue.constantValue(
+          new NullConstantValue(), type);
     } else {
       return new AbstractConstantValue._internal(NONCONST, null, type);
     }
diff --git a/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart b/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart
index 13d4c95..50dc24a 100644
--- a/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart
+++ b/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart
@@ -67,7 +67,7 @@
   ),  // Generated. Don't edit.
   MessageKind.CONSTRUCTOR_WITH_RETURN_TYPE: const MessageTemplate(
     MessageKind.CONSTRUCTOR_WITH_RETURN_TYPE,
-    "Constructors can't have a return type",
+    "Constructors can't have a return type.",
     howToFix: "Try removing the return type.",
     examples: const [
       "class A { int A() {} } main() { new A(); }",
@@ -84,7 +84,7 @@
   ),  // Generated. Don't edit.
   MessageKind.RETHROW_OUTSIDE_CATCH: const MessageTemplate(
     MessageKind.RETHROW_OUTSIDE_CATCH,
-    "Rethrow must be inside of catch clause",
+    "Rethrow must be inside of catch clause.",
     howToFix: "Try moving the expression into a catch clause, or using a 'throw' expression.",
     examples: const [
       "main() { rethrow; }",
@@ -108,7 +108,7 @@
   MessageKind.RETURN_IN_GENERATOR: const MessageTemplate(
     MessageKind.RETURN_IN_GENERATOR,
     "Can't return a value from a generator function (using the '#{modifier}' modifier).",
-    howToFix: "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier",
+    howToFix: "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier.",
     examples: const [
       r"""
         foo() async* { return 0; }
@@ -120,4 +120,113 @@
         """,
     ]
   ),  // Generated. Don't edit.
+  MessageKind.NOT_ASSIGNABLE: const MessageTemplate(
+    MessageKind.NOT_ASSIGNABLE,
+    "'#{fromType}' is not assignable to '#{toType}'."  ),  // Generated. Don't edit.
+  MessageKind.FORIN_NOT_ASSIGNABLE: const MessageTemplate(
+    MessageKind.FORIN_NOT_ASSIGNABLE,
+    "The element type '#{currentType}' of '#{expressionType}' is not assignable to '#{elementType}'.",
+    examples: const [
+      r"""
+        main() {
+          List<int> list = <int>[1, 2];
+          for (String x in list) x;
+        }
+        """,
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.CANNOT_RESOLVE: const MessageTemplate(
+    MessageKind.CANNOT_RESOLVE,
+    "Can't resolve '#{name}'."  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_METHOD: const MessageTemplate(
+    MessageKind.UNDEFINED_METHOD,
+    "The method '#{memberName}' is not defined for the class '#{className}'.",
+    examples: const [
+      r"""
+        class A {
+          foo() { bar(); }
+        }
+        main() { new A().foo(); }
+        """,
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_GETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_GETTER,
+    "The getter '#{memberName}' is not defined for the class '#{className}'.",
+    examples: const [
+      "class A {} main() { new A().x; }",
+      "class A {} main() { A.x; }",
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER,
+    "The setter '#{memberName}' in class '#{className}' can not be used as a getter.",
+    examples: const [
+      "class A { set x(y) {} } main() { new A().x; }",
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_OPERATOR: const MessageTemplate(
+    MessageKind.UNDEFINED_OPERATOR,
+    "The operator '#{memberName}' is not defined for the class '#{className}'.",
+    examples: const [
+      "class A {} main() { new A() + 3; }",
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_SETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_SETTER,
+    "The setter '#{memberName}' is not defined for the class '#{className}'.",
+    examples: const [
+      "class A {} main() { new A().x = 499; }",
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.NO_SUCH_SUPER_MEMBER: const MessageTemplate(
+    MessageKind.NO_SUCH_SUPER_MEMBER,
+    "Can't resolve '#{memberName}' in a superclass of '#{className}'."  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_SUPER_SETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_SUPER_SETTER,
+    "The setter '#{memberName}' is not defined in a superclass of '#{className}'.",
+    examples: const [
+      r"""
+        class A {}
+        class B extends A {
+          foo() { super.x = 499; }
+        }
+        main() { new B().foo(); }
+        """,
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER,
+    "Cannot resolve getter '#{name}'.",
+    examples: const [
+      "set foo(x) {}  main() { foo; }",
+    ]
+  ),  // Generated. Don't edit.
+  MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER: const MessageTemplate(
+    MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
+    "Cannot resolve setter '#{name}'.",
+    examples: const [
+      r"""
+        main() {
+          final x = 1;
+          x = 2;
+        }""",
+      r"""
+        main() {
+          const x = 1;
+          x = 2;
+        }
+        """,
+      r"""
+        final x = 1;
+        main() { x = 3; }
+        """,
+      r"""
+        const x = 1;
+        main() { x = 3; }
+        """,
+      "get foo => null  main() { foo = 5; }",
+      "const foo = 0  main() { foo = 5; }",
+    ]
+  ),  // Generated. Don't edit.
 };
diff --git a/pkg/compiler/lib/src/diagnostics/messages.dart b/pkg/compiler/lib/src/diagnostics/messages.dart
index 84e9cc2..7a80947 100644
--- a/pkg/compiler/lib/src/diagnostics/messages.dart
+++ b/pkg/compiler/lib/src/diagnostics/messages.dart
@@ -132,9 +132,9 @@
   CANNOT_RESOLVE_AWAIT_IN_CLOSURE,
   CANNOT_RESOLVE_CONSTRUCTOR,
   CANNOT_RESOLVE_CONSTRUCTOR_FOR_IMPLICIT,
-  CANNOT_RESOLVE_GETTER,
+  UNDEFINED_STATIC_GETTER_BUT_SETTER,
   CANNOT_RESOLVE_IN_INITIALIZER,
-  CANNOT_RESOLVE_SETTER,
+  UNDEFINED_STATIC_SETTER_BUT_GETTER,
   CANNOT_RESOLVE_TYPE,
   RETURN_IN_GENERATIVE_CONSTRUCTOR,
   CLASS_NAME_EXPECTED,
@@ -212,7 +212,7 @@
   FUNCTION_WITH_INITIALIZER,
   GENERIC,
   GETTER_MISMATCH,
-  GETTER_NOT_FOUND,
+  UNDEFINED_INSTANCE_GETTER_BUT_SETTER,
   HEX_DIGIT_EXPECTED,
   HIDDEN_HINTS,
   HIDDEN_IMPLICIT_IMPORT,
@@ -300,10 +300,10 @@
   MAIN_NOT_A_FUNCTION,
   MAIN_WITH_EXTRA_PARAMETER,
   MALFORMED_STRING_LITERAL,
-  MEMBER_NOT_FOUND,
+  UNDEFINED_GETTER,
   MEMBER_NOT_STATIC,
   MEMBER_USES_CLASS_NAME,
-  METHOD_NOT_FOUND,
+  UNDEFINED_METHOD,
   MINUS_OPERATOR_BAD_ARITY,
   MIRROR_BLOAT,
   MIRROR_IMPORT,
@@ -359,7 +359,7 @@
   NULL_NOT_ALLOWED,
   ONLY_ONE_LIBRARY_TAG,
   OPERATOR_NAMED_PARAMETERS,
-  OPERATOR_NOT_FOUND,
+  UNDEFINED_OPERATOR,
   OPERATOR_OPTIONAL_PARAMETERS,
   OPTIONAL_PARAMETER_IN_CATCH,
   OVERRIDE_EQUALS_NOT_HASH_CODE,
@@ -412,8 +412,8 @@
   RETURN_NOTHING,
   RETURN_VALUE_IN_VOID,
   SETTER_MISMATCH,
-  SETTER_NOT_FOUND,
-  SETTER_NOT_FOUND_IN_SUPER,
+  UNDEFINED_SETTER,
+  UNDEFINED_SUPER_SETTER,
   STATIC_FUNCTION_BLOAT,
   STRING_EXPECTED,
   SUPER_CALL_TO_FACTORY,
@@ -518,15 +518,6 @@
       MessageKind.GENERIC:
         const MessageTemplate(MessageKind.GENERIC, '#{text}'),
 
-      MessageKind.NOT_ASSIGNABLE:
-        const MessageTemplate(MessageKind.NOT_ASSIGNABLE,
-          "'#{fromType}' is not assignable to '#{toType}'."),
-
-      MessageKind.FORIN_NOT_ASSIGNABLE:
-        const MessageTemplate(MessageKind.FORIN_NOT_ASSIGNABLE,
-          "The element type '#{currentType}' of '#{expressionType}' "
-          "is not assignable to '#{elementType}'."),
-
       MessageKind.VOID_EXPRESSION:
         const MessageTemplate(MessageKind.VOID_EXPRESSION,
           "Expression does not yield a value."),
@@ -555,10 +546,6 @@
         const MessageTemplate(MessageKind.NAMED_ARGUMENT_NOT_FOUND,
           "No named argument '#{argumentName}' found on method."),
 
-      MessageKind.MEMBER_NOT_FOUND:
-        const MessageTemplate(MessageKind.MEMBER_NOT_FOUND,
-          "No member named '#{memberName}' in class '#{className}'."),
-
       MessageKind.AWAIT_MEMBER_NOT_FOUND:
         const MessageTemplate(MessageKind.AWAIT_MEMBER_NOT_FOUND,
           "No member named 'await' in class '#{className}'.",
@@ -583,26 +570,6 @@
 main() => new A().m();
 """]),
 
-      MessageKind.METHOD_NOT_FOUND:
-        const MessageTemplate(MessageKind.METHOD_NOT_FOUND,
-          "No method named '#{memberName}' in class '#{className}'."),
-
-      MessageKind.OPERATOR_NOT_FOUND:
-        const MessageTemplate(MessageKind.OPERATOR_NOT_FOUND,
-          "No operator '#{memberName}' in class '#{className}'."),
-
-      MessageKind.SETTER_NOT_FOUND:
-        const MessageTemplate(MessageKind.SETTER_NOT_FOUND,
-          "No setter named '#{memberName}' in class '#{className}'."),
-
-      MessageKind.SETTER_NOT_FOUND_IN_SUPER:
-        const MessageTemplate(MessageKind.SETTER_NOT_FOUND_IN_SUPER,
-          "No setter named '#{name}' in superclass of '#{className}'."),
-
-      MessageKind.GETTER_NOT_FOUND:
-        const MessageTemplate(MessageKind.GETTER_NOT_FOUND,
-          "No getter named '#{memberName}' in class '#{className}'."),
-
       MessageKind.NOT_CALLABLE:
         const MessageTemplate(MessageKind.NOT_CALLABLE,
           "'#{elementName}' is not callable."),
@@ -1652,10 +1619,6 @@
         const MessageTemplate(MessageKind.ILLEGAL_SUPER_SEND,
           "'#{name}' cannot be called on super."),
 
-      MessageKind.NO_SUCH_SUPER_MEMBER:
-        const MessageTemplate(MessageKind.NO_SUCH_SUPER_MEMBER,
-          "Cannot resolve '#{memberName}' in a superclass of '#{className}'."),
-
       MessageKind.ADDITIONAL_TYPE_ARGUMENT:
         const MessageTemplate(MessageKind.ADDITIONAL_TYPE_ARGUMENT,
           "Additional type argument."),
@@ -1896,12 +1859,8 @@
         const MessageTemplate(MessageKind.PARAMETER_NAME_EXPECTED,
           "parameter name expected."),
 
-      MessageKind.CANNOT_RESOLVE_GETTER:
-        const MessageTemplate(MessageKind.CANNOT_RESOLVE_GETTER,
-          "Cannot resolve getter."),
-
-      MessageKind.CANNOT_RESOLVE_SETTER:
-        const MessageTemplate(MessageKind.CANNOT_RESOLVE_SETTER,
+      MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER:
+        const MessageTemplate(MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
           "Cannot resolve setter."),
 
       MessageKind.ASSIGNING_FINAL_FIELD_IN_SUPER:
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
index 4ff72ab..68cf701 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
@@ -553,7 +553,7 @@
     }
 
     TypeMask newType = null;
-    for (TypeMask mask in masks) {
+    for (TypeMask mask in list) {
       newType = newType == null ? mask : newType.union(mask, classWorld);
       // Likewise - stop early if we already reach dynamic.
       if (newType.containsAll(classWorld)) return dynamicType;
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
index cbc662c..98a9309 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
@@ -832,7 +832,6 @@
                                             TypeGraphInferrerEngine inferrer) {
     ClassWorld classWorld = inferrer.classWorld;
     if (!classWorld.backend.intImplementation.isResolved) return null;
-    TypeMask emptyType = const TypeMask.nonNullEmpty();
     if (mask == null) return null;
     if (!mask.containsOnlyInt(classWorld)) {
       return null;
@@ -843,7 +842,7 @@
 
     ClassElement uint31Implementation = classWorld.backend.uint31Implementation;
     bool isInt(info) => info.type.containsOnlyInt(classWorld);
-    bool isEmpty(info) => info.type == emptyType;
+    bool isEmpty(info) => info.type.isEmpty;
     bool isUInt31(info) {
       return info.type.satisfies(uint31Implementation, classWorld);
     }
diff --git a/pkg/compiler/lib/src/io/position_information.dart b/pkg/compiler/lib/src/io/position_information.dart
index 8966763..1a561cd 100644
--- a/pkg/compiler/lib/src/io/position_information.dart
+++ b/pkg/compiler/lib/src/io/position_information.dart
@@ -163,7 +163,8 @@
               sourceFile, element.position.charOffset, name));
     } else {
       return new PositionSourceInformation(
-          null,
+          new OffsetSourceLocation(sourceFile,
+              element.resolvedAst.node.getBeginToken().charOffset, name),
           new OffsetSourceLocation(sourceFile,
               element.resolvedAst.node.getEndToken().charOffset, name));
     }
@@ -500,16 +501,30 @@
   void onStep(js.Node node, Offset offset, StepKind kind) {
     SourceInformation sourceInformation = computeSourceInformation(node);
     if (sourceInformation == null) return;
+    int codeLocation = offset.subexpressionOffset;
+    if (codeLocation == null) return;
 
-    SourcePositionKind sourcePositionKind = SourcePositionKind.START;
+    void registerPosition(SourcePositionKind sourcePositionKind) {
+      SourceLocation sourceLocation =
+          getSourceLocation(sourceInformation, sourcePositionKind);
+      if (sourceLocation != null) {
+        sourceMapper.register(node, codeLocation, sourceLocation);
+      }
+    }
+
     switch (kind) {
-      case StepKind.FUN:
-        sourcePositionKind = SourcePositionKind.INNER;
+      case StepKind.FUN_ENTRY:
+        // TODO(johnniwinther): Remove this when fully transitioned to the
+        // new source info system.
+        registerPosition(SourcePositionKind.START);
+        break;
+      case StepKind.FUN_EXIT:
+        registerPosition(SourcePositionKind.INNER);
         break;
       case StepKind.CALL:
         CallPosition callPosition =
             CallPosition.getSemanticPositionForCall(node);
-        sourcePositionKind = callPosition.sourcePositionKind;
+        registerPosition(callPosition.sourcePositionKind);
         break;
       case StepKind.NEW:
       case StepKind.RETURN:
@@ -524,14 +539,9 @@
       case StepKind.WHILE_CONDITION:
       case StepKind.DO_CONDITION:
       case StepKind.SWITCH_EXPRESSION:
+        registerPosition(SourcePositionKind.START);
         break;
     }
-    int codeLocation = offset.subexpressionOffset;
-    SourceLocation sourceLocation =
-        getSourceLocation(sourceInformation, sourcePositionKind);
-    if (codeLocation != null && sourceLocation != null) {
-      sourceMapper.register(node, codeLocation, sourceLocation);
-    }
   }
 }
 
@@ -672,7 +682,8 @@
 }
 
 enum StepKind {
-  FUN,
+  FUN_ENTRY,
+  FUN_EXIT,
   CALL,
   NEW,
   RETURN,
@@ -797,11 +808,17 @@
     if (!active) {
       active = node.sourceInformation != null;
     }
+    leftToRightOffset = statementOffset =
+        getSyntaxOffset(node, kind: CodePositionKind.START);
+    Offset entryOffset = getOffsetForNode(node, statementOffset);
+    notifyStep(node, entryOffset, StepKind.FUN_ENTRY);
+
     visit(node.body);
+
     leftToRightOffset = statementOffset =
         getSyntaxOffset(node, kind: CodePositionKind.CLOSING);
-    Offset offset = getOffsetForNode(node, statementOffset);
-    notifyStep(node, offset, StepKind.FUN);
+    Offset exitOffset = getOffsetForNode(node, statementOffset);
+    notifyStep(node, exitOffset, StepKind.FUN_EXIT);
     active = activeBefore;
   }
 
diff --git a/pkg/compiler/lib/src/io/source_information.dart b/pkg/compiler/lib/src/io/source_information.dart
index da46d43..35d9583 100644
--- a/pkg/compiler/lib/src/io/source_information.dart
+++ b/pkg/compiler/lib/src/io/source_information.dart
@@ -15,9 +15,6 @@
     JavaScriptNodeSourceInformation;
 import 'source_file.dart';
 
-bool useNewSourceInfo =
-    const bool.fromEnvironment('USE_NEW_SOURCE_INFO', defaultValue: false);
-
 /// Interface for passing source information, for instance for use in source
 /// maps, through the backend.
 abstract class SourceInformation extends JavaScriptNodeSourceInformation {
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index 14d1f6e..1d8a35a 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -509,7 +509,8 @@
 
   JavaScriptBackend(Compiler compiler,
                     {bool generateSourceMap: true,
-                     bool useStartupEmitter: false})
+                     bool useStartupEmitter: false,
+                     bool useNewSourceInfo: false})
       : namer = determineNamer(compiler),
         oneShotInterceptors = new Map<jsAst.Name, Selector>(),
         interceptedElements = new Map<String, Set<Element>>(),
diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
index 4d0f497..9f1947f 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
@@ -184,7 +184,8 @@
     if (jsVariables.length > 0) {
       // Would be nice to avoid inserting at the beginning of list.
       accumulator.insert(0, new js.ExpressionStatement(
-          new js.VariableDeclarationList(jsVariables)));
+          new js.VariableDeclarationList(jsVariables)
+              .withSourceInformation(function.sourceInformation)));
     }
     return new js.Fun(parameters, new js.Block(accumulator));
   }
diff --git a/pkg/compiler/lib/src/js_backend/codegen/glue.dart b/pkg/compiler/lib/src/js_backend/codegen/glue.dart
index 46ef1a5..abbb894 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/glue.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/glue.dart
@@ -299,4 +299,10 @@
   bool mayGenerateInstanceofCheck(DartType type) {
     return _backend.mayGenerateInstanceofCheck(type);
   }
+
+  bool methodUsesReceiverArgument(FunctionElement function) {
+    assert(isInterceptedMethod(function));
+    ClassElement class_ = function.enclosingClass.declaration;
+    return isInterceptorClass(class_) || isUsedAsMixin(class_);
+  }
 }
diff --git a/pkg/compiler/lib/src/js_backend/codegen/task.dart b/pkg/compiler/lib/src/js_backend/codegen/task.dart
index edc7c55..89b9aab 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/task.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/task.dart
@@ -216,9 +216,8 @@
     if (type is UnionTypeMask) {
       return '[${type.disjointMasks.map(formatTypeMask).join(', ')}]';
     } else if (type is FlatTypeMask) {
-      if (type.isEmpty) {
-        return "null";
-      }
+      if (type.isEmpty) return "empty";
+      if (type.isNull) return "null";
       String suffix = (type.isExact ? "" : "+") + (type.isNullable ? "?" : "!");
       return '${type.base.name}$suffix';
     } else if (type is ForwardingTypeMask) {
@@ -296,7 +295,7 @@
   tree_ir.FunctionDefinition compileToTreeIr(cps.FunctionDefinition cpsNode) {
     applyCpsPass(new Finalize(backend), cpsNode);
     tree_builder.Builder builder = new tree_builder.Builder(
-        reporter.internalError);
+        reporter.internalError, glue);
     tree_ir.FunctionDefinition treeNode =
         treeBuilderTask.measure(() => builder.buildFunction(cpsNode));
     assert(treeNode != null);
diff --git a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
index 4ca64fa..f7ff67f 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/unsugar.dart
@@ -7,7 +7,6 @@
 import '../../elements/elements.dart';
 import '../../js_backend/codegen/glue.dart';
 import '../../universe/selector.dart' show Selector;
-import '../../cps_ir/cps_ir_builder.dart' show ThisParameterLocal;
 import '../../cps_ir/cps_fragment.dart';
 import '../../common/names.dart';
 
@@ -38,8 +37,13 @@
 class UnsugarVisitor extends TrampolineRecursiveVisitor implements Pass {
   Glue _glue;
 
-  Parameter thisParameter;
-  Parameter explicitReceiverParameter;
+  FunctionDefinition function;
+
+  Parameter get receiverParameter => function.receiverParameter;
+
+  /// The interceptor of the receiver.  For some methods, this is the receiver
+  /// itself, for others, it is the interceptor parameter.
+  Parameter receiverInterceptor;
 
   // In a catch block, rethrow implicitly throws the block's exception
   // parameter.  This is the exception parameter when nested in a catch
@@ -50,15 +54,8 @@
 
   String get passName => 'Unsugaring';
 
-  bool methodUsesReceiverArgument(FunctionElement function) {
-    assert(_glue.isInterceptedMethod(function));
-    ClassElement clazz = function.enclosingClass.declaration;
-    return _glue.isInterceptorClass(clazz) ||
-           _glue.isUsedAsMixin(clazz);
-  }
-
   void rewrite(FunctionDefinition function) {
-    thisParameter = function.thisParameter;
+    this.function = function;
     bool inInterceptedMethod = _glue.isInterceptedMethod(function.element);
 
     if (function.element.name == '==' &&
@@ -70,15 +67,16 @@
     }
 
     if (inInterceptedMethod) {
-      ThisParameterLocal holder = thisParameter.hint;
-      explicitReceiverParameter = new Parameter(
-          new ExplicitReceiverParameterEntity(holder.executableContext));
-      explicitReceiverParameter.parent = function;
-      function.parameters.insert(0, explicitReceiverParameter);
-    }
-
-    if (inInterceptedMethod && methodUsesReceiverArgument(function.element)) {
-      thisParameter.replaceUsesWith(explicitReceiverParameter);
+      function.interceptorParameter = new Parameter(null)..parent = function;
+      // Since the receiver won't be compiled to "this", set a hint on it
+      // so the parameter gets a meaningful name.
+      function.receiverParameter.hint =
+          new ExplicitReceiverParameterEntity(function.element);
+      // If we need an interceptor for the receiver, use the receiver itself
+      // if possible, otherwise the interceptor argument.
+      receiverInterceptor = _glue.methodUsesReceiverArgument(function.element)
+          ? function.interceptorParameter
+          : receiverParameter;
     }
 
     visit(function);
@@ -211,45 +209,44 @@
     }
 
     Primitive receiver = node.receiver;
-    Primitive newReceiver;
+    Primitive interceptor;
 
-    if (receiver == explicitReceiverParameter) {
-      // If the receiver is the explicit receiver, we are calling a method in
+    if (receiver == receiverParameter && receiverInterceptor != null) {
+      // TODO(asgerf): This could be done by GVN.
+      // If the receiver is 'this', we are calling a method in
       // the same interceptor:
       //  Change 'receiver.foo()'  to  'this.foo(receiver)'.
-      newReceiver = thisParameter;
+      interceptor = receiverInterceptor;
     } else {
-      newReceiver = new Interceptor(receiver, node.sourceInformation);
+      interceptor = new Interceptor(receiver, node.sourceInformation);
       if (receiver.hint != null) {
-        newReceiver.hint = new InterceptorEntity(receiver.hint);
+        interceptor.hint = new InterceptorEntity(receiver.hint);
       }
-      new LetPrim(newReceiver).insertAbove(node.parent);
+      new LetPrim(interceptor).insertAbove(node.parent);
     }
-    node.argumentRefs.insert(0, node.receiverRef);
-    node.receiverRef = new Reference<Primitive>(newReceiver)..parent = node;
-    node.callingConvention = CallingConvention.Intercepted;
+    assert(node.interceptorRef == null);
+    node.makeIntercepted(interceptor);
   }
 
   processInvokeMethodDirectly(InvokeMethodDirectly node) {
     if (!_glue.isInterceptedMethod(node.target)) return;
 
     Primitive receiver = node.receiver;
-    Primitive newReceiver;
+    Primitive interceptor;
 
-    if (receiver == explicitReceiverParameter) {
-      // If the receiver is the explicit receiver, we are calling a method in
+    if (receiver == receiverParameter && receiverInterceptor != null) {
+      // If the receiver is 'this', we are calling a method in
       // the same interceptor:
       //  Change 'receiver.foo()'  to  'this.foo(receiver)'.
-      newReceiver = thisParameter;
+      interceptor = receiverInterceptor;
     } else {
-      newReceiver = new Interceptor(receiver, node.sourceInformation);
+      interceptor = new Interceptor(receiver, node.sourceInformation);
       if (receiver.hint != null) {
-        newReceiver.hint = new InterceptorEntity(receiver.hint);
+        interceptor.hint = new InterceptorEntity(receiver.hint);
       }
-      new LetPrim(newReceiver).insertAbove(node.parent);
+      new LetPrim(interceptor).insertAbove(node.parent);
     }
-    node.argumentRefs.insert(0, node.receiverRef);
-    node.receiverRef = new Reference<Primitive>(newReceiver)..parent = node;
-    node.callingConvention = CallingConvention.Intercepted;
+    assert(node.interceptorRef == null);
+    node.makeIntercepted(interceptor);
   }
 }
diff --git a/pkg/compiler/lib/src/js_backend/js_backend.dart b/pkg/compiler/lib/src/js_backend/js_backend.dart
index 4431a10..297f79f 100644
--- a/pkg/compiler/lib/src/js_backend/js_backend.dart
+++ b/pkg/compiler/lib/src/js_backend/js_backend.dart
@@ -62,8 +62,7 @@
     ResolutionEnqueuer;
 import '../io/code_output.dart';
 import '../io/source_information.dart' show
-    SourceInformationStrategy,
-    useNewSourceInfo;
+    SourceInformationStrategy;
 import '../io/position_information.dart' show
     PositionSourceInformationStrategy;
 import '../io/start_end_information.dart' show
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index fb5a6f8..5821afa 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -1024,8 +1024,8 @@
       Element error;
       if (selector.isSetter) {
         error = reportAndCreateErroneousElement(
-          node, name.text, MessageKind.SETTER_NOT_FOUND_IN_SUPER,
-          {'className': currentClass.name, 'name': name});
+          node, name.text, MessageKind.UNDEFINED_SUPER_SETTER,
+          {'className': currentClass.name, 'memberName': name});
       } else {
         error = reportAndCreateErroneousElement(
           node, name.text, MessageKind.NO_SUCH_SUPER_MEMBER,
@@ -1760,7 +1760,7 @@
     // [resolveSend] to select better warning messages for getters and
     // setters.
     ErroneousElement error = reportAndCreateErroneousElement(
-        node, name.text, MessageKind.MEMBER_NOT_FOUND,
+        node, name.text, MessageKind.UNDEFINED_GETTER,
         {'className': receiverClass.name, 'memberName': name.text});
     // TODO(johnniwinther): Add an [AccessSemantics] for unresolved static
     // member access.
@@ -1784,7 +1784,7 @@
 
     // TODO(johnniwinther): Produce a different error for complex update.
     ErroneousElement error = reportAndCreateErroneousElement(
-        node, name.text, MessageKind.MEMBER_NOT_FOUND,
+        node, name.text, MessageKind.UNDEFINED_GETTER,
         {'className': receiverClass.name, 'memberName': name.text});
     // TODO(johnniwinther): Add an [AccessSemantics] for unresolved static
     // member access.
@@ -2654,7 +2654,8 @@
       if (element.isFinal) {
         error = reportAndCreateErroneousElement(
             node.selector, name.text,
-            MessageKind.CANNOT_RESOLVE_SETTER, const {});
+            MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
+            {'name': name});
         semantics = new StaticAccess.finalParameter(element);
       } else {
         semantics = new StaticAccess.parameter(element);
@@ -2663,7 +2664,8 @@
       if (element.isFinal || element.isConst) {
         error = reportAndCreateErroneousElement(
             node.selector, name.text,
-            MessageKind.CANNOT_RESOLVE_SETTER, const {});
+            MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
+            {'name': name});
         semantics = new StaticAccess.finalLocalVariable(element);
       } else {
         semantics = new StaticAccess.localVariable(element);
@@ -2775,7 +2777,8 @@
           registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
           member = reportAndCreateErroneousElement(
               node.selector, name.text,
-              MessageKind.CANNOT_RESOLVE_GETTER, const {});
+              MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER,
+              {'name': name});
           break;
         default:
           reporter.internalError(node,
@@ -2809,7 +2812,8 @@
           registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
           member = reportAndCreateErroneousElement(
               node.selector, name.text,
-              MessageKind.CANNOT_RESOLVE_GETTER, const {});
+              MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER,
+              {'name': name});
           break;
         default:
           reporter.internalError(node,
@@ -2843,7 +2847,8 @@
       if (abstractField.setter == null) {
         ErroneousElement error = reportAndCreateErroneousElement(
             node.selector, name.text,
-            MessageKind.CANNOT_RESOLVE_SETTER, const {});
+            MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
+            {'name': name});
         registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
 
         if (node.isComplex) {
@@ -2866,7 +2871,8 @@
         if (abstractField.getter == null) {
           ErroneousElement error = reportAndCreateErroneousElement(
               node.selector, name.text,
-              MessageKind.CANNOT_RESOLVE_GETTER, const {});
+              MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER,
+              {'name': name});
           registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
           // `a++` or `a += b` where `a` has no getter.
           semantics = new CompoundAccessSemantics(
@@ -2931,7 +2937,8 @@
         if (member.isFinal || member.isConst) {
           ErroneousElement error = reportAndCreateErroneousElement(
                node.selector, name.text,
-               MessageKind.CANNOT_RESOLVE_SETTER, const {});
+               MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
+               {'name': name});
           registry.registerFeature(Feature.THROW_NO_SUCH_METHOD);
           semantics = member.isTopLevel
               ? new StaticAccess.finalTopLevelField(member)
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 85fd583..fb979aa 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -1401,9 +1401,7 @@
         // This means that the function always throws an exception.
         TypeMask returnType =
             compiler.typesTask.getGuaranteedReturnTypeOfElement(element);
-        if (returnType != null
-            && returnType.isEmpty
-            && !returnType.isNullable) {
+        if (returnType != null && returnType.isEmpty) {
           isReachable = false;
           return false;
         }
@@ -1688,8 +1686,8 @@
       }
     }
     if (const bool.fromEnvironment('unreachable-throw') == true) {
-      var emptyParameters = parameters.values.where((p) =>
-          p.instructionType.isEmpty && !p.instructionType.isNullable);
+      var emptyParameters = parameters.values
+          .where((p) => p.instructionType.isEmpty);
       if (emptyParameters.length > 0) {
         addComment('${emptyParameters} inferred as [empty]');
         pushInvokeStatic(function.body, helpers.assertUnreachableMethod, []);
diff --git a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
index 8d5e08f..b88fc41 100644
--- a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
+++ b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
@@ -135,7 +135,7 @@
       Set<ClassElement> interceptedClasses) {
 
     if (type.isNullable) {
-      if (type.isEmpty) {
+      if (type.isNull) {
         return helpers.jsNullClass;
       }
     } else if (type.containsOnlyInt(classWorld)) {
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart
index c279da9..28647bd 100644
--- a/pkg/compiler/lib/src/ssa/nodes.dart
+++ b/pkg/compiler/lib/src/ssa/nodes.dart
@@ -881,10 +881,9 @@
 
   bool canBeNull() => instructionType.isNullable;
 
-  bool isNull() => instructionType.isEmpty && instructionType.isNullable;
-  bool isConflicting() {
-    return instructionType.isEmpty && !instructionType.isNullable;
-  }
+  bool isNull() => instructionType.isNull;
+
+  bool isConflicting() => instructionType.isEmpty;
 
   /// Returns `true` if [typeMask] contains [cls].
   static bool containsType(
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index a8d82ae..8d274d7 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -249,8 +249,7 @@
     // there is a throw expression in a short-circuit conditional.  Removing the
     // unreachable HBoolify makes it easier to reconstruct the short-circuit
     // operation.
-    if (input.instructionType.isEmpty && !input.instructionType.isNullable)
-      return input;
+    if (input.instructionType.isEmpty) return input;
 
     // All values that cannot be 'true' are boolified to false.
     TypeMask mask = input.instructionType;
diff --git a/pkg/compiler/lib/src/ssa/types.dart b/pkg/compiler/lib/src/ssa/types.dart
index a34e60b..530a968 100644
--- a/pkg/compiler/lib/src/ssa/types.dart
+++ b/pkg/compiler/lib/src/ssa/types.dart
@@ -48,7 +48,7 @@
     TypeMask result = nativeBehavior.typesReturned
         .map((type) => fromNativeType(type, compiler))
         .reduce((t1, t2) => t1.union(t2, classWorld));
-    assert(!(result.isEmpty && !result.isNullable));
+    assert(!result.isEmpty);
     return result;
   }
 
diff --git a/pkg/compiler/lib/src/ssa/types_propagation.dart b/pkg/compiler/lib/src/ssa/types_propagation.dart
index adda76e..00032c6 100644
--- a/pkg/compiler/lib/src/ssa/types_propagation.dart
+++ b/pkg/compiler/lib/src/ssa/types_propagation.dart
@@ -178,7 +178,7 @@
     }
 
     TypeMask outputType = checkedType.intersection(inputType, classWorld);
-    if (outputType.isEmpty && !outputType.isNullable) {
+    if (outputType.isEmpty) {
       // Intersection of double and integer conflicts (is empty), but JS numbers
       // can be both int and double at the same time.  For example, the input
       // can be a literal double '8.0' that is marked as an integer (because 'is
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 324f45f..b4ca9ab 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
@@ -9,6 +9,7 @@
 import '../cps_ir/cps_ir_nodes.dart' as cps_ir;
 import '../elements/elements.dart';
 import 'package:js_ast/js_ast.dart' as js;
+import '../js_backend/codegen/glue.dart';
 
 import 'tree_ir_nodes.dart';
 
@@ -48,6 +49,7 @@
  */
 class Builder implements cps_ir.Visitor/*<NodeCallback|Node>*/ {
   final InternalErrorFunction internalError;
+  final Glue glue;
 
   final Map<cps_ir.Primitive, Variable> primitive2variable =
       <cps_ir.Primitive, Variable>{};
@@ -60,17 +62,12 @@
   final Map<cps_ir.Continuation, Label> labels = <cps_ir.Continuation, Label>{};
 
   ExecutableElement currentElement;
-  /// The 'this' Parameter for currentElement or the enclosing method.
+  /// The parameter to be translated to 'this'.  This can either be the receiver
+  /// parameter, the interceptor parameter, or null if the method has neither.
   cps_ir.Parameter thisParameter;
   cps_ir.Continuation returnContinuation;
 
-  Builder parent;
-
-  Builder(this.internalError, [this.parent]);
-
-  Builder createInnerBuilder() {
-    return new Builder(internalError, this);
-  }
+  Builder(this.internalError, this.glue);
 
   /// Variable used in [buildPhiAssignments] as a temporary when swapping
   /// variables.
@@ -84,9 +81,6 @@
   }
 
   Variable getMutableVariable(cps_ir.MutableVariable mutableVariable) {
-    if (!mutable2variable.containsKey(mutableVariable)) {
-      return parent.getMutableVariable(mutableVariable)..isCaptured = true;
-    }
     return mutable2variable[mutableVariable];
   }
 
@@ -128,24 +122,22 @@
     return labels.putIfAbsent(cont, () => new Label());
   }
 
-  Variable addFunctionParameter(cps_ir.Parameter parameter) {
-    return getVariable(parameter);
-  }
-
   FunctionDefinition buildFunction(cps_ir.FunctionDefinition node) {
     currentElement = node.element;
-    if (parent != null) {
-      // Local function's 'this' refers to enclosing method's 'this'
-      thisParameter = parent.thisParameter;
+    List<Variable> parameters = node.parameters.map(getVariable).toList();
+    if (node.interceptorParameter != null) {
+      parameters.insert(0, getVariable(node.receiverParameter));
+      thisParameter = glue.methodUsesReceiverArgument(node.element)
+          ? node.interceptorParameter
+          : node.receiverParameter;
     } else {
-      thisParameter = node.thisParameter;
+      thisParameter = node.receiverParameter;
     }
-    List<Variable> parameters =
-        node.parameters.map(addFunctionParameter).toList();
     returnContinuation = node.returnContinuation;
     phiTempVar = new Variable(node.element, null);
     Statement body = translateExpression(node.body);
-    return new FunctionDefinition(node.element, parameters, body);
+    return new FunctionDefinition(node.element, parameters, body,
+        sourceInformation: node.sourceInformation);
   }
 
   /// Returns a list of variables corresponding to the arguments to a method
@@ -621,38 +613,86 @@
                                          node.sourceInformation);
   }
 
+  List<Expression> insertReceiverArgument(Expression receiver,
+        List<Expression> arguments) {
+    return new List<Expression>.generate(arguments.length + 1,
+        (n) => n == 0 ? receiver : arguments[n - 1],
+        growable: false);
+  }
+
   Expression visitInvokeMethod(cps_ir.InvokeMethod node) {
-    if (node.callingConvention == cps_ir.CallingConvention.OneShotIntercepted) {
-      List<Expression> arguments = new List.generate(
-          1 + node.argumentRefs.length,
-          (n) => getVariableUse(n == 0 ? node.receiverRef : node.argumentRefs[n - 1]),
-          growable: false);
-      return new OneShotInterceptor(node.selector, node.mask, arguments,
-          node.sourceInformation);
+    switch (node.callingConvention) {
+      case cps_ir.CallingConvention.Normal:
+        InvokeMethod invoke = new InvokeMethod(
+            getVariableUse(node.receiverRef),
+            node.selector,
+            node.mask,
+            translateArguments(node.argumentRefs),
+            node.sourceInformation);
+        invoke.receiverIsNotNull = !node.receiver.type.isNullable;
+        return invoke;
+
+      case cps_ir.CallingConvention.Intercepted:
+        List<Expression> arguments = insertReceiverArgument(
+            getVariableUse(node.receiverRef),
+            translateArguments(node.argumentRefs));
+        InvokeMethod invoke = new InvokeMethod(
+            getVariableUse(node.interceptorRef),
+            node.selector,
+            node.mask,
+            arguments,
+            node.sourceInformation);
+        // Sometimes we know the Dart receiver is non-null because it has been
+        // refined, which implies that the JS receiver also can not be null at
+        // the use-site.  Interceptors are not refined, so this information is
+        // not always available on the JS receiver.
+        // Also check the JS receiver's type, however, because sometimes we know
+        // an interceptor is non-null because it intercepts JSNull.
+        invoke.receiverIsNotNull =
+            !node.receiver.type.isNullable ||
+            !node.interceptor.type.isNullable;
+        return invoke;
+
+      case cps_ir.CallingConvention.DummyIntercepted:
+        List<Expression> arguments = insertReceiverArgument(
+            new Constant(new IntConstantValue(0)),
+            translateArguments(node.argumentRefs));
+        InvokeMethod invoke = new InvokeMethod(
+            getVariableUse(node.receiverRef),
+            node.selector,
+            node.mask,
+            arguments,
+            node.sourceInformation);
+        invoke.receiverIsNotNull = !node.receiver.type.isNullable;
+        return invoke;
+
+      case cps_ir.CallingConvention.OneShotIntercepted:
+        List<Expression> arguments = insertReceiverArgument(
+            getVariableUse(node.receiverRef),
+            translateArguments(node.argumentRefs));
+        return new OneShotInterceptor(
+            node.selector,
+            node.mask,
+            arguments,
+            node.sourceInformation);
     }
-    InvokeMethod invoke = new InvokeMethod(
-        getVariableUse(node.receiverRef),
-        node.selector,
-        node.mask,
-        translateArguments(node.argumentRefs),
-        node.sourceInformation);
-    // Sometimes we know the Dart receiver is non-null because it has been
-    // refined, which implies that the JS receiver also can not be null at the
-    // use-site.  Interceptors are not refined, so this information is not
-    // always available on the JS receiver.
-    // Also check the JS receiver's type, however, because sometimes we know an
-    // interceptor is non-null because it intercepts JSNull.
-    invoke.receiverIsNotNull =
-        !node.dartReceiver.type.isNullable ||
-        !node.receiver.type.isNullable;
-    return invoke;
   }
 
   Expression visitInvokeMethodDirectly(cps_ir.InvokeMethodDirectly node) {
-    Expression receiver = getVariableUse(node.receiverRef);
-    List<Expression> arguments = translateArguments(node.argumentRefs);
-    return new InvokeMethodDirectly(receiver, node.target,
-        node.selector, arguments, node.sourceInformation);
+    if (node.interceptorRef != null) {
+      return new InvokeMethodDirectly(getVariableUse(node.interceptorRef),
+          node.target,
+          node.selector,
+          insertReceiverArgument(getVariableUse(node.receiverRef),
+              translateArguments(node.argumentRefs)),
+          node.sourceInformation);
+    } else {
+      return new InvokeMethodDirectly(getVariableUse(node.receiverRef),
+          node.target,
+          node.selector,
+          translateArguments(node.argumentRefs),
+          node.sourceInformation);
+    }
   }
 
   Expression visitTypeCast(cps_ir.TypeCast node) {
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 ec2e34a..5e09254 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart
@@ -654,10 +654,15 @@
 class FunctionDefinition extends Node {
   final ExecutableElement element;
   final List<Variable> parameters;
+  final SourceInformation sourceInformation;
   Statement body;
 
   /// Creates a function definition and updates `writeCount` for [parameters].
-  FunctionDefinition(this.element, this.parameters, this.body) {
+  FunctionDefinition(
+      this.element,
+      this.parameters,
+      this.body,
+      {this.sourceInformation}) {
     for (Variable param in parameters) {
       param.writeCount++; // Being a parameter counts as a write.
     }
diff --git a/pkg/compiler/lib/src/typechecker.dart b/pkg/compiler/lib/src/typechecker.dart
index 71a0fc1..449618b 100644
--- a/pkg/compiler/lib/src/typechecker.dart
+++ b/pkg/compiler/lib/src/typechecker.dart
@@ -829,12 +829,12 @@
       if (!foundPrivateMember) {
         switch (memberKind) {
           case MemberKind.METHOD:
-            reportMessage(node, MessageKind.METHOD_NOT_FOUND,
+            reportMessage(node, MessageKind.UNDEFINED_METHOD,
                 {'className': receiverType.name, 'memberName': name},
                 isHint: isHint);
             break;
           case MemberKind.OPERATOR:
-            reportMessage(node, MessageKind.OPERATOR_NOT_FOUND,
+            reportMessage(node, MessageKind.UNDEFINED_OPERATOR,
                 {'className': receiverType.name, 'memberName': name},
                 isHint: isHint);
             break;
@@ -842,7 +842,8 @@
             if (lookupMemberSignature(memberName.setter, interface) != null) {
               // A setter is present so warn explicitly about the missing
               // getter.
-              reportMessage(node, MessageKind.GETTER_NOT_FOUND,
+              reportMessage(node,
+                  MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER,
                   {'className': receiverType.name, 'memberName': name},
                   isHint: isHint);
             } else if (name == 'await') {
@@ -857,13 +858,13 @@
               }
               reportMessage(node, kind, arguments, isHint: isHint);
             } else {
-              reportMessage(node, MessageKind.MEMBER_NOT_FOUND,
+              reportMessage(node, MessageKind.UNDEFINED_GETTER,
                   {'className': receiverType.name, 'memberName': name},
                   isHint: isHint);
             }
             break;
           case MemberKind.SETTER:
-            reportMessage(node, MessageKind.SETTER_NOT_FOUND,
+            reportMessage(node, MessageKind.UNDEFINED_SETTER,
                 {'className': receiverType.name, 'memberName': name},
                 isHint: isHint);
             break;
diff --git a/pkg/compiler/lib/src/types/container_type_mask.dart b/pkg/compiler/lib/src/types/container_type_mask.dart
index 5f22462..c38a03a 100644
--- a/pkg/compiler/lib/src/types/container_type_mask.dart
+++ b/pkg/compiler/lib/src/types/container_type_mask.dart
@@ -61,7 +61,7 @@
 
   TypeMask intersection(TypeMask other, ClassWorld classWorld) {
     TypeMask forwardIntersection = forwardTo.intersection(other, classWorld);
-    if (forwardIntersection.isEmpty) return forwardIntersection;
+    if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
     return forwardIntersection.isNullable
         ? nullable()
         : nonNullable();
@@ -72,7 +72,7 @@
       return this;
     } else if (equalsDisregardNull(other)) {
       return other.isNullable ? other : this;
-    } else if (other.isEmpty) {
+    } else if (other.isEmptyOrNull) {
       return other.isNullable ? this.nullable() : this;
     } else if (other.isContainer
                && elementType != null
diff --git a/pkg/compiler/lib/src/types/dictionary_type_mask.dart b/pkg/compiler/lib/src/types/dictionary_type_mask.dart
index 27419779..cba828f 100644
--- a/pkg/compiler/lib/src/types/dictionary_type_mask.dart
+++ b/pkg/compiler/lib/src/types/dictionary_type_mask.dart
@@ -59,7 +59,7 @@
 
   TypeMask intersection(TypeMask other, ClassWorld classWorld) {
     TypeMask forwardIntersection = forwardTo.intersection(other, classWorld);
-    if (forwardIntersection.isEmpty) return forwardIntersection;
+    if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
     return forwardIntersection.isNullable
         ? nullable()
         : nonNullable();
@@ -70,7 +70,7 @@
       return this;
     } else if (equalsDisregardNull(other)) {
       return other.isNullable ? other : this;
-    } else if (other.isEmpty) {
+    } else if (other.isEmptyOrNull) {
       return other.isNullable ? this.nullable() : this;
     } else if (other.isDictionary) {
       TypeMask newForwardTo = forwardTo.union(other.forwardTo, classWorld);
@@ -115,4 +115,4 @@
     return
         'Dictionary mask: [$keyType/$valueType with $typeMap] type: $forwardTo';
   }
-}
\ No newline at end of file
+}
diff --git a/pkg/compiler/lib/src/types/flat_type_mask.dart b/pkg/compiler/lib/src/types/flat_type_mask.dart
index 914e673..5939147 100644
--- a/pkg/compiler/lib/src/types/flat_type_mask.dart
+++ b/pkg/compiler/lib/src/types/flat_type_mask.dart
@@ -67,7 +67,9 @@
         () => new FlatTypeMask.internal(base, flags));
   }
 
-  bool get isEmpty => (flags >> 1) == EMPTY;
+  bool get isEmpty => isEmptyOrNull && !isNullable;
+  bool get isNull => isEmptyOrNull && isNullable;
+  bool get isEmptyOrNull => (flags >> 1) == EMPTY;
   bool get isExact => (flags >> 1) == EXACT;
   bool get isNullable => (flags & 1) != 0;
 
@@ -94,7 +96,7 @@
 
   bool contains(ClassElement type, ClassWorld classWorld) {
     assert(type.isDeclaration);
-    if (isEmpty) {
+    if (isEmptyOrNull) {
       return false;
     } else if (identical(base, type)) {
       return true;
@@ -137,10 +139,9 @@
   }
 
   bool isInMask(TypeMask other, ClassWorld classWorld) {
-    // null is treated separately, so the empty mask might still contain it.
-    if (isEmpty) return isNullable ? other.isNullable : true;
+    if (isEmptyOrNull) return isNullable ? other.isNullable : true;
     // The empty type contains no classes.
-    if (other.isEmpty) return false;
+    if (other.isEmptyOrNull) return false;
     // Quick check whether to handle null.
     if (isNullable && !other.isNullable) return false;
     other = TypeMask.nonForwardingMask(other);
@@ -215,7 +216,7 @@
 
   bool satisfies(ClassElement cls, ClassWorld classWorld) {
     assert(cls.isDeclaration);
-    if (isEmpty) return false;
+    if (isEmptyOrNull) return false;
     if (classWorld.isSubtypeOf(base, cls)) return true;
     return false;
   }
@@ -225,7 +226,7 @@
    * otherwise returns `null`.  This method is conservative.
    */
   ClassElement singleClass(ClassWorld classWorld) {
-    if (isEmpty) return null;
+    if (isEmptyOrNull) return null;
     if (isNullable) return null;  // It is Null and some other class.
     if (isExact) {
       return base;
@@ -241,7 +242,7 @@
    * Returns whether or not this type mask contains all types.
    */
   bool containsAll(ClassWorld classWorld) {
-    if (isEmpty || isExact) return false;
+    if (isEmptyOrNull || isExact) return false;
     return identical(base, classWorld.objectClass);
   }
 
@@ -251,9 +252,9 @@
     assert(TypeMask.assertIsNormalized(other, classWorld));
     if (other is! FlatTypeMask) return other.union(this, classWorld);
     FlatTypeMask flatOther = other;
-    if (isEmpty) {
+    if (isEmptyOrNull) {
       return isNullable ? flatOther.nullable() : flatOther;
-    } else if (flatOther.isEmpty) {
+    } else if (flatOther.isEmptyOrNull) {
       return flatOther.isNullable ? nullable() : this;
     } else if (base == flatOther.base) {
       return unionSame(flatOther, classWorld);
@@ -339,9 +340,9 @@
     assert(TypeMask.assertIsNormalized(this, classWorld));
     assert(TypeMask.assertIsNormalized(other, classWorld));
     FlatTypeMask flatOther = other;
-    if (isEmpty) {
+    if (isEmptyOrNull) {
       return flatOther.isNullable ? this : nonNullable();
-    } else if (flatOther.isEmpty) {
+    } else if (flatOther.isEmptyOrNull) {
       return isNullable ? flatOther : other.nonNullable();
     } else if (base == flatOther.base) {
       return intersectionSame(flatOther, classWorld);
@@ -363,7 +364,7 @@
     FlatTypeMask flatOther = other;
 
     if (isNullable && flatOther.isNullable) return false;
-    if (isEmpty || flatOther.isEmpty) return true;
+    if (isEmptyOrNull || flatOther.isEmptyOrNull) return true;
     if (base == flatOther.base) return false;
     if (isExact && flatOther.isExact) return true;
 
@@ -539,8 +540,8 @@
   bool canHit(Element element, Selector selector, ClassWorld classWorld) {
     Backend backend = classWorld.backend;
     assert(element.name == selector.name);
-    if (isEmpty) {
-      if (!isNullable) return false;
+    if (isEmpty) return false;
+    if (isNull) {
       return hasElementIn(backend.nullImplementation, selector, element);
     }
 
@@ -603,7 +604,7 @@
   bool needsNoSuchMethodHandling(Selector selector, ClassWorld classWorld) {
     // A call on an empty type mask is either dead code, or a call on
     // `null`.
-    if (isEmpty) return false;
+    if (isEmptyOrNull) return false;
     // A call on an exact mask for an abstract class is dead code.
     if (isExact && base.isAbstract) return false;
     // If the receiver is guaranteed to have a member that
@@ -684,7 +685,7 @@
   Element locateSingleElement(Selector selector,
                               TypeMask mask,
                               Compiler compiler) {
-    if (isEmpty) return null;
+    if (isEmptyOrNull) return null;
     Iterable<Element> targets =
         compiler.world.allFunctions.filter(selector, mask);
     if (targets.length != 1) return null;
@@ -709,7 +710,7 @@
   }
 
   String toString() {
-    if (isEmpty) return isNullable ? '[null]' : '[empty]';
+    if (isEmptyOrNull) return isNullable ? '[null]' : '[empty]';
     StringBuffer buffer = new StringBuffer();
     if (isNullable) buffer.write('null|');
     if (isExact) buffer.write('exact=');
diff --git a/pkg/compiler/lib/src/types/forwarding_type_mask.dart b/pkg/compiler/lib/src/types/forwarding_type_mask.dart
index a4400c6..6212bb8 100644
--- a/pkg/compiler/lib/src/types/forwarding_type_mask.dart
+++ b/pkg/compiler/lib/src/types/forwarding_type_mask.dart
@@ -14,8 +14,10 @@
 
   ForwardingTypeMask();
 
+  bool get isEmptyOrNull => forwardTo.isEmptyOrNull;
   bool get isEmpty => forwardTo.isEmpty;
   bool get isNullable => forwardTo.isNullable;
+  bool get isNull => forwardTo.isNull;
   bool get isExact => forwardTo.isExact;
 
   bool get isUnion => false;
@@ -78,7 +80,7 @@
       return this;
     } else if (equalsDisregardNull(other)) {
       return other.isNullable ? other : this;
-    } else if (other.isEmpty) {
+    } else if (other.isEmptyOrNull) {
       return other.isNullable ? this.nullable() : this;
     }
     return forwardTo.union(other, classWorld);
diff --git a/pkg/compiler/lib/src/types/map_type_mask.dart b/pkg/compiler/lib/src/types/map_type_mask.dart
index 39ed50b..52fe4a2 100644
--- a/pkg/compiler/lib/src/types/map_type_mask.dart
+++ b/pkg/compiler/lib/src/types/map_type_mask.dart
@@ -64,7 +64,7 @@
 
   TypeMask intersection(TypeMask other, ClassWorld classWorld) {
     TypeMask forwardIntersection = forwardTo.intersection(other, classWorld);
-    if (forwardIntersection.isEmpty) return forwardIntersection;
+    if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
     return forwardIntersection.isNullable
         ? nullable()
         : nonNullable();
@@ -75,7 +75,7 @@
       return this;
     } else if (equalsDisregardNull(other)) {
       return other.isNullable ? other : this;
-    } else if (other.isEmpty) {
+    } else if (other.isEmptyOrNull) {
       return other.isNullable ? this.nullable() : this;
     } else if (other.isMap &&
                keyType != null &&
diff --git a/pkg/compiler/lib/src/types/type_mask.dart b/pkg/compiler/lib/src/types/type_mask.dart
index 736df0d..2129fa9 100644
--- a/pkg/compiler/lib/src/types/type_mask.dart
+++ b/pkg/compiler/lib/src/types/type_mask.dart
@@ -204,7 +204,7 @@
   static String getNotNormalizedReason(TypeMask mask, ClassWorld classWorld) {
     mask = nonForwardingMask(mask);
     if (mask is FlatTypeMask) {
-      if (mask.isEmpty) return null;
+      if (mask.isEmptyOrNull) return null;
       if (mask.isExact) {
         if (!classWorld.isInstantiated(mask.base)) {
           return 'Exact ${mask.base} is not instantiated.';
@@ -247,8 +247,20 @@
    */
   TypeMask nonNullable();
 
+  /// Whether nothing matches this mask, not even null.
   bool get isEmpty;
+
+  /// Whether null is a valid value of this mask.
   bool get isNullable;
+
+  /// Whether the only possible value in this mask is Null.
+  bool get isNull;
+
+  /// Whether [isEmpty] or [isNull] is true.
+  bool get isEmptyOrNull;
+
+  /// Whether this mask only includes instances of an exact class, and none of
+  /// it's subclasses or subtypes.
   bool get isExact;
 
   /// Returns true if this mask is a union type.
diff --git a/pkg/compiler/lib/src/types/union_type_mask.dart b/pkg/compiler/lib/src/types/union_type_mask.dart
index 6166349..9cd5bcb 100644
--- a/pkg/compiler/lib/src/types/union_type_mask.dart
+++ b/pkg/compiler/lib/src/types/union_type_mask.dart
@@ -43,7 +43,7 @@
       if (mask.isUnion) {
         UnionTypeMask union = mask;
         unionOfHelper(union.disjointMasks, disjoint, classWorld);
-      } else if (mask.isEmpty && !mask.isNullable) {
+      } else if (mask.isEmpty) {
         continue;
       } else {
         FlatTypeMask flatMask = mask;
@@ -192,7 +192,9 @@
     return new UnionTypeMask._internal(newIterable);
   }
 
+  bool get isEmptyOrNull => false;
   bool get isEmpty => false;
+  bool get isNull => false;
   bool get isNullable => disjointMasks.any((e) => e.isNullable);
   bool get isExact => false;
   bool get isUnion => true;
diff --git a/pkg/compiler/lib/src/types/value_type_mask.dart b/pkg/compiler/lib/src/types/value_type_mask.dart
index 72c5af2..ffe1e3b 100644
--- a/pkg/compiler/lib/src/types/value_type_mask.dart
+++ b/pkg/compiler/lib/src/types/value_type_mask.dart
@@ -31,7 +31,7 @@
 
   TypeMask intersection(TypeMask other, ClassWorld classWorld) {
     TypeMask forwardIntersection = forwardTo.intersection(other, classWorld);
-    if (forwardIntersection.isEmpty) return forwardIntersection;
+    if (forwardIntersection.isEmptyOrNull) return forwardIntersection;
     return forwardIntersection.isNullable
         ? nullable()
         : nonNullable();
@@ -46,4 +46,4 @@
   String toString() {
     return 'Value mask: [${value.unparse()}] type: $forwardTo';
   }
-}
\ No newline at end of file
+}
diff --git a/pkg/compiler/lib/src/universe/class_set.dart b/pkg/compiler/lib/src/universe/class_set.dart
index 3790a03..bf2f31c 100644
--- a/pkg/compiler/lib/src/universe/class_set.dart
+++ b/pkg/compiler/lib/src/universe/class_set.dart
@@ -221,10 +221,10 @@
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
 
-    ForEach wrapper(ClassElement cls) {
-      return predicate(cls) ? ForEach.STOP : ForEach.CONTINUE;
+    IterationStep wrapper(ClassElement cls) {
+      return predicate(cls) ? IterationStep.STOP : IterationStep.CONTINUE;
     }
-    return forEachSubclass(wrapper, mask, strict: strict) == ForEach.STOP;
+    return forEachSubclass(wrapper, mask, strict: strict) == IterationStep.STOP;
   }
 
   /// Applies [f] to each subclass of [cls] matching the criteria specified by
@@ -241,31 +241,31 @@
   /// continues. The return value of the function is either [ForEach.STOP], if
   /// visitation was stopped, or [ForEach.CONTINUE] if visitation continued to
   /// the end.
-  ForEach forEachSubclass(
+  IterationStep forEachSubclass(
       ForEachFunction f,
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
-    ForEach forEach;
+    IterationStep nextStep;
     if (!strict && mask.intersects(_mask)) {
-      forEach = f(cls);
+      nextStep = f(cls);
     }
     // Interpret `forEach == null` as `forEach == ForEach.CONTINUE`.
-    forEach ??= ForEach.CONTINUE;
+    nextStep ??= IterationStep.CONTINUE;
 
-    if (forEach == ForEach.CONTINUE) {
+    if (nextStep == IterationStep.CONTINUE) {
       if (mask.contains(Instantiation.UNINSTANTIATED) || isInstantiated) {
         for (ClassHierarchyNode subclass in _directSubclasses) {
-          ForEach subForEach = subclass.forEachSubclass(f, mask);
-          if (subForEach == ForEach.STOP) {
+          IterationStep subForEach = subclass.forEachSubclass(f, mask);
+          if (subForEach == IterationStep.STOP) {
             return subForEach;
           }
         }
       }
     }
-    if (forEach == ForEach.STOP) {
-      return forEach;
+    if (nextStep == IterationStep.STOP) {
+      return nextStep;
     }
-    return ForEach.CONTINUE;
+    return IterationStep.CONTINUE;
   }
 
   /// Returns the most specific subclass of [cls] (including [cls]) that is
@@ -425,7 +425,23 @@
   final ClassHierarchyNode node;
   ClassElement _leastUpperInstantiatedSubtype;
 
-  List<ClassHierarchyNode> _directSubtypes;
+  /// A list of the class hierarchy nodes for the subtypes that declare a
+  /// subtype relationship to [cls] either directly or indirectly.
+  ///
+  /// For instance
+  ///
+  ///     class A {}
+  ///     class B extends A {}
+  ///     class C implements B {}
+  ///     class D implements A {}
+  ///     class E extends D {}
+  ///
+  /// The class hierarchy nodes for classes `C` and `D` are in [_subtypes]. `C`
+  /// because it implements `A` through `B` and `D` because it implements `A`
+  /// directly. `E` also implements `A` through its extension of `D` and it is
+  /// therefore included through the class hierarchy node for `D`.
+  ///
+  List<ClassHierarchyNode> _subtypes;
 
   ClassSet(this.node);
 
@@ -434,8 +450,8 @@
   /// Returns the number of directly instantiated subtypes of [cls].
   int get instantiatedSubtypeCount {
     int count = node.instantiatedSubclassCount;
-    if (_directSubtypes != null) {
-      for (ClassHierarchyNode subtypeNode in _directSubtypes) {
+    if (_subtypes != null) {
+      for (ClassHierarchyNode subtypeNode in _subtypes) {
         if (subtypeNode.isDirectlyInstantiated) {
           count++;
         }
@@ -448,8 +464,8 @@
   /// Returns `true` if all instantiated subtypes of [cls] are subclasses of
   /// [cls].
   bool get hasOnlyInstantiatedSubclasses {
-    if (_directSubtypes != null) {
-      for (ClassHierarchyNode subtypeNode in _directSubtypes) {
+    if (_subtypes != null) {
+      for (ClassHierarchyNode subtypeNode in _subtypes) {
         if (subtypeNode.isInstantiated) {
           return false;
         }
@@ -495,7 +511,7 @@
   Iterable<ClassElement> subtypesByMask(
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
-    if (_directSubtypes == null) {
+    if (_subtypes == null) {
       return node.subclassesByMask(
           mask,
           strict: strict);
@@ -534,7 +550,7 @@
   /// continues. The return value of the function is either [ForEach.STOP], if
   /// visitation was stopped, or [ForEach.CONTINUE] if visitation continued to
   /// the end.
-  ForEach forEachSubclass(
+  IterationStep forEachSubclass(
       ForEachFunction f,
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
@@ -553,10 +569,10 @@
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
 
-    ForEach wrapper(ClassElement cls) {
-      return predicate(cls) ? ForEach.STOP : ForEach.CONTINUE;
+    IterationStep wrapper(ClassElement cls) {
+      return predicate(cls) ? IterationStep.STOP : IterationStep.CONTINUE;
     }
-    return forEachSubtype(wrapper, mask, strict: strict) == ForEach.STOP;
+    return forEachSubtype(wrapper, mask, strict: strict) == IterationStep.STOP;
   }
 
   /// Applies [f] to each subtype of [cls] matching the criteria specified by
@@ -573,22 +589,22 @@
   /// continues. The return value of the function is either [ForEach.STOP], if
   /// visitation was stopped, or [ForEach.CONTINUE] if visitation continued to
   /// the end.
-  ForEach forEachSubtype(
+  IterationStep forEachSubtype(
       ForEachFunction f,
       EnumSet<Instantiation> mask,
       {bool strict: false}) {
-    ForEach forEach = node.forEachSubclass(f, mask, strict: strict);
-    forEach ??= ForEach.CONTINUE;
-    if (forEach == ForEach.CONTINUE && _directSubtypes != null) {
-      for (ClassHierarchyNode subclass in _directSubtypes) {
-        ForEach subForEach = subclass.forEachSubclass(f, mask);
-        if (subForEach == ForEach.STOP) {
+    IterationStep nextStep =
+        node.forEachSubclass(f, mask, strict: strict) ?? IterationStep.CONTINUE;
+    if (nextStep == IterationStep.CONTINUE && _subtypes != null) {
+      for (ClassHierarchyNode subclass in _subtypes) {
+        IterationStep subForEach = subclass.forEachSubclass(f, mask);
+        if (subForEach == IterationStep.STOP) {
           return subForEach;
         }
       }
     }
-    assert(forEach != ForEach.SKIP_SUBCLASSES);
-    return forEach;
+    assert(nextStep != IterationStep.SKIP_SUBCLASSES);
+    return nextStep;
   }
 
   /// Adds [subtype] as a subtype of [cls].
@@ -596,13 +612,13 @@
     if (node.contains(subtype.cls)) {
       return;
     }
-    if (_directSubtypes == null) {
-      _directSubtypes = <ClassHierarchyNode>[subtype];
+    if (_subtypes == null) {
+      _subtypes = <ClassHierarchyNode>[subtype];
     } else {
       int hierarchyDepth = subtype.cls.hierarchyDepth;
       List<ClassHierarchyNode> newSubtypes = <ClassHierarchyNode>[];
       bool added = false;
-      for (ClassHierarchyNode otherSubtype in _directSubtypes) {
+      for (ClassHierarchyNode otherSubtype in _subtypes) {
         int otherHierarchyDepth = otherSubtype.cls.hierarchyDepth;
         if (hierarchyDepth == otherHierarchyDepth) {
           if (subtype == otherSubtype) {
@@ -637,7 +653,7 @@
       if (!added) {
         newSubtypes.add(subtype);
       }
-      _directSubtypes = newSubtypes;
+      _subtypes = newSubtypes;
     }
   }
 
@@ -655,14 +671,14 @@
     if (node.isDirectlyInstantiated) {
       return cls;
     }
-    if (_directSubtypes == null) {
+    if (_subtypes == null) {
       return node.getLubOfInstantiatedSubclasses();
     }
     ClassHierarchyNode subtype;
     if (node.isInstantiated) {
       subtype = node;
     }
-    for (ClassHierarchyNode subnode in _directSubtypes) {
+    for (ClassHierarchyNode subnode in _subtypes) {
       if (subnode.isInstantiated) {
         if (subtype == null) {
           subtype = subnode;
@@ -682,8 +698,8 @@
     sb.write('[\n');
     node.printOn(sb, '  ');
     sb.write('\n');
-    if (_directSubtypes != null) {
-      for (ClassHierarchyNode node in _directSubtypes) {
+    if (_subtypes != null) {
+      for (ClassHierarchyNode node in _subtypes) {
         node.printOn(sb, '  ');
         sb.write('\n');
       }
@@ -841,7 +857,7 @@
     }
     if (hierarchyNodes == null) {
       // Start iterating through subtypes.
-      hierarchyNodes = iterable.subtypeSet._directSubtypes.iterator;
+      hierarchyNodes = iterable.subtypeSet._subtypes.iterator;
     }
     while (hierarchyNodes.moveNext()) {
       elements = hierarchyNodes.current.subclassesByMask(mask).iterator;
@@ -856,7 +872,7 @@
 /// Enum values returned from the [ForEachFunction] provided to the `forEachX`
 /// functions of [ClassHierarchyNode] and [ClassSet]. The value is used to
 /// control the continued iteration.
-enum ForEach {
+enum IterationStep {
   /// Iteration continues.
   CONTINUE,
   /// Iteration stops immediately.
@@ -868,4 +884,4 @@
 /// Visiting function used for the `forEachX` functions of [ClassHierarchyNode]
 /// and [ClassSet]. The return value controls the continued iteration. If `null`
 /// is returned, iteration continues to the end.
-typedef ForEach ForEachFunction(ClassElement cls);
+typedef IterationStep ForEachFunction(ClassElement cls);
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart
index da08fb6..3e382e1 100644
--- a/pkg/compiler/lib/src/world.dart
+++ b/pkg/compiler/lib/src/world.dart
@@ -99,7 +99,8 @@
 
   /// Applies [f] to each live class that extend [cls] _not_ including [cls]
   /// itself.
-  void forEachStrictSubclassOf(ClassElement cls, ForEach f(ClassElement cls));
+  void forEachStrictSubclassOf(ClassElement cls,
+                               IterationStep f(ClassElement cls));
 
   /// Returns `true` if [predicate] applies to any live class that extend [cls]
   /// _not_ including [cls] itself.
@@ -119,7 +120,8 @@
 
   /// Applies [f] to each live class that implements [cls] _not_ including [cls]
   /// itself.
-  void forEachStrictSubtypeOf(ClassElement cls, ForEach f(ClassElement cls));
+  void forEachStrictSubtypeOf(ClassElement cls,
+                              IterationStep f(ClassElement cls));
 
   /// Returns `true` if [predicate] applies to any live class that implements
   /// [cls] _not_ including [cls] itself.
@@ -282,7 +284,8 @@
 
   /// Applies [f] to each live class that extend [cls] _not_ including [cls]
   /// itself.
-  void forEachStrictSubclassOf(ClassElement cls, ForEach f(ClassElement cls)) {
+  void forEachStrictSubclassOf(ClassElement cls,
+                               IterationStep f(ClassElement cls)) {
     ClassHierarchyNode subclasses = _classHierarchyNodes[cls.declaration];
     if (subclasses == null) return;
     subclasses.forEachSubclass(
@@ -336,7 +339,8 @@
 
   /// Applies [f] to each live class that implements [cls] _not_ including [cls]
   /// itself.
-  void forEachStrictSubtypeOf(ClassElement cls, ForEach f(ClassElement cls)) {
+  void forEachStrictSubtypeOf(ClassElement cls,
+                              IterationStep f(ClassElement cls)) {
     ClassSet classSet = _classSets[cls.declaration];
     if (classSet == null) return;
     classSet.forEachSubtype(
diff --git a/pkg/dart_messages/bin/publish.dart b/pkg/dart_messages/bin/publish.dart
index d6e3f87..48f0c30 100644
--- a/pkg/dart_messages/bin/publish.dart
+++ b/pkg/dart_messages/bin/publish.dart
@@ -172,6 +172,19 @@
   });
 }
 
+String camlToAllCaps(String input) {
+  StringBuffer out = new StringBuffer();
+  for (int i = 0; i < input.length; i++) {
+    String c = input[i];
+    if (c.toUpperCase() == c) {
+      out.write("_$c");
+    } else {
+      out.write(c.toUpperCase());
+    }
+  }
+  return out.toString();
+}
+
 /// Emits the messages in analyzer format.
 ///
 /// Messages are encoded as instances of `ErrorCode` classes where the
@@ -200,21 +213,25 @@
       "show ParserErrorCode;");
   input.forEach((name, message) {
     if (!message.usedBy.contains(Platform.analyzer)) return;
+    List<Category> categories = message.categories;
+    bool hasMultipleCategories = categories.length != 1;
+    for (Category category in categories) {
+      String className = category.name + "Code";
+      String analyzerName =
+          hasMultipleCategories ? "$name${camlToAllCaps(category.name)}" : name;
+      out.writeln();
+      out.writeln("const $className $analyzerName = const $className(");
+      out.writeln("    '$name',");
 
-    Category category = message.category;
-    String className = category.name + "Code";
-    out.writeln();
-    out.writeln("const $className $name = const $className(");
-    out.writeln("    '$name',");
-
-    String template = message.template;
-    List holeOrder = message.templateHoleOrder;
-    String analyzerTemplate = convertToAnalyzerTemplate(template, holeOrder);
-    out.write("    ");
-    out.write(escapeString(analyzerTemplate));
-    out.write(",\n    ");
-    out.write(escapeString(message.howToFix));
-    out.writeln(");  // Generated. Don't edit.");
+      String template = message.template;
+      List holeOrder = message.templateHoleOrder;
+      String analyzerTemplate = convertToAnalyzerTemplate(template, holeOrder);
+      out.write("    ");
+      out.write(escapeString(analyzerTemplate));
+      out.write(",\n    ");
+      out.write(escapeString(message.howToFix));
+      out.writeln(");  // Generated. Don't edit.");
+    }
   });
 
   new io.File(outPath).writeAsStringSync(out.toString());
diff --git a/pkg/dart_messages/lib/generated/shared_messages.json b/pkg/dart_messages/lib/generated/shared_messages.json
index a40bc3f..7693f4a 100644
--- a/pkg/dart_messages/lib/generated/shared_messages.json
+++ b/pkg/dart_messages/lib/generated/shared_messages.json
@@ -2,7 +2,9 @@
   "exampleMessage": {
     "id": "use an Id generated by bin/message_id.dart",
     "subId": 0,
-    "category": "AnalysisOptionsError",
+    "categories": [
+      "AnalysisOptionsError"
+    ],
     "template": "#use #named #arguments",
     "templateHoleOrder": [
       "arguments",
@@ -23,7 +25,9 @@
   "CONST_CONSTRUCTOR_OR_FACTORY_WITH_BODY": {
     "id": "LGJGHW",
     "subId": 0,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Const constructor or factory can't have a body.",
     "templateHoleOrder": null,
     "howToFix": "Remove the 'const' keyword or the body.",
@@ -39,7 +43,9 @@
   "CONST_CONSTRUCTOR_WITH_BODY": {
     "id": "LGJGHW",
     "subId": 1,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Const constructor can't have a body.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword or the body.",
@@ -54,7 +60,9 @@
   "CONST_FACTORY": {
     "id": "LGJGHW",
     "subId": 2,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Only redirecting factory constructors can be declared to be 'const'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword or replacing the body with '=' followed by a valid target.",
@@ -69,7 +77,9 @@
   "EXTRANEOUS_MODIFIER": {
     "id": "GRKIQE",
     "subId": 0,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Can't have modifier '#{modifier}' here.",
     "templateHoleOrder": null,
     "howToFix": "Try removing '#{modifier}'.",
@@ -99,7 +109,9 @@
   "EXTRANEOUS_MODIFIER_REPLACE": {
     "id": "GRKIQE",
     "subId": 1,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Can't have modifier '#{modifier}' here.",
     "templateHoleOrder": null,
     "howToFix": "Try replacing modifier '#{modifier}' with 'var', 'final', or a type.",
@@ -117,8 +129,10 @@
   "CONST_CLASS": {
     "id": "GRKIQE",
     "subId": 2,
-    "category": "ParserError",
-    "template": "Classes can't be declared to be 'const'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Classes can't be declared to be 'const'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword or moving to the class' constructor(s).",
     "options": null,
@@ -132,8 +146,10 @@
   "CONST_METHOD": {
     "id": "GRKIQE",
     "subId": 3,
-    "category": "ParserError",
-    "template": "Getters, setters and methods can't be declared to be 'const'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Getters, setters and methods can't be declared to be 'const'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword.",
     "options": null,
@@ -152,8 +168,10 @@
   "CONST_ENUM": {
     "id": "GRKIQE",
     "subId": 4,
-    "category": "ParserError",
-    "template": "Enums can't be declared to be 'const'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Enums can't be declared to be 'const'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword.",
     "options": null,
@@ -167,8 +185,10 @@
   "CONST_TYPEDEF": {
     "id": "GRKIQE",
     "subId": 5,
-    "category": "ParserError",
-    "template": "Type aliases can't be declared to be 'const'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Type aliases can't be declared to be 'const'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the 'const' keyword.",
     "options": null,
@@ -182,8 +202,10 @@
   "CONST_AND_FINAL": {
     "id": "GRKIQE",
     "subId": 6,
-    "category": "ParserError",
-    "template": "Members can't be declared to be both 'const' and 'final'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Members can't be declared to be both 'const' and 'final'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing either the 'const' or 'final' keyword.",
     "options": null,
@@ -200,8 +222,10 @@
   "CONST_AND_VAR": {
     "id": "GRKIQE",
     "subId": 7,
-    "category": "ParserError",
-    "template": "Members can't be declared to be both 'const' and 'var'",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Members can't be declared to be both 'const' and 'var'.",
     "templateHoleOrder": null,
     "howToFix": "Try removing either the 'const' or 'var' keyword.",
     "options": null,
@@ -218,7 +242,9 @@
   "CLASS_IN_CLASS": {
     "id": "DOTHQH",
     "subId": 0,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Classes can't be declared inside other classes.",
     "templateHoleOrder": null,
     "howToFix": "Try moving the class to the top-level.",
@@ -233,8 +259,10 @@
   "CONSTRUCTOR_WITH_RETURN_TYPE": {
     "id": "VOJBWY",
     "subId": 0,
-    "category": "ParserError",
-    "template": "Constructors can't have a return type",
+    "categories": [
+      "ParserError"
+    ],
+    "template": "Constructors can't have a return type.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the return type.",
     "options": null,
@@ -249,7 +277,9 @@
   "MISSING_EXPRESSION_IN_THROW": {
     "id": "FTGGMJ",
     "subId": 0,
-    "category": "ParserError",
+    "categories": [
+      "ParserError"
+    ],
     "template": "Missing expression after 'throw'.",
     "templateHoleOrder": null,
     "howToFix": "Did you mean 'rethrow'?",
@@ -266,8 +296,10 @@
   "RETHROW_OUTSIDE_CATCH": {
     "id": "MWETLC",
     "subId": 0,
-    "category": "CompileTimeError",
-    "template": "Rethrow must be inside of catch clause",
+    "categories": [
+      "CompileTimeError"
+    ],
+    "template": "Rethrow must be inside of catch clause.",
     "templateHoleOrder": null,
     "howToFix": "Try moving the expression into a catch clause, or using a 'throw' expression.",
     "options": null,
@@ -282,7 +314,9 @@
   "RETURN_IN_GENERATIVE_CONSTRUCTOR": {
     "id": "UOTDQH",
     "subId": 0,
-    "category": "CompileTimeError",
+    "categories": [
+      "CompileTimeError"
+    ],
     "template": "Constructors can't return values.",
     "templateHoleOrder": null,
     "howToFix": "Try removing the return statement or using a factory constructor.",
@@ -298,10 +332,12 @@
   "RETURN_IN_GENERATOR": {
     "id": "JRUTUQ",
     "subId": 0,
-    "category": "CompileTimeError",
+    "categories": [
+      "CompileTimeError"
+    ],
     "template": "Can't return a value from a generator function (using the '#{modifier}' modifier).",
     "templateHoleOrder": null,
-    "howToFix": "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier",
+    "howToFix": "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier.",
     "options": null,
     "usedBy": [
       "Platform.analyzer",
@@ -311,5 +347,359 @@
       "        foo() async* { return 0; }\n        main() => foo();\n        ",
       "        foo() sync* { return 0; }\n        main() => foo();\n        "
     ]
+  },
+  "NOT_ASSIGNABLE": {
+    "id": "FYQYXB",
+    "subId": 0,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "'#{fromType}' is not assignable to '#{toType}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": null
+  },
+  "FORIN_NOT_ASSIGNABLE": {
+    "id": "FYQYXB",
+    "subId": 1,
+    "categories": [
+      "Hint"
+    ],
+    "template": "The element type '#{currentType}' of '#{expressionType}' is not assignable to '#{elementType}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": [
+      "        main() {\n          List<int> list = <int>[1, 2];\n          for (String x in list) x;\n        }\n        "
+    ]
+  },
+  "RETURN_OF_INVALID_TYPE": {
+    "id": "FYQYXB",
+    "subId": 2,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The return type '#{fromType}' is not a '#{toType}', as defined by the method '#{method}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "int foo() => 'foo'; main() { foo(); }"
+    ]
+  },
+  "ARGUMENT_TYPE_NOT_ASSIGNABLE": {
+    "id": "FYQYXB",
+    "subId": 3,
+    "categories": [
+      "Hint",
+      "StaticWarning"
+    ],
+    "template": "The argument type '#{fromType}' cannot be assigned to the parameter type '#{toType}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "foo(int x) => x; main() { foo('bar'); }"
+    ]
+  },
+  "CANNOT_RESOLVE": {
+    "id": "ERUSKD",
+    "subId": 0,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "Can't resolve '#{name}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": null
+  },
+  "UNDEFINED_METHOD": {
+    "id": "ERUSKD",
+    "subId": 1,
+    "categories": [
+      "StaticTypeWarning",
+      "Hint"
+    ],
+    "template": "The method '#{memberName}' is not defined for the class '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js",
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        class A {\n          foo() { bar(); }\n        }\n        main() { new A().foo(); }\n        "
+    ]
+  },
+  "UNDEFINED_METHOD_WITH_CONSTRUCTOR": {
+    "id": "ERUSKD",
+    "subId": 2,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The method '#{memberName}' is not defined for the class '#{className}', but a constructor with that name is defined.",
+    "templateHoleOrder": null,
+    "howToFix": "Try adding 'new' or 'const' to invoke the constuctor, or change the method name.",
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        class A {\n          A.bar() {}\n        }\n        main() { A.bar(); }\n        "
+    ]
+  },
+  "UNDEFINED_GETTER": {
+    "id": "ERUSKD",
+    "subId": 3,
+    "categories": [
+      "StaticTypeWarning",
+      "StaticWarning",
+      "Hint"
+    ],
+    "template": "The getter '#{memberName}' is not defined for the class '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js",
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "class A {} main() { new A().x; }",
+      "class A {} main() { A.x; }"
+    ]
+  },
+  "UNDEFINED_ENUM_CONSTANT": {
+    "id": "ERUSKD",
+    "subId": 4,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "There is no constant named '#{memberName}' in '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        enum E { ONE }\n        E e() { return E.TWO; }\n        main() { e(); }\n       "
+    ]
+  },
+  "UNDEFINED_INSTANCE_GETTER_BUT_SETTER": {
+    "id": "ERUSKD",
+    "subId": 5,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The setter '#{memberName}' in class '#{className}' can not be used as a getter.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": [
+      "class A { set x(y) {} } main() { new A().x; }"
+    ]
+  },
+  "UNDEFINED_OPERATOR": {
+    "id": "ERUSKD",
+    "subId": 6,
+    "categories": [
+      "StaticTypeWarning",
+      "Hint"
+    ],
+    "template": "The operator '#{memberName}' is not defined for the class '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js",
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "class A {} main() { new A() + 3; }"
+    ]
+  },
+  "UNDEFINED_SETTER": {
+    "id": "ERUSKD",
+    "subId": 7,
+    "categories": [
+      "StaticTypeWarning",
+      "StaticWarning",
+      "Hint"
+    ],
+    "template": "The setter '#{memberName}' is not defined for the class '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js",
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "class A {} main() { new A().x = 499; }"
+    ]
+  },
+  "NO_SUCH_SUPER_MEMBER": {
+    "id": "ERUSKD",
+    "subId": 8,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "Can't resolve '#{memberName}' in a superclass of '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": null
+  },
+  "UNDEFINED_SUPER_GETTER": {
+    "id": "ERUSKD",
+    "subId": 9,
+    "categories": [
+      "StaticTypeWarning",
+      "StaticWarning"
+    ],
+    "template": "The getter '#{memberName}' is not defined in a superclass of '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        class A {}\n        class B extends A {\n          foo() => super.x;\n        }\n        main() { new B().foo(); }\n        "
+    ]
+  },
+  "UNDEFINED_SUPER_METHOD": {
+    "id": "ERUSKD",
+    "subId": 10,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The method '#{memberName}' is not defined in a superclass of '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        class A {}\n        class B extends A {\n          foo() => super.x();\n        }\n        main() { new B().foo(); }\n        "
+    ]
+  },
+  "UNDEFINED_SUPER_OPERATOR": {
+    "id": "ERUSKD",
+    "subId": 11,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The operator '#{memberName}' is not defined in a superclass of '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "        class A {}\n        class B extends A {\n          foo() => super + 499;\n        }\n        main() { new B().foo(); }\n        "
+    ]
+  },
+  "UNDEFINED_SUPER_SETTER": {
+    "id": "ERUSKD",
+    "subId": 12,
+    "categories": [
+      "StaticTypeWarning",
+      "StaticWarning"
+    ],
+    "template": "The setter '#{memberName}' is not defined in a superclass of '#{className}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer",
+      "Platform.dart2js"
+    ],
+    "examples": [
+      "        class A {}\n        class B extends A {\n          foo() { super.x = 499; }\n        }\n        main() { new B().foo(); }\n        "
+    ]
+  },
+  "UNDEFINED_FUNCTION": {
+    "id": "ERUSKD",
+    "subId": 13,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "The function '#{memberName}' is not defined.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.analyzer"
+    ],
+    "examples": [
+      "main() { foo(); }"
+    ]
+  },
+  "UNDEFINED_STATIC_GETTER_BUT_SETTER": {
+    "id": "ERUSKD",
+    "subId": 14,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "Cannot resolve getter '#{name}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": [
+      "set foo(x) {}  main() { foo; }"
+    ]
+  },
+  "UNDEFINED_STATIC_SETTER_BUT_GETTER": {
+    "id": "ERUSKD",
+    "subId": 15,
+    "categories": [
+      "StaticTypeWarning"
+    ],
+    "template": "Cannot resolve setter '#{name}'.",
+    "templateHoleOrder": null,
+    "howToFix": null,
+    "options": null,
+    "usedBy": [
+      "Platform.dart2js"
+    ],
+    "examples": [
+      "        main() {\n          final x = 1;\n          x = 2;\n        }",
+      "        main() {\n          const x = 1;\n          x = 2;\n        }\n        ",
+      "        final x = 1;\n        main() { x = 3; }\n        ",
+      "        const x = 1;\n        main() { x = 3; }\n        ",
+      "get foo => null  main() { foo = 5; }",
+      "const foo = 0  main() { foo = 5; }"
+    ]
   }
 }
\ No newline at end of file
diff --git a/pkg/dart_messages/lib/shared_messages.dart b/pkg/dart_messages/lib/shared_messages.dart
index ece8895..5aa2ced 100644
--- a/pkg/dart_messages/lib/shared_messages.dart
+++ b/pkg/dart_messages/lib/shared_messages.dart
@@ -77,6 +77,12 @@
 
   static final compileTimeError = new Category("CompileTimeError");
 
+  static final staticTypeWarning = new Category("StaticTypeWarning");
+
+  static final staticWarning = new Category("StaticWarning");
+
+  static final hint = new Category("Hint");
+
   final String name;
 
   Category(this.name);
@@ -100,16 +106,24 @@
   /// This id just needs to be unique within the same [id].
   final int subId;
 
-  /// The error sub-id of which this message is a specialization.
+  /// The error of which this message is a specialization.
   ///
   /// For example, "Const is not allowed on getters" may be a specialization of
   /// "The 'const' keyword is not allowed here".
   ///
   /// Examples of the specialized message, should trigger for the more generic
   /// message, when the platform doesn't support the more specialized message.
-  final int specializationOf;
+  ///
+  /// Specializations must have the same error-id (but not sub-id) as the more
+  /// generic message.
+  final String specializationOf;
 
-  final Category category;
+  /// The categories of this message.
+  ///
+  /// The same message can be used in multiple categories, for example, as
+  /// hint and warning.
+  final List<Category> categories;
+
   final String template;
   // The analyzer fills holes positionally (and not named). The following field
   // overrides the order of the holes.
@@ -127,8 +141,8 @@
   Message(
       {this.id,
       this.subId: 0,
-      this.specializationOf: -1,
-      this.category,
+      this.specializationOf: null,
+      this.categories,
       this.template,
       this.templateHoleOrder,
       this.howToFix,
@@ -143,7 +157,8 @@
     jsonified[name] = {
       'id': message.id,
       'subId': message.subId,
-      'category': message.category.name,
+      'categories':
+          message.categories.map((category) => category.name).toList(),
       'template': message.template,
       'templateHoleOrder': message.templateHoleOrder,
       'howToFix': message.howToFix,
@@ -158,7 +173,7 @@
 final Map<String, Message> MESSAGES = {
   'exampleMessage': new Message(
       id: 'use an Id generated by bin/message_id.dart',
-      category: Category.analysisOptionsError,
+      categories: [Category.analysisOptionsError],
       template: "#use #named #arguments",
       templateHoleOrder: ["arguments", "named", "use"],
       howToFix: "an explanation on how to fix things",
@@ -180,12 +195,10 @@
   'CONST_CONSTRUCTOR_OR_FACTORY_WITH_BODY': new Message(
       id: 'LGJGHW',
       subId: 0,
-      category: Category.parserError,
+      categories: [Category.parserError],
       template: "Const constructor or factory can't have a body.",
       howToFix: "Remove the 'const' keyword or the body.",
-      usedBy: [
-        dart2js
-      ],
+      usedBy: [dart2js],
       examples: const [
         r"""
          class C {
@@ -204,13 +217,11 @@
   'CONST_CONSTRUCTOR_WITH_BODY': new Message(
       id: 'LGJGHW',
       subId: 1,
-      specializationOf: 0,
-      category: Category.parserError,
+      specializationOf: "CONST_CONSTRUCTOR_OR_FACTORY_WITH_BODY",
+      categories: [Category.parserError],
       template: "Const constructor can't have a body.",
       howToFix: "Try removing the 'const' keyword or the body.",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         r"""
          class C {
@@ -223,15 +234,13 @@
   'CONST_FACTORY': new Message(
       id: 'LGJGHW',
       subId: 2,
-      specializationOf: 0,
-      category: Category.parserError,
+      specializationOf: "CONST_CONSTRUCTOR_OR_FACTORY_WITH_BODY",
+      categories: [Category.parserError],
       template: "Only redirecting factory constructors can be declared to "
           "be 'const'.",
       howToFix: "Try removing the 'const' keyword or replacing the body with "
           "'=' followed by a valid target.",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         r"""
          class C {
@@ -244,12 +253,10 @@
   'EXTRANEOUS_MODIFIER': new Message(
       id: 'GRKIQE',
       subId: 0,
-      category: Category.parserError,
+      categories: [Category.parserError],
       template: "Can't have modifier '#{modifier}' here.",
       howToFix: "Try removing '#{modifier}'.",
-      usedBy: [
-        dart2js
-      ],
+      usedBy: [dart2js],
       examples: const [
         "var String foo; main(){}",
         // "var get foo; main(){}",
@@ -273,13 +280,11 @@
   'EXTRANEOUS_MODIFIER_REPLACE': new Message(
       id: 'GRKIQE',
       subId: 1,
-      category: Category.parserError,
+      categories: [Category.parserError],
       template: "Can't have modifier '#{modifier}' here.",
       howToFix: "Try replacing modifier '#{modifier}' with 'var', 'final', "
           "or a type.",
-      usedBy: [
-        dart2js
-      ],
+      usedBy: [dart2js],
       examples: const [
         // "get foo; main(){}",
         "set foo; main(){}",
@@ -291,15 +296,14 @@
   'CONST_CLASS': new Message(
       id: 'GRKIQE',
       subId: 2,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Classes can't be declared to be 'const'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Classes can't be declared to be 'const'.",
       howToFix: "Try removing the 'const' keyword or moving to the class'"
           " constructor(s).",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         r"""
         const class C {}
@@ -311,14 +315,13 @@
   'CONST_METHOD': new Message(
       id: 'GRKIQE',
       subId: 3,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Getters, setters and methods can't be declared to be 'const'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Getters, setters and methods can't be declared to be 'const'.",
       howToFix: "Try removing the 'const' keyword.",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         "const int foo() => 499; main() {}",
         "const int get foo => 499; main() {}",
@@ -331,10 +334,11 @@
   'CONST_ENUM': new Message(
       id: 'GRKIQE',
       subId: 4,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Enums can't be declared to be 'const'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Enums can't be declared to be 'const'.",
       howToFix: "Try removing the 'const' keyword.",
       usedBy: [analyzer],
       examples: const ["const enum Foo { x } main() {}",]),
@@ -342,10 +346,11 @@
   'CONST_TYPEDEF': new Message(
       id: 'GRKIQE',
       subId: 5,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Type aliases can't be declared to be 'const'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Type aliases can't be declared to be 'const'.",
       howToFix: "Try removing the 'const' keyword.",
       usedBy: [analyzer],
       examples: const ["const typedef void Foo(); main() {}",]),
@@ -353,14 +358,13 @@
   'CONST_AND_FINAL': new Message(
       id: 'GRKIQE',
       subId: 6,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Members can't be declared to be both 'const' and 'final'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Members can't be declared to be both 'const' and 'final'.",
       howToFix: "Try removing either the 'const' or 'final' keyword.",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         "final const int x = 499; main() {}",
         "const final int x = 499; main() {}",
@@ -371,14 +375,13 @@
   'CONST_AND_VAR': new Message(
       id: 'GRKIQE',
       subId: 7,
-      // The specialization could also be 1, but the example below triggers 0.
-      specializationOf: 0,
-      category: Category.parserError,
-      template: "Members can't be declared to be both 'const' and 'var'",
+      // The specialization could also be 'EXTRANEOUS_MODIFIER_REPLACE', but the
+      // example below triggers 'EXTRANEOUS_MODIFIER'.
+      specializationOf: 'EXTRANEOUS_MODIFIER',
+      categories: [Category.parserError],
+      template: "Members can't be declared to be both 'const' and 'var'.",
       howToFix: "Try removing either the 'const' or 'var' keyword.",
-      usedBy: [
-        analyzer
-      ],
+      usedBy: [analyzer],
       examples: const [
         "var const x = 499; main() {}",
         "const var x = 499; main() {}",
@@ -390,7 +393,7 @@
       // Dart2js currently reports this as an EXTRANEOUS_MODIFIER error.
       // TODO(floitsch): make dart2js use this error instead.
       id: 'DOTHQH',
-      category: Category.parserError,
+      categories: [Category.parserError],
       template: "Classes can't be declared inside other classes.",
       howToFix: "Try moving the class to the top-level.",
       usedBy: [analyzer],
@@ -398,8 +401,8 @@
 
   'CONSTRUCTOR_WITH_RETURN_TYPE': new Message(
       id: 'VOJBWY',
-      category: Category.parserError,
-      template: "Constructors can't have a return type",
+      categories: [Category.parserError],
+      template: "Constructors can't have a return type.",
       howToFix: "Try removing the return type.",
       usedBy: [analyzer, dart2js],
       examples: const ["class A { int A() {} } main() { new A(); }",]),
@@ -407,13 +410,10 @@
   'MISSING_EXPRESSION_IN_THROW': new Message(
       id: 'FTGGMJ',
       subId: 0,
-      category: Category.parserError,
+      categories: [Category.parserError],
       template: "Missing expression after 'throw'.",
       howToFix: "Did you mean 'rethrow'?",
-      usedBy: [
-        analyzer,
-        dart2js
-      ],
+      usedBy: [analyzer, dart2js],
       examples: const [
         'main() { throw; }',
         'main() { try { throw 0; } catch(e) { throw; } }'
@@ -425,8 +425,8 @@
    */
   'RETHROW_OUTSIDE_CATCH': new Message(
       id: 'MWETLC',
-      category: Category.compileTimeError,
-      template: 'Rethrow must be inside of catch clause',
+      categories: [Category.compileTimeError],
+      template: 'Rethrow must be inside of catch clause.',
       howToFix: "Try moving the expression into a catch clause, or "
           "using a 'throw' expression.",
       usedBy: [analyzer, dart2js],
@@ -438,14 +438,11 @@
    */
   'RETURN_IN_GENERATIVE_CONSTRUCTOR': new Message(
       id: 'UOTDQH',
-      category: Category.compileTimeError,
+      categories: [Category.compileTimeError],
       template: "Constructors can't return values.",
       howToFix:
           "Try removing the return statement or using a factory constructor.",
-      usedBy: [
-        analyzer,
-        dart2js
-      ],
+      usedBy: [analyzer, dart2js],
       examples: const [
         """
         class C {
@@ -464,15 +461,12 @@
   'RETURN_IN_GENERATOR': new Message(
       id: 'JRUTUQ',
       subId: 0,
-      category: Category.compileTimeError,
+      categories: [Category.compileTimeError],
       template: "Can't return a value from a generator function "
           "(using the '#{modifier}' modifier).",
       howToFix: "Try removing the value, replacing 'return' with 'yield' or"
-          " changing the method body modifier",
-      usedBy: [
-        analyzer,
-        dart2js
-      ],
+          " changing the method body modifier.",
+      usedBy: [analyzer, dart2js],
       examples: const [
         """
         foo() async* { return 0; }
@@ -483,4 +477,430 @@
         main() => foo();
         """
       ]),
+
+  'NOT_ASSIGNABLE': new Message(
+      id: 'FYQYXB',
+      subId: 0,
+      categories: [Category.staticTypeWarning],
+      template: "'#{fromType}' is not assignable to '#{toType}'.",
+      usedBy: [dart2js]),
+
+  'FORIN_NOT_ASSIGNABLE': new Message(
+      id: 'FYQYXB',
+      subId: 1,
+      categories: [Category.hint],
+      template: "The element type '#{currentType}' of '#{expressionType}' "
+          "is not assignable to '#{elementType}'.",
+      usedBy: [dart2js],
+      examples: const [
+        """
+        main() {
+          List<int> list = <int>[1, 2];
+          for (String x in list) x;
+        }
+        """
+      ]),
+
+  /**
+   * 13.11 Return: It is a static type warning if the type of <i>e</i> may not
+   * be assigned to the declared return type of the immediately enclosing
+   * function.
+   */
+  'RETURN_OF_INVALID_TYPE': new Message(
+      id: 'FYQYXB',
+      subId: 2,
+      specializationOf: 'NOT_ASSIGNABLE',
+      categories: [Category.staticTypeWarning],
+      template: "The return type '#{fromType}' is not a '#{toType}', as "
+          "defined by the method '#{method}'.",
+      usedBy: [analyzer],
+      examples: const ["int foo() => 'foo'; main() { foo(); }"]),
+
+  /**
+   * 12.11.1 New: It is a static warning if the static type of <i>a<sub>i</sub>,
+   * 1 &lt;= i &lt;= n+ k</i> may not be assigned to the type of the
+   * corresponding formal parameter of the constructor <i>T.id</i> (respectively
+   * <i>T</i>).
+   *
+   * 12.11.2 Const: It is a static warning if the static type of
+   * <i>a<sub>i</sub>, 1 &lt;= i &lt;= n+ k</i> may not be assigned to the type
+   * of the corresponding formal parameter of the constructor <i>T.id</i>
+   * (respectively <i>T</i>).
+   *
+   * 12.14.2 Binding Actuals to Formals: Let <i>T<sub>i</sub></i> be the static
+   * type of <i>a<sub>i</sub></i>, let <i>S<sub>i</sub></i> be the type of
+   * <i>p<sub>i</sub>, 1 &lt;= i &lt;= n+k</i> and let <i>S<sub>q</sub></i> be
+   * the type of the named parameter <i>q</i> of <i>f</i>. It is a static
+   * warning if <i>T<sub>j</sub></i> may not be assigned to <i>S<sub>j</sub>, 1
+   * &lt;= j &lt;= m</i>.
+   *
+   * 12.14.2 Binding Actuals to Formals: Furthermore, each <i>q<sub>i</sub>, 1
+   * &lt;= i &lt;= l</i>, must have a corresponding named parameter in the set
+   * <i>{p<sub>n+1</sub>, &hellip; p<sub>n+k</sub>}</i> or a static warning
+   * occurs. It is a static warning if <i>T<sub>m+j</sub></i> may not be
+   * assigned to <i>S<sub>r</sub></i>, where <i>r = q<sub>j</sub>, 1 &lt;= j
+   * &lt;= l</i>.
+   */
+  'ARGUMENT_TYPE_NOT_ASSIGNABLE': new Message(
+      id: 'FYQYXB',
+      subId: 3,
+      specializationOf: 'NOT_ASSIGNABLE',
+      categories: [Category.hint, Category.staticWarning],
+      template: "The argument type '#{fromType}' cannot be assigned to the "
+          "parameter type '#{toType}'.",
+      usedBy: [analyzer],
+      // TODO(floitsch): support hint warnings and ways to specify which
+      // category an example should trigger for.
+      examples: const ["foo(int x) => x; main() { foo('bar'); }"]),
+
+  'CANNOT_RESOLVE': new Message(
+      id: 'ERUSKD',
+      subId: 0,
+      categories: [Category.staticTypeWarning],
+      template: "Can't resolve '#{name}'.",
+      usedBy: [dart2js]),
+
+  /**
+   * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance member named <i>m</i>.
+   */
+  'UNDEFINED_METHOD': new Message(
+      id: 'ERUSKD',
+      subId: 1,
+      categories: [Category.staticTypeWarning, Category.hint],
+      template: "The method '#{memberName}' is not defined for the class"
+          " '#{className}'.",
+      usedBy: [dart2js, analyzer],
+      examples: const [
+        """
+        class A {
+          foo() { bar(); }
+        }
+        main() { new A().foo(); }
+        """,
+      ]),
+
+  /**
+   * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance member named <i>m</i>.
+   */
+  'UNDEFINED_METHOD_WITH_CONSTRUCTOR': new Message(
+      id: 'ERUSKD',
+      subId: 2,
+      specializationOf: "UNDEFINED_METHOD",
+      categories: [Category.staticTypeWarning],
+      template: "The method '#{memberName}' is not defined for the class"
+          " '#{className}', but a constructor with that name is defined.",
+      howToFix: "Try adding 'new' or 'const' to invoke the constuctor, or "
+          "change the method name.",
+      usedBy: [analyzer],
+      examples: const [
+        """
+        class A {
+          A.bar() {}
+        }
+        main() { A.bar(); }
+        """,
+      ]),
+
+  /**
+   * 12.17 Getter Invocation: Let <i>T</i> be the static type of <i>e</i>. It is
+   * a static type warning if <i>T</i> does not have a getter named <i>m</i>.
+   */
+  'UNDEFINED_GETTER': new Message(
+      id: 'ERUSKD',
+      subId: 3,
+      categories: [
+        Category.staticTypeWarning,
+        Category.staticWarning,
+        Category.hint
+      ],
+      template: "The getter '#{memberName}' is not defined for the "
+          "class '#{className}'.",
+      usedBy: [dart2js, analyzer],
+      examples: const [
+        "class A {} main() { new A().x; }",
+        "class A {} main() { A.x; }"
+      ]),
+
+  /**
+   * 12.17 Getter Invocation: It is a static warning if there is no class
+   * <i>C</i> in the enclosing lexical scope of <i>i</i>, or if <i>C</i> does
+   * not declare, implicitly or explicitly, a getter named <i>m</i>.
+   */
+  'UNDEFINED_ENUM_CONSTANT': new Message(
+      id: 'ERUSKD',
+      subId: 4,
+      specializationOf: 'UNDEFINED_GETTER',
+      categories: [Category.staticTypeWarning],
+      template: "There is no constant named '#{memberName}' in '#{className}'.",
+      usedBy: [analyzer],
+      examples: const [
+        """
+        enum E { ONE }
+        E e() { return E.TWO; }
+        main() { e(); }
+       """
+      ]),
+
+  'UNDEFINED_INSTANCE_GETTER_BUT_SETTER': new Message(
+      id: 'ERUSKD',
+      subId: 5,
+      specializationOf: 'UNDEFINED_GETTER',
+      categories: [Category.staticTypeWarning,],
+      template: "The setter '#{memberName}' in class '#{className}' can"
+          " not be used as a getter.",
+      usedBy: [dart2js],
+      examples: const ["class A { set x(y) {} } main() { new A().x; }",]),
+
+  /**
+   * 12.18 Assignment: Evaluation of an assignment of the form
+   * <i>e<sub>1</sub></i>[<i>e<sub>2</sub></i>] = <i>e<sub>3</sub></i> is
+   * equivalent to the evaluation of the expression (a, i, e){a.[]=(i, e);
+   * return e;} (<i>e<sub>1</sub></i>, <i>e<sub>2</sub></i>,
+   * <i>e<sub>2</sub></i>).
+   *
+   * 12.29 Assignable Expressions: An assignable expression of the form
+   * <i>e<sub>1</sub></i>[<i>e<sub>2</sub></i>] is evaluated as a method
+   * invocation of the operator method [] on <i>e<sub>1</sub></i> with argument
+   * <i>e<sub>2</sub></i>.
+   *
+   * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance member named <i>m</i>.
+   */
+  'UNDEFINED_OPERATOR': new Message(
+      id: 'ERUSKD',
+      subId: 6,
+      categories: [Category.staticTypeWarning, Category.hint],
+      template: "The operator '#{memberName}' is not defined for the "
+          "class '#{className}'.",
+      usedBy: [dart2js, analyzer],
+      examples: const ["class A {} main() { new A() + 3; }",]),
+
+  /**
+   * 12.18 Assignment: Let <i>T</i> be the static type of <i>e<sub>1</sub></i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance setter named <i>v=</i>.
+   *
+   * 12.18 Assignment: It is as static warning if an assignment of the form
+   * <i>v = e</i> occurs inside a top level or static function (be it function,
+   * method, getter, or setter) or variable initializer and there is no
+   * declaration <i>d</i> with name <i>v=</i> in the lexical scope enclosing the
+   * assignment.
+   *
+   * 12.18 Assignment: It is a static warning if there is no class <i>C</i> in
+   * the enclosing lexical scope of the assignment, or if <i>C</i> does not
+   * declare, implicitly or explicitly, a setter <i>v=</i>.
+   */
+  'UNDEFINED_SETTER': new Message(
+      id: 'ERUSKD',
+      subId: 7,
+      categories: [
+        Category.staticTypeWarning,
+        Category.staticWarning,
+        Category.hint
+      ],
+      template: "The setter '#{memberName}' is not defined for the "
+          "class '#{className}'.",
+      usedBy: [dart2js, analyzer],
+      examples: const ["class A {} main() { new A().x = 499; }",]),
+
+  'NO_SUCH_SUPER_MEMBER': new Message(
+      id: 'ERUSKD',
+      subId: 8,
+      categories: [Category.staticTypeWarning],
+      template:
+          "Can't resolve '#{memberName}' in a superclass of '#{className}'.",
+      usedBy: [dart2js]),
+
+  /**
+   * 12.17 Getter Invocation: Let <i>T</i> be the static type of <i>e</i>. It is
+   * a static type warning if <i>T</i> does not have a getter named <i>m</i>.
+   *
+   * 12.17 Getter Invocation: It is a static warning if there is no class
+   * <i>C</i> in the enclosing lexical scope of <i>i</i>, or if <i>C</i> does
+   * not declare, implicitly or explicitly, a getter named <i>m</i>.
+   */
+  'UNDEFINED_SUPER_GETTER': new Message(
+      id: 'ERUSKD',
+      subId: 9,
+      specializationOf: 'NO_SUCH_SUPER_MEMBER',
+      categories: [Category.staticTypeWarning, Category.staticWarning],
+      template: "The getter '#{memberName}' is not defined in a superclass "
+          "of '#{className}'.",
+      usedBy: [analyzer],
+      examples: const [
+        """
+        class A {}
+        class B extends A {
+          foo() => super.x;
+        }
+        main() { new B().foo(); }
+        """
+      ]),
+
+  /**
+   * 12.15.4 Super Invocation: A super method invocation <i>i</i> has the form
+   * <i>super.m(a<sub>1</sub>, &hellip;, a<sub>n</sub>, x<sub>n+1</sub>:
+   * a<sub>n+1</sub>, &hellip; x<sub>n+k</sub>: a<sub>n+k</sub>)</i>. It is a
+   * static type warning if <i>S</i> does not have an accessible instance member
+   * named <i>m</i>.
+   */
+  'UNDEFINED_SUPER_METHOD': new Message(
+      id: 'ERUSKD',
+      subId: 10,
+      specializationOf: 'NO_SUCH_SUPER_MEMBER',
+      categories: [Category.staticTypeWarning],
+      template: "The method '#{memberName}' is not defined in a superclass "
+          "of '#{className}'.",
+      usedBy: [analyzer],
+      examples: const [
+        """
+        class A {}
+        class B extends A {
+          foo() => super.x();
+        }
+        main() { new B().foo(); }
+        """
+      ]),
+
+  /**
+   * 12.18 Assignment: Evaluation of an assignment of the form
+   * <i>e<sub>1</sub></i>[<i>e<sub>2</sub></i>] = <i>e<sub>3</sub></i> is
+   * equivalent to the evaluation of the expression (a, i, e){a.[]=(i, e);
+   * return e;} (<i>e<sub>1</sub></i>, <i>e<sub>2</sub></i>,
+   * <i>e<sub>2</sub></i>).
+   *
+   * 12.29 Assignable Expressions: An assignable expression of the form
+   * <i>e<sub>1</sub></i>[<i>e<sub>2</sub></i>] is evaluated as a method
+   * invocation of the operator method [] on <i>e<sub>1</sub></i> with argument
+   * <i>e<sub>2</sub></i>.
+   *
+   * 12.15.1 Ordinary Invocation: Let <i>T</i> be the static type of <i>o</i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance member named <i>m</i>.
+   */
+  'UNDEFINED_SUPER_OPERATOR': new Message(
+      id: 'ERUSKD',
+      subId: 11,
+      specializationOf: 'NO_SUCH_SUPER_MEMBER',
+      categories: [Category.staticTypeWarning],
+      template: "The operator '#{memberName}' is not defined in a superclass "
+          "of '#{className}'.",
+      usedBy: [analyzer],
+      examples: const [
+        """
+        class A {}
+        class B extends A {
+          foo() => super + 499;
+        }
+        main() { new B().foo(); }
+        """
+      ]),
+
+  /**
+   * 12.18 Assignment: Let <i>T</i> be the static type of <i>e<sub>1</sub></i>.
+   * It is a static type warning if <i>T</i> does not have an accessible
+   * instance setter named <i>v=</i>.
+   *
+   * 12.18 Assignment: It is as static warning if an assignment of the form
+   * <i>v = e</i> occurs inside a top level or static function (be it function,
+   * method, getter, or setter) or variable initializer and there is no
+   * declaration <i>d</i> with name <i>v=</i> in the lexical scope enclosing the
+   * assignment.
+   *
+   * 12.18 Assignment: It is a static warning if there is no class <i>C</i> in
+   * the enclosing lexical scope of the assignment, or if <i>C</i> does not
+   * declare, implicitly or explicitly, a setter <i>v=</i>.
+
+   */
+  'UNDEFINED_SUPER_SETTER': new Message(
+      id: 'ERUSKD',
+      subId: 12,
+      categories: [Category.staticTypeWarning, Category.staticWarning],
+      template: "The setter '#{memberName}' is not defined in a superclass "
+          "of '#{className}'.",
+      usedBy: [analyzer, dart2js,],
+      examples: const [
+        """
+        class A {}
+        class B extends A {
+          foo() { super.x = 499; }
+        }
+        main() { new B().foo(); }
+        """,
+        // TODO(floitsch): reenable this test.
+        /*
+        """
+        main() => new B().m();
+        class A {
+          get x => 1;
+        }
+        class B extends A {
+          m() { super.x = 2; }
+        }
+        """
+        */
+      ]),
+
+  /**
+   * 12.15.3 Unqualified Invocation: If there exists a lexically visible
+   * declaration named <i>id</i>, let <i>f<sub>id</sub></i> be the innermost
+   * such declaration. Then: [skip]. Otherwise, <i>f<sub>id</sub></i> is
+   * considered equivalent to the ordinary method invocation
+   * <b>this</b>.<i>id</i>(<i>a<sub>1</sub></i>, ..., <i>a<sub>n</sub></i>,
+   * <i>x<sub>n+1</sub></i> : <i>a<sub>n+1</sub></i>, ...,
+   * <i>x<sub>n+k</sub></i> : <i>a<sub>n+k</sub></i>).
+   */
+  'UNDEFINED_FUNCTION': new Message(
+      id: 'ERUSKD',
+      subId: 13,
+      specializationOf: 'CANNOT_RESOLVE',
+      categories: [Category.staticTypeWarning],
+      template: "The function '#{memberName}' is not defined.",
+      usedBy: [analyzer],
+      examples: const ["main() { foo(); }",]),
+
+  'UNDEFINED_STATIC_GETTER_BUT_SETTER': new Message(
+      id: 'ERUSKD',
+      subId: 14,
+      specializationOf: 'CANNOT_RESOLVE',
+      categories: [Category.staticTypeWarning],
+      template: "Cannot resolve getter '#{name}'.",
+      usedBy: [dart2js],
+      examples: const ["set foo(x) {}  main() { foo; }",]),
+
+  'UNDEFINED_STATIC_SETTER_BUT_GETTER': new Message(
+      id: 'ERUSKD',
+      subId: 15,
+      specializationOf: 'CANNOT_RESOLVE',
+      categories: [Category.staticTypeWarning],
+      template: "Cannot resolve setter '#{name}'.",
+      usedBy: [dart2js],
+      examples: const [
+        """
+        main() {
+          final x = 1;
+          x = 2;
+        }""",
+        """
+        main() {
+          const x = 1;
+          x = 2;
+        }
+        """,
+        """
+        final x = 1;
+        main() { x = 3; }
+        """,
+        """
+        const x = 1;
+        main() { x = 3; }
+        """,
+        "get foo => null  main() { foo = 5; }",
+        "const foo = 0  main() { foo = 5; }",
+      ]),
 };
diff --git a/pkg/dart_messages/test/dart_messages_test.dart b/pkg/dart_messages/test/dart_messages_test.dart
index b05bc3f..80ecaaf 100644
--- a/pkg/dart_messages/test/dart_messages_test.dart
+++ b/pkg/dart_messages/test/dart_messages_test.dart
@@ -33,7 +33,24 @@
   }
 }
 
+void testSpecializationsAreOfSameId() {
+  for (var entry in MESSAGES.values) {
+    var specializationOf = entry.specializationOf;
+    if (specializationOf == null) continue;
+    var generic = MESSAGES[specializationOf];
+    if (generic == null) {
+      throw "More generic message doesn't exist: $specializationOf";
+    }
+    if (generic.id != entry.id) {
+      var id = "${entry.id}-${entry.subId}";
+      var genericId = "${generic.id}-${generic.subId}";
+      throw "Specialization doesn't have same id: $id - $genericId";
+    }
+  }
+}
+
 void main() {
   testJsonIsUpdated();
   testIdsAreUnique();
+  testSpecializationsAreOfSameId();
 }
diff --git a/pkg/meta/CHANGELOG.md b/pkg/meta/CHANGELOG.md
index fc3f06e..2420295 100644
--- a/pkg/meta/CHANGELOG.md
+++ b/pkg/meta/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 0.10.0
+* Introduce `@factory` annotation for methods that must either be abstract or
+must return a newly allocated object.
+* Introduce `@literal` annotation that indicates that any invocation of a
+constructor must use the keyword `const` unless one or more of the
+arguments to the constructor is not a compile-time constant.
+
 ## 0.9.0
 * Introduce `@protected` annotation for members that must only be called from
 instance members of subclasses.
diff --git a/pkg/meta/lib/meta.dart b/pkg/meta/lib/meta.dart
index c94fd80..16411b5 100644
--- a/pkg/meta/lib/meta.dart
+++ b/pkg/meta/lib/meta.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-/// Constants for use in metadata annotations such as `@protected`.
+/// Constants for use in metadata annotations.
 ///
 /// See also `@deprecated` and `@override` in the `dart:core` library.
 ///
@@ -84,7 +84,26 @@
 ///   name that does not have this annotation, or
 /// * an invocation of a method or function does not include an argument
 ///   corresponding to a named parameter that has this annotation.
-const _Required required = const _Required();
+const Required required = const Required();
+
+/// Used to annotate a named parameter `p` in a method or function `f`.
+///
+/// See [required] for more details.
+class Required {
+  /// A human-readable explanation of the reason why the annotated parameter is
+  /// required. For example, the annotation might look like:
+  ///
+  ///     ButtonWidget({
+  ///         Function onHover,
+  ///         @Required('Buttons must do something when pressed')
+  ///         Function onPressed,
+  ///         ...
+  ///     }) ...
+  final String reason;
+
+  /// Initialize a newly created instance to have the given [reason].
+  const Required([this.reason]);
+}
 
 class _Factory {
   const _Factory();
@@ -101,7 +120,3 @@
 class _Protected {
   const _Protected();
 }
-
-class _Required {
-  const _Required();
-}
diff --git a/pkg/meta/pubspec.yaml b/pkg/meta/pubspec.yaml
index 4b20d9c..abcbc8d 100644
--- a/pkg/meta/pubspec.yaml
+++ b/pkg/meta/pubspec.yaml
@@ -1,5 +1,5 @@
 name: meta
-version: 0.9.0
+version: 0.10.0
 author: Dart Team <misc@dartlang.org>
 homepage: http://www.dartlang.org
 description: >
diff --git a/pkg/pkg.status b/pkg/pkg.status
index f0e031c..c44aaea 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -73,6 +73,7 @@
 analyzer/test/src/context/context_test: Pass, Timeout # dartbug.com/23658
 analyzer/test/src/dart/ast/utilities_test: Pass, Slow # Issue 24914
 analyzer/test/src/dart/element/element_test: Pass, Slow # Issue 24914
+analyzer/test/src/summary/index_unit_test: Pass, Slow # Issue 24914
 analyzer/test/src/summary/prelinker_test: Pass, Slow # Issue 24914
 analyzer/test/src/summary/resynthesize_strong_test: Pass, Slow
 analyzer/test/src/summary/resynthesize_test: Pass, Slow
@@ -187,11 +188,17 @@
 analyzer/test/src/task/strong_mode_test: Pass, Slow # Times out due to inlining, but see issue 24485
 
 [ $compiler == dart2js && $cps_ir && $host_checked ]
+analyzer/test/dart/ast/ast_test: Crash # Issue 24485
+analyzer/test/dart/ast/visitor_test: Crash # Issue 24485
+analyzer/test/dart/element/element_test: Crash # Issue 24485
 analyzer/test/enum_test: Crash # Issue 24485
 analyzer/test/generated/all_the_rest_test: Crash # Issue 24485
 analyzer/test/generated/ast_test: Crash # Issue 24485
 analyzer/test/generated/compile_time_error_code_test: Crash # Issue 24485
+analyzer/test/generated/constant_test: Crash # Issue 24485
+analyzer/test/generated/declaration_resolver_test: Crash # Issue 24485
 analyzer/test/generated/element_test: Crash # Issue 24485
+analyzer/test/generated/error_suppression_test: Crash # Issue 24485
 analyzer/test/generated/incremental_resolver_test: Crash # Issue 24485
 analyzer/test/generated/incremental_scanner_test: Crash # Issue 24485
 analyzer/test/generated/non_error_resolver_test: Crash # Issue 24485
@@ -204,6 +211,15 @@
 analyzer/test/generated/utilities_test: Crash # Issue 24485
 analyzer/test/src/context/cache_test: Crash # Issue 24485
 analyzer/test/src/context/context_test: Crash # Issue 24485
+analyzer/test/src/dart/ast/utilities_test: Crash # Issue 24485
+analyzer/test/src/dart/element/element_test: Crash # Issue 24485
+analyzer/test/src/summary/index_unit_test: Crash # Issue 24485
+analyzer/test/src/summary/prelinker_test: Crash # Issue 24485
+analyzer/test/src/summary/resynthesize_test: Crash # Issue 24485
+analyzer/test/src/summary/resynthesize_strong_test: Crash # Issue 24485
+analyzer/test/src/summary/summarize_ast_test: Crash # Issue 24485
+analyzer/test/src/summary/summarize_elements_test: Crash # Issue 24485
+analyzer/test/src/summary/summarize_elements_strong_test: Crash # Issue 24485
 analyzer/test/src/task/dart_test: Crash # Issue 24485
 analyzer/test/src/task/dart_work_manager_test: Crash # Issue 24485
 analyzer/test/src/task/driver_test: Crash # Issue 24485
@@ -214,9 +230,15 @@
 analyzer/test/src/task/inputs_test: Crash # Issue 24485
 analyzer/test/src/task/manager_test: Crash # Issue 24485
 analyzer/test/src/task/model_test: Crash # Issue 24485
-analyzer/test/src/task/strong/checker_test: Crash # t: Failed assertion: line 88 pos 12: '!variable2index.containsKey(element)' is not true.
-analyzer/test/src/task/strong/inferred_type_test: Crash # t: Failed assertion: line 88 pos 12: '!variable2index.containsKey(element)' is not true.
+analyzer/test/src/task/options_test: Crash # Issue 24485
+analyzer/test/src/task/options_work_manager_test: Crash # Issue 24485
+analyzer/test/src/task/strong/checker_test: Crash # Issue 24485
+analyzer/test/src/task/strong/inferred_type_test: Crash # Issue 24485
 analyzer/test/src/task/strong_mode_test: Crash # Issue 24485
+analyzer/test/src/task/yaml_test: Crash # Issue 24485
 
 [ $noopt || $runtime == dart_precompiled || $runtime == dart_product ]
 *: SkipByDesign # The pkg test framework imports dart:mirrors.
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented, about 75% tests crash
diff --git a/runtime/bin/bin.gypi b/runtime/bin/bin.gypi
index 5d7b48e..0840125 100644
--- a/runtime/bin/bin.gypi
+++ b/runtime/bin/bin.gypi
@@ -15,8 +15,6 @@
     'isolate_snapshot_bin_file': '<(gen_source_dir)/isolate_snapshot_gen.bin',
     'gen_snapshot_stamp_file': '<(gen_source_dir)/gen_snapshot.stamp',
     'resources_cc_file': '<(gen_source_dir)/resources_gen.cc',
-    'bootstrap_resources_cc_file':
-        '<(gen_source_dir)/bootstrap_resources_gen.cc',
     'snapshot_cc_file': '<(gen_source_dir)/snapshot_gen.cc',
     'observatory_assets_cc_file': '<(gen_source_dir)/observatory_assets.cc',
     'observatory_assets_tar_file': '<(gen_source_dir)/observatory_assets.tar',
@@ -543,41 +541,6 @@
       ]
     },
     {
-      'target_name': 'generate_bootstrap_resources_cc_file',
-      'type': 'none',
-      'dependencies': [
-        'bin/zlib.gyp:zlib_dart',
-      ],
-      'toolsets':['host'],
-      'includes': [
-        'vmservice/vmservice_sources.gypi',
-      ],
-      'actions': [
-        {
-          'action_name': 'generate_resources_cc',
-          'inputs': [
-            '../tools/create_resources.py',
-            '<@(_sources)',
-          ],
-          'outputs': [
-            '<(bootstrap_resources_cc_file)',
-          ],
-          'action': [
-            'python',
-            'tools/create_resources.py',
-            '--output', '<(bootstrap_resources_cc_file)',
-            '--outer_namespace', 'dart',
-            '--inner_namespace', 'bin',
-            '--table_name', 'service_bin',
-            '--root_prefix', 'bin/',
-            '<@(_sources)'
-          ],
-          'message':
-              'Generating ''<(bootstrap_resources_cc_file)'' file.'
-        },
-      ]
-    },
-    {
       # dart_product binary.
       'target_name': 'dart_product',
       'type': 'executable',
@@ -780,63 +743,7 @@
         'libdart_nosnapshot',
         'libdart_builtin',
         'libdart_io',
-        'generate_bootstrap_resources_cc_file#host',
-      ],
-      'include_dirs': [
-        '..',
-        '../../third_party/', # Zlib
-      ],
-      'sources': [
-        'main.cc',
-        'builtin_common.cc',
-        'builtin_natives.cc',
-        'builtin.cc',
-        'builtin.h',
-        'io_natives.h',
-        'vmservice_impl.cc',
-        'vmservice_impl.h',
-        # Include generated source files.
-        '<(builtin_cc_file)',
-        '<(io_cc_file)',
-        '<(io_patch_cc_file)',
-        '<(bootstrap_resources_cc_file)',
-        'observatory_assets_empty.cc',
-        'snapshot_empty.cc',
-      ],
-      'conditions': [
-        ['OS=="win"', {
-          'link_settings': {
-            'libraries': [ '-lws2_32.lib', '-lRpcrt4.lib', '-lwinmm.lib' ],
-          },
-          # Generate an import library on Windows, by exporting a function.
-          # Extensions use this import library to link to the API in dart.exe.
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'AdditionalOptions': [ '/EXPORT:Dart_True' ],
-            },
-          },
-        }],
-      ],
-      'configurations': {
-        'Dart_Linux_Base': {
-          # Have the linker add all symbols to the dynamic symbol table
-          # so that extensions can look them up dynamically in the binary.
-          'ldflags': [
-            '-rdynamic',
-          ],
-        },
-      },
-    },
-    {
-      # dart binary without any snapshot built in.
-      'target_name': 'dart_no_snapshot',
-      'type': 'executable',
-      'dependencies': [
-        'libdart_nosnapshot',
-        'libdart_builtin',
-        'libdart_io',
         'generate_resources_cc_file#host',
-        'generate_observatory_assets_cc_file#host',
       ],
       'include_dirs': [
         '..',
@@ -856,7 +763,7 @@
         '<(io_cc_file)',
         '<(io_patch_cc_file)',
         '<(resources_cc_file)',
-        '<(observatory_assets_cc_file)',
+        'observatory_assets_empty.cc',
         'snapshot_empty.cc',
       ],
       'defines': [
diff --git a/runtime/bin/directory_android.cc b/runtime/bin/directory_android.cc
index 5d24649..40bcde3 100644
--- a/runtime/bin/directory_android.cc
+++ b/runtime/bin/directory_android.cc
@@ -373,19 +373,6 @@
 }
 
 
-// Android doesn't currently provide mkdtemp.  Once Android provied mkdtemp,
-// remove this function in favor of calling mkdtemp directly.
-static char* MakeTempDirectory(char* path_template) {
-  if (mktemp(path_template) == NULL) {
-    return NULL;
-  }
-  if (mkdir(path_template, 0700) != 0) {
-    return NULL;
-  }
-  return path_template;
-}
-
-
 char* Directory::SystemTemp() {
   // Android does not have a /tmp directory. A partial substitute,
   // suitable for bring-up work and tests, is to create a tmp
@@ -416,7 +403,7 @@
   }
   char* result;
   do {
-    result = MakeTempDirectory(path.AsString());
+    result = mkdtemp(path.AsString());
   } while (result == NULL && errno == EINTR);
   if (result == NULL) {
     return NULL;
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc
index ea9f3d7..45087b4 100644
--- a/runtime/bin/gen_snapshot.cc
+++ b/runtime/bin/gen_snapshot.cc
@@ -1142,6 +1142,11 @@
     SetupForGenericSnapshotCreation();
     CreateAndWriteSnapshot();
   }
+  error = Dart_Cleanup();
+  if (error != NULL) {
+    Log::PrintErr("VM cleanup failed: %s\n", error);
+    free(error);
+  }
   EventHandler::Stop();
   return 0;
 }
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index bb21b9f..33d4ba5 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -45,7 +45,7 @@
  * A full application snapshot can be generated and run using the following
  * commands
  * - Generating a full application snapshot :
- * dart_no_snapshot --full-snapshot-after-run=<filename> --package-root=<dirs>
+ * dart_bootstrap --full-snapshot-after-run=<filename> --package-root=<dirs>
  *   <script_uri> [<script_options>]
  * - Running the full application snapshot generated above :
  * dart --run-full-snapshot=<filename> <script_uri> [<script_options>]
@@ -327,12 +327,11 @@
 static bool ProcessGenPrecompiledSnapshotOption(
     const char* arg,
     CommandLineOptions* vm_options) {
-  // Ensure that we are not already running using a full snapshot.
-  if (isolate_snapshot_buffer != NULL) {
-    Log::PrintErr("Precompiled snapshots must be generated with"
-                  " dart_no_snapshot.\n");
-    return false;
-  }
+#if !defined(DART_PRECOMPILER)
+  Log::PrintErr("Precompiled snapshots must be generated with "
+                "dart_bootstrap.\n");
+  return false;
+#else  // defined(DART_PRECOMPILER)
   ASSERT(arg != NULL);
   if ((arg[0] == '=') || (arg[0] == ':')) {
     precompiled_snapshot_directory = &arg[1];
@@ -340,11 +339,9 @@
     precompiled_snapshot_directory = arg;
   }
   gen_precompiled_snapshot = true;
-#if !defined(DART_PRECOMPILED_RUNTIME)
-  // The precompiled runtime has FLAG_precompilation set as const.
   vm_options->AddArgument("--precompilation");
-#endif
   return true;
+#endif  // defined(DART_PRECOMPILER)
 }
 
 
@@ -358,10 +355,7 @@
     precompiled_snapshot_directory = &precompiled_snapshot_directory[1];
   }
   run_precompiled_snapshot = true;
-#if !defined(DART_PRECOMPILED_RUNTIME)
-  // The precompiled runtime has FLAG_precompilation set as const.
   vm_options->AddArgument("--precompilation");
-#endif
   return true;
 }
 
@@ -401,10 +395,10 @@
   if ((filename == NULL) || (strlen(filename) == 0)) {
     return false;
   }
-  // Ensure that we are running 'dart_no_snapshot'.
+  // Ensure that we are running 'dart_bootstrap'.
   if (isolate_snapshot_buffer != NULL) {
     Log::PrintErr("Full Application snapshots must be generated with"
-                  " dart_no_snapshot\n");
+                  " dart_bootstrap\n");
     return false;
   }
   return ProcessSnapshotOptionHelper(filename,
@@ -1148,10 +1142,22 @@
 }
 
 
-static void* LoadLibrarySymbol(const char* libname, const char* symname) {
-  void* library = Extensions::LoadExtensionLibrary(libname);
+static void* LoadLibrarySymbol(const char* snapshot_directory,
+                               const char* libname,
+                               const char* symname) {
+  char* concat = NULL;
+  const char* qualified_libname;
+  if ((snapshot_directory != NULL) && strlen(snapshot_directory) > 0) {
+    intptr_t len = snprintf(NULL, 0, "%s/%s", snapshot_directory, libname);
+    concat = new char[len + 1];
+    snprintf(concat, len + 1, "%s/%s", snapshot_directory, libname);
+    qualified_libname = concat;
+  } else {
+    qualified_libname = libname;
+  }
+  void* library = Extensions::LoadExtensionLibrary(qualified_libname);
   if (library == NULL) {
-    Log::PrintErr("Error: Failed to load library '%s'\n", libname);
+    Log::PrintErr("Error: Failed to load library '%s'\n", qualified_libname);
     Platform::Exit(kErrorExitCode);
   }
   void* symbol = Extensions::ResolveSymbol(library, symname);
@@ -1159,6 +1165,9 @@
     Log::PrintErr("Error: Failed to load symbol '%s'\n", symname);
     Platform::Exit(kErrorExitCode);
   }
+  if (concat != NULL) {
+    delete concat;
+  }
   return symbol;
 }
 
@@ -1427,6 +1436,9 @@
 
 #undef CHECK_RESULT
 
+
+// Observatory assets are only needed in the regular dart binary.
+#if !defined(DART_PRECOMPILER)
 extern unsigned int observatory_assets_archive_len;
 extern const uint8_t* observatory_assets_archive;
 
@@ -1508,6 +1520,9 @@
   free(decompressed);
   return tar_file;
 }
+#else  // !defined(DART_PRECOMPILER)
+static Dart_GetVMServiceAssetsArchive GetVMServiceAssetsArchiveCallback = NULL;
+#endif  // !defined(DART_PRECOMPILER)
 
 
 void main(int argc, char** argv) {
@@ -1587,10 +1602,12 @@
   const uint8_t* data_snapshot = NULL;
   if (run_precompiled_snapshot) {
     instructions_snapshot = reinterpret_cast<const uint8_t*>(
-        LoadLibrarySymbol(kPrecompiledLibraryName,
+        LoadLibrarySymbol(precompiled_snapshot_directory,
+                          kPrecompiledLibraryName,
                           kPrecompiledInstructionsSymbolName));
     data_snapshot = reinterpret_cast<const uint8_t*>(
-        LoadLibrarySymbol(kPrecompiledLibraryName,
+        LoadLibrarySymbol(precompiled_snapshot_directory,
+                          kPrecompiledLibraryName,
                           kPrecompiledDataSymbolName));
     ReadSnapshotFile(precompiled_snapshot_directory,
                      kPrecompiledVmIsolateName,
diff --git a/runtime/bin/secure_socket.cc b/runtime/bin/secure_socket.cc
index 7d79dc6..a269134 100644
--- a/runtime/bin/secure_socket.cc
+++ b/runtime/bin/secure_socket.cc
@@ -524,7 +524,6 @@
   DISALLOW_COPY_AND_ASSIGN(ScopedMemBIO);
 };
 
-
 template<typename T, void (*free_func)(T*)>
 class ScopedSSLType {
  public:
@@ -582,20 +581,12 @@
 
 typedef ScopedSSLType<PKCS12, PKCS12_free> ScopedPKCS12;
 typedef ScopedSSLType<X509, X509_free> ScopedX509;
-
 typedef ScopedSSLStackType<STACK_OF(X509), X509, X509_free> ScopedX509Stack;
-typedef ScopedSSLStackType<STACK_OF(X509_NAME), X509_NAME, X509_NAME_free>
-    ScopedX509NAMEStack;
 
-
-// We try reading data as PKCS12 only if reading as PEM was unsuccessful and
-// if there is no indication that the data is malformed PEM. We assume the data
-// is malformed PEM if it contains the start line, i.e. a line with ----- BEGIN.
-static bool TryPKCS12(bool pem_success) {
+static bool NoPEMStartLine() {
   uint32_t last_error = ERR_peek_last_error();
-  return !pem_success &&
-      (ERR_GET_LIB(last_error) == ERR_LIB_PEM) &&
-      (ERR_GET_REASON(last_error) == PEM_R_NO_START_LINE);
+  return (ERR_GET_LIB(last_error) == ERR_LIB_PEM) &&
+         (ERR_GET_REASON(last_error) == PEM_R_NO_START_LINE);
 }
 
 
@@ -623,13 +614,19 @@
 static EVP_PKEY* GetPrivateKey(BIO* bio, const char* password) {
   EVP_PKEY *key = PEM_read_bio_PrivateKey(
       bio, NULL, PasswordCallback, const_cast<char*>(password));
-  if (TryPKCS12(key != NULL)) {
-    // Reset the bio, and clear the error from trying to read as PEM.
-    ERR_clear_error();
-    BIO_reset(bio);
+  if (key == NULL) {
+    // We try reading data as PKCS12 only if reading as PEM was unsuccessful and
+    // if there is no indication that the data is malformed PEM. We assume the
+    // data is malformed PEM if it contains the start line, i.e. a line
+    // with ----- BEGIN.
+    if (NoPEMStartLine()) {
+      // Reset the bio, and clear the error from trying to read as PEM.
+      ERR_clear_error();
+      BIO_reset(bio);
 
-    // Try to decode as PKCS12
-    key = GetPrivateKeyPKCS12(bio, password);
+      // Try to decode as PKCS12.
+      key = GetPrivateKeyPKCS12(bio, password);
+    }
   }
   return key;
 }
@@ -725,17 +722,12 @@
     }
   }
 
-  // If bio does not contain PEM data, the first call to PEM_read_bio_X509 will
-  // return NULL, and the while-loop will exit while status is still 0.
-  uint32_t err = ERR_peek_last_error();
-  if ((ERR_GET_LIB(err) != ERR_LIB_PEM) ||
-      (ERR_GET_REASON(err) != PEM_R_NO_START_LINE)) {
-    // If bio contains data that is trying to be PEM but is malformed, then
-    // this case will be triggered.
-    status = 0;
-  }
-
-  return status;
+  // If no PEM start line is found, it means that we read to the end of the
+  // file, or that the file isn't PEM. In the first case, status will be
+  // non-zero indicating success. In the second case, status will be 0,
+  // indicating that we should try to read as PKCS12. If there is some other
+  // error, we return it up to the caller.
+  return NoPEMStartLine() ? status : 0;
 }
 
 
@@ -743,11 +735,13 @@
                                        BIO* bio,
                                        const char* password) {
   int status = SetTrustedCertificatesBytesPEM(context, bio);
-  if (TryPKCS12(status != 0)) {
-    ERR_clear_error();
-    BIO_reset(bio);
-    status = SetTrustedCertificatesBytesPKCS12(context, bio, password);
-  } else if (status != 0) {
+  if (status == 0) {
+    if (NoPEMStartLine()) {
+      ERR_clear_error();
+      BIO_reset(bio);
+      status = SetTrustedCertificatesBytesPKCS12(context, bio, password);
+    }
+  } else {
     // The PEM file was successfully parsed.
     ERR_clear_error();
   }
@@ -860,27 +854,19 @@
     // count is increased by SSL_CTX_use_certificate.
   }
 
-  // If bio does not contain PEM data, the first call to PEM_read_bio_X509 will
-  // return NULL, and the while-loop will exit while status is still 0.
-  uint32_t err = ERR_peek_last_error();
-  if ((ERR_GET_LIB(err) != ERR_LIB_PEM) ||
-      (ERR_GET_REASON(err) != PEM_R_NO_START_LINE)) {
-    // If bio contains data that is trying to be PEM but is malformed, then
-    // this case will be triggered.
-    status = 0;
-  }
-
-  return status;
+  return NoPEMStartLine() ? status : 0;
 }
 
 
 static int UseChainBytes(SSL_CTX* context, BIO* bio, const char* password) {
   int status = UseChainBytesPEM(context, bio);
-  if (TryPKCS12(status != 0)) {
-    ERR_clear_error();
-    BIO_reset(bio);
-    status = UseChainBytesPKCS12(context, bio, password);
-  } else if (status != 0) {
+  if (status == 0) {
+    if (NoPEMStartLine()) {
+      ERR_clear_error();
+      BIO_reset(bio);
+      status = UseChainBytesPKCS12(context, bio, password);
+    }
+  } else {
     // The PEM file was successfully read.
     ERR_clear_error();
   }
@@ -903,16 +889,12 @@
 }
 
 
-static STACK_OF(X509_NAME)* GetCertificateNamesPKCS12(BIO* bio,
-                                                      const char* password) {
+static int SetClientAuthoritiesPKCS12(SSL_CTX* context,
+                                      BIO* bio,
+                                      const char* password) {
   ScopedPKCS12 p12(d2i_PKCS12_bio(bio, NULL));
   if (p12.get() == NULL) {
-    return NULL;
-  }
-
-  ScopedX509NAMEStack result(sk_X509_NAME_new_null());
-  if (result.get() == NULL) {
-    return NULL;
+    return 0;
   }
 
   EVP_PKEY* key = NULL;
@@ -920,99 +902,58 @@
   STACK_OF(X509) *ca_certs = NULL;
   int status = PKCS12_parse(p12.get(), password, &key, &cert, &ca_certs);
   if (status == 0) {
-    return NULL;
+    return status;
   }
 
-  ScopedX509 x509(cert);
-  ScopedX509Stack certs(ca_certs);
-  X509_NAME* x509_name = X509_get_subject_name(x509.get());
-  if (x509_name == NULL) {
-    return NULL;
+  ScopedX509Stack cert_stack(ca_certs);
+  status = SSL_CTX_add_client_CA(context, cert);
+  if (status == 0) {
+    X509_free(cert);
+    return status;
   }
 
-  x509_name = X509_NAME_dup(x509_name);
-  if (x509_name == NULL) {
-    return NULL;
-  }
-
-  sk_X509_NAME_push(result.get(), x509_name);
-
-  while (true) {
-    ScopedX509 ca(sk_X509_shift(certs.get()));
-    if (ca.get() == NULL) {
-      break;
+  X509* ca;
+  while ((ca = sk_X509_shift(cert_stack.get())) != NULL) {
+    status = SSL_CTX_add_client_CA(context, ca);
+    X509_free(ca);  // The name has been extracted.
+    if (status == 0) {
+      return status;
     }
-
-    X509_NAME* x509_name = X509_get_subject_name(ca.get());
-    if (x509_name == NULL) {
-      return NULL;
-    }
-
-    x509_name = X509_NAME_dup(x509_name);
-    if (x509_name == NULL) {
-      return NULL;
-    }
-
-    sk_X509_NAME_push(result.get(), x509_name);
   }
 
-  return result.release();
+  return status;
 }
 
 
-static STACK_OF(X509_NAME)* GetCertificateNamesPEM(BIO* bio) {
-  ScopedX509NAMEStack result(sk_X509_NAME_new_null());
-  if (result.get() == NULL) {
-    return NULL;
-  }
-
-  while (true) {
-    ScopedX509 x509(PEM_read_bio_X509(bio, NULL, NULL, NULL));
-    if (x509.get() == NULL) {
-      break;
+static int SetClientAuthoritiesPEM(SSL_CTX* context, BIO* bio) {
+  int status = 0;
+  X509* cert = NULL;
+  while ((cert = PEM_read_bio_X509(bio, NULL, NULL, NULL)) != NULL) {
+    status = SSL_CTX_add_client_CA(context, cert);
+    X509_free(cert);  // The name has been extracted.
+    if (status == 0) {
+      return status;
     }
-
-    X509_NAME* x509_name = X509_get_subject_name(x509.get());
-    if (x509_name == NULL) {
-      return NULL;
-    }
-
-    // Duplicate the name to put it on the stack.
-    x509_name = X509_NAME_dup(x509_name);
-    if (x509_name == NULL) {
-      return NULL;
-    }
-    sk_X509_NAME_push(result.get(), x509_name);
   }
-
-  if (sk_X509_NAME_num(result.get()) == 0) {
-    // The data was not PEM.
-    return NULL;
-  }
-
-  uint32_t err = ERR_peek_last_error();
-  if ((ERR_GET_LIB(err) != ERR_LIB_PEM) ||
-      (ERR_GET_REASON(err) != PEM_R_NO_START_LINE)) {
-    // The data was trying to be PEM, but was malformed.
-    return NULL;
-  }
-
-  return result.release();
+  return NoPEMStartLine() ? status : 0;
 }
 
 
-static STACK_OF(X509_NAME)* GetCertificateNames(BIO* bio,
-                                                const char* password) {
-  STACK_OF(X509_NAME)* result = GetCertificateNamesPEM(bio);
-  if (TryPKCS12(result != NULL)) {
-    ERR_clear_error();
-    BIO_reset(bio);
-    result = GetCertificateNamesPKCS12(bio, password);
-  } else if (result != NULL) {
+static int SetClientAuthorities(SSL_CTX* context,
+                                BIO* bio,
+                                const char* password) {
+  int status = SetClientAuthoritiesPEM(context, bio);
+  if (status == 0) {
+    if (NoPEMStartLine()) {
+      ERR_clear_error();
+      BIO_reset(bio);
+      status = SetClientAuthoritiesPKCS12(context, bio, password);
+    }
+  } else {
     // The PEM file was successfully parsed.
     ERR_clear_error();
   }
-  return result;
+  return status;
 }
 
 
@@ -1020,19 +961,16 @@
     Dart_NativeArguments args) {
   SSL_CTX* context = GetSecurityContext(args);
   const char* password = GetPasswordArgument(args, 2);
-  STACK_OF(X509_NAME)* certificate_names;
 
+  int status;
   {
     ScopedMemBIO bio(ThrowIfError(Dart_GetNativeArgument(args, 1)));
-    certificate_names = GetCertificateNames(bio.bio(), password);
+    status = SetClientAuthorities(context, bio.bio(), password);
   }
 
-  if (certificate_names != NULL) {
-    SSL_CTX_set_client_CA_list(context, certificate_names);
-  } else {
-    Dart_ThrowException(DartUtils::NewDartArgumentError(
-        "Could not load certificate names from file in SetClientAuthorities"));
-  }
+  CheckStatus(status,
+      "TlsException",
+      "Failure in setClientAuthoritiesBytes");
 }
 
 
diff --git a/runtime/lib/regexp.cc b/runtime/lib/regexp.cc
index 47b4245..e3907d3 100644
--- a/runtime/lib/regexp.cc
+++ b/runtime/lib/regexp.cc
@@ -88,7 +88,7 @@
   GET_NON_NULL_NATIVE_ARGUMENT(String, subject, arguments->NativeArgAt(1));
   GET_NON_NULL_NATIVE_ARGUMENT(Smi, start_index, arguments->NativeArgAt(2));
 
-  if (FLAG_interpret_irregexp) {
+  if (FLAG_interpret_irregexp || FLAG_precompiled_runtime) {
     return BytecodeRegExpMacroAssembler::Interpret(regexp, subject, start_index,
                                                    zone);
   }
diff --git a/runtime/observatory/lib/src/app/application.dart b/runtime/observatory/lib/src/app/application.dart
index 644b659..e2d5126 100644
--- a/runtime/observatory/lib/src/app/application.dart
+++ b/runtime/observatory/lib/src/app/application.dart
@@ -87,6 +87,8 @@
   }
 
   void _onEvent(ServiceEvent event) {
+    assert(event.kind != ServiceEvent.kNone);
+
     switch(event.kind) {
       case ServiceEvent.kVMUpdate:
       case ServiceEvent.kIsolateStart:
diff --git a/runtime/observatory/lib/src/elements/debugger.dart b/runtime/observatory/lib/src/elements/debugger.dart
index 6595447..81541ef 100644
--- a/runtime/observatory/lib/src/elements/debugger.dart
+++ b/runtime/observatory/lib/src/elements/debugger.dart
@@ -1524,7 +1524,9 @@
   }
 
   void _reportPause(ServiceEvent event) {
-    if (event.kind == ServiceEvent.kPauseStart) {
+    if (event.kind == ServiceEvent.kNone) {
+      console.print("Paused until embedder makes the isolate runnable.");
+    } else if (event.kind == ServiceEvent.kPauseStart) {
       console.print(
           "Paused at isolate start "
           "(type 'continue' [F7] or 'step' [F10] to start the isolate')");
diff --git a/runtime/observatory/lib/src/elements/isolate_summary.html b/runtime/observatory/lib/src/elements/isolate_summary.html
index 64361ed..c089da9 100644
--- a/runtime/observatory/lib/src/elements/isolate_summary.html
+++ b/runtime/observatory/lib/src/elements/isolate_summary.html
@@ -55,6 +55,10 @@
         at isolate exit
       </template>
 
+      <template if="{{ isolate.pauseEvent.kind == 'None' }}">
+        not yet runnable
+      </template>
+
       <template if="{{ isolate.pauseEvent.kind == 'PauseInterrupted' ||
                        isolate.pauseEvent.kind == 'PauseBreakpoint' ||
                        isolate.pauseEvent.kind == 'PauseException' }}">
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
index b3a06b9..3345716 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -849,6 +849,7 @@
   // Well-known stream ids.
   static const kVMStream = 'VM';
   static const kIsolateStream = 'Isolate';
+  static const kTimelineStream = 'Timeline';
   static const kDebugStream = 'Debug';
   static const kGCStream = 'GC';
   static const kStdoutStream = 'Stdout';
@@ -1185,7 +1186,7 @@
     if (endPos != null) {
       params['endTokenPos'] = endPos;
     }
-    return invokeRpc('_getSourceReport', params);
+    return invokeRpc('getSourceReport', params);
   }
 
   /// Fetches and builds the class hierarchy for this isolate. Returns the
@@ -1512,6 +1513,7 @@
       case ServiceEvent.kPauseBreakpoint:
       case ServiceEvent.kPauseInterrupted:
       case ServiceEvent.kPauseException:
+      case ServiceEvent.kNone:
       case ServiceEvent.kResume:
         assert((pauseEvent == null) ||
                !event.timestamp.isBefore(pauseEvent.timestamp));
@@ -1821,6 +1823,7 @@
   static const kPauseBreakpoint        = 'PauseBreakpoint';
   static const kPauseInterrupted       = 'PauseInterrupted';
   static const kPauseException         = 'PauseException';
+  static const kNone                   = 'None';
   static const kResume                 = 'Resume';
   static const kBreakpointAdded        = 'BreakpointAdded';
   static const kBreakpointResolved     = 'BreakpointResolved';
@@ -1855,6 +1858,7 @@
   @observable Map logRecord;
   @observable String extensionKind;
   @observable Map extensionData;
+  @observable List timelineEvents;
 
   int chunkIndex, chunkCount, nodeCount;
 
@@ -1863,7 +1867,8 @@
             kind == kPauseExit ||
             kind == kPauseBreakpoint ||
             kind == kPauseInterrupted ||
-            kind == kPauseException);
+            kind == kPauseException ||
+            kind == kNone);
   }
 
   void _update(ObservableMap map, bool mapIsRef) {
@@ -1932,6 +1937,9 @@
       extensionKind = map['extensionKind'];
       extensionData = map['extensionData'];
     }
+    if (map['timelineEvents'] != null) {
+      timelineEvents = map['timelineEvents'];
+    }
   }
 
   String toString() {
diff --git a/runtime/observatory/tests/service/get_source_report_test.dart b/runtime/observatory/tests/service/get_source_report_test.dart
index 006ef5b..2f089b2 100644
--- a/runtime/observatory/tests/service/get_source_report_test.dart
+++ b/runtime/observatory/tests/service/get_source_report_test.dart
@@ -72,7 +72,7 @@
   // Full script
   var params = { 'reports' : ['Coverage'],
                  'scriptId' : func.location.script.id };
-  var coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+  var coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   expect(coverage['type'], equals('SourceReport'));
   expect(coverage['ranges'].length, 6);
   expect(coverage['ranges'][0], equals(expectedRange));
@@ -85,7 +85,7 @@
   params = { 'reports' : ['Coverage'],
              'scriptId' : func.location.script.id,
              'forceCompile' : true };
-  coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+  coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   expect(coverage['type'], equals('SourceReport'));
   expect(coverage['ranges'].length, 6);
   expect(allRangesCompiled(coverage), isTrue);
@@ -95,7 +95,7 @@
              'scriptId' : func.location.script.id,
              'tokenPos' : func.location.tokenPos,
              'endTokenPos' : func.location.endTokenPos };
-  coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+  coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   expect(coverage['type'], equals('SourceReport'));
   expect(coverage['ranges'].length, 1);
   expect(coverage['ranges'][0], equals(expectedRange));
@@ -105,7 +105,7 @@
 
   // Full isolate
   params = { 'reports' : ['Coverage'] };
-  coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+  coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   expect(coverage['type'], equals('SourceReport'));
   expect(coverage['ranges'].length, greaterThan(1));
   expect(coverage['scripts'].length, greaterThan(1));
@@ -115,7 +115,7 @@
              'scriptId' : func.location.script.id,
              'tokenPos' : func.location.tokenPos,
              'endTokenPos' : func.location.endTokenPos };
-  coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+  coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   expect(coverage['type'], equals('SourceReport'));
   expect(coverage['ranges'].length, 1);
   var range = coverage['ranges'][0];
@@ -128,12 +128,12 @@
   try {
     params = { 'reports' : ['Coverage'],
                'tokenPos' : func.location.tokenPos };
-    coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+    coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   } on ServerRpcException catch(e) {
     caughtException = true;
     expect(e.code, equals(ServerRpcException.kInvalidParams));
     expect(e.message,
-           "_getSourceReport: the 'tokenPos' parameter requires the "
+           "getSourceReport: the 'tokenPos' parameter requires the "
            "\'scriptId\' parameter");
   }
   expect(caughtException, isTrue);
@@ -143,12 +143,12 @@
   try {
     params = { 'reports' : ['Coverage'],
                'endTokenPos' : func.location.endTokenPos };
-    coverage = await isolate.invokeRpcNoUpgrade('_getSourceReport', params);
+    coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
   } on ServerRpcException catch(e) {
     caughtException = true;
     expect(e.code, equals(ServerRpcException.kInvalidParams));
     expect(e.message,
-           "_getSourceReport: the 'endTokenPos' parameter requires the "
+           "getSourceReport: the 'endTokenPos' parameter requires the "
            "\'scriptId\' parameter");
   }
   expect(caughtException, isTrue);
diff --git a/runtime/observatory/tests/service/pause_idle_isolate_test.dart b/runtime/observatory/tests/service/pause_idle_isolate_test.dart
index cfd418c..a75dcd1 100644
--- a/runtime/observatory/tests/service/pause_idle_isolate_test.dart
+++ b/runtime/observatory/tests/service/pause_idle_isolate_test.dart
@@ -3,55 +3,28 @@
 // BSD-style license that can be found in the LICENSE file.
 // VMOptions=--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';
 import 'dart:io';
 import 'dart:isolate' show ReceivePort;
+import 'package:observatory/service_io.dart';
+import 'package:unittest/unittest.dart';
+import 'service_test_common.dart';
+import 'test_helper.dart';
 
 var receivePort;
 
 void testMain() {
   receivePort = new ReceivePort();
+  debugger();
 }
 
 var tests = [
 
+hasStoppedAtBreakpoint,
+
 (Isolate isolate) async {
-  Completer completer = new Completer();
-  var stream = await isolate.vm.getEventStream(VM.kDebugStream);
-  var subscription;
-  subscription = stream.listen((ServiceEvent event) {
-    if (event.kind == ServiceEvent.kPauseStart) {
-      print('Received $event');
-      subscription.cancel();
-      completer.complete();
-    }
-  });
-
-  if (isolate.pauseEvent != null &&
-      isolate.pauseEvent.kind == ServiceEvent.kPauseStart) {
-    // Wait for the isolate to hit PauseStart.
-    subscription.cancel();
-  } else {
-    await completer.future;
-  }
-  print('Done waiting for pause event.');
-
-  // Wait for the isolate to pause due to interruption.
-  completer = new Completer();
-  stream = await isolate.vm.getEventStream(VM.kDebugStream);
-  bool receivedInterrupt = false;
-  subscription = stream.listen((ServiceEvent event) {
-    print('Received $event');
-    if (event.kind == ServiceEvent.kPauseInterrupted) {
-      receivedInterrupt = true;
-      subscription.cancel();
-      completer.complete();
-    }
-  });
-
+  print('Resuming...');
   await isolate.resume();
 
   // Wait for the isolate to become idle.  We detect this by querying
@@ -60,21 +33,24 @@
   do {
     var stack = await isolate.getStack();
     frameCount = stack['frames'].length;
-    print('frames: $frameCount');
+    print('Frames: $frameCount');
     sleep(const Duration(milliseconds:10));
   } while (frameCount > 0);
+  print('Isolate is idle.');
+  await isolate.reload();
+  expect(isolate.pauseEvent.kind, equals(ServiceEvent.kResume));
 
   // Make sure that the isolate receives an interrupt even when it is
   // idle. (https://github.com/dart-lang/sdk/issues/24349)
+  var interruptFuture = hasPausedFor(isolate, ServiceEvent.kPauseInterrupted);
+  print('Pausing...');
   await isolate.pause();
-  await completer.future;
-  expect(receivedInterrupt, isTrue);
+  await interruptFuture;
 },
 
 ];
 
 main(args) => runIsolateTests(args, tests,
                               testeeConcurrent: testMain,
-                              pause_on_start: true,
                               trace_service: true,
                               verbose_vm: true);
diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status
index 0e3d8fd..5c71adc 100644
--- a/runtime/observatory/tests/service/service.status
+++ b/runtime/observatory/tests/service/service.status
@@ -17,6 +17,10 @@
 # Tests with known analyzer issues
 [ $compiler == dart2analyzer ]
 developer_extension_test: SkipByDesign
+*: StaticWarning # https://github.com/dart-lang/observe/issues/85
+address_mapper_test: Pass # https://github.com/dart-lang/observe/issues/85
+command_test: Pass # https://github.com/dart-lang/observe/issues/85
+read_stream_test: Pass # https://github.com/dart-lang/observe/issues/85
 
 [ $arch == arm ]
 process_service_test: Pass, Fail # Issue 24344
diff --git a/runtime/observatory/tests/service/service_test_common.dart b/runtime/observatory/tests/service/service_test_common.dart
index 7435ee5..108316c 100644
--- a/runtime/observatory/tests/service/service_test_common.dart
+++ b/runtime/observatory/tests/service/service_test_common.dart
@@ -11,6 +11,22 @@
 typedef Future IsolateTest(Isolate isolate);
 typedef Future VMTest(VM vm);
 
+Map<String, StreamSubscription> streamSubscriptions = {};
+
+Future subscribeToStream(VM vm, String streamName, onEvent) async {
+  assert(streamSubscriptions[streamName] == null);
+
+  Stream stream = await vm.getEventStream(streamName);
+  StreamSubscription subscription = stream.listen(onEvent);
+  streamSubscriptions[streamName] = subscription;
+}
+
+Future cancelStreamSubscription(String streamName) async {
+  StreamSubscription subscription = streamSubscriptions[streamName];
+  subscription.cancel();
+  streamSubscriptions.remove(streamName);
+}
+
 Future asyncStepOver(Isolate isolate) async {
   final Completer pausedAtSyntheticBreakpoint = new Completer();
   StreamSubscription subscription;
@@ -88,10 +104,10 @@
     var subscription;
     subscription = stream.listen((ServiceEvent event) {
         if (event.kind == kind) {
-          print('Paused with $kind');
-          subscription.cancel();
           if (completer != null) {
             // Reload to update isolate.pauseEvent.
+            print('Paused with $kind');
+            subscription.cancel();
             completer.complete(isolate.reload());
             completer = null;
           }
@@ -103,9 +119,9 @@
       if ((isolate.pauseEvent != null) &&
          (isolate.pauseEvent.kind == kind)) {
         // Already waiting at a breakpoint.
-        print('Paused with $kind');
-        subscription.cancel();
         if (completer != null) {
+          print('Paused with $kind');
+          subscription.cancel();
           completer.complete(isolate);
           completer = null;
         }
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart
index 91cb11e..e22cbb2 100644
--- a/runtime/observatory/tests/service/test_helper.dart
+++ b/runtime/observatory/tests/service/test_helper.dart
@@ -19,6 +19,7 @@
   return e is NetworkRpcException;
 }
 
+
 const String _TESTEE_ENV_KEY = 'SERVICE_TEST_TESTEE';
 const Map<String, String> _TESTEE_SPAWN_ENV = const {
   _TESTEE_ENV_KEY: 'true'
@@ -27,6 +28,14 @@
   return Platform.environment.containsKey(_TESTEE_ENV_KEY);
 }
 
+const String _SKY_SHELL_ENV_KEY = 'SERVICE_TEST_SKY_SHELL';
+bool _shouldLaunchSkyShell() {
+  return Platform.environment.containsKey(_SKY_SHELL_ENV_KEY);
+}
+String _skyShellPath() {
+  return Platform.environment[_SKY_SHELL_ENV_KEY];
+}
+
 class _SerivceTesteeRunner {
   Future run({testeeBefore(): null,
               testeeConcurrent(): null,
@@ -79,10 +88,7 @@
   bool killedByTester = false;
 
   _ServiceTesteeLauncher() :
-      args = ['--enable-vm-service:0',
-              Platform.script.toFilePath()] {}
-
-  String get executablePath => Platform.executable;
+      args = [Platform.script.toFilePath()] {}
 
   // Spawn the testee process.
   Future<Process> _spawnProcess(bool pause_on_start,
@@ -92,11 +98,38 @@
                                 bool trace_compiler) {
     assert(pause_on_start != null);
     assert(pause_on_exit != null);
+    assert(pause_on_unhandled_exceptions != null);
     assert(trace_service != null);
+    assert(trace_compiler != null);
+
     // TODO(turnidge): I have temporarily turned on service tracing for
     // all tests to help diagnose flaky tests.
     trace_service = true;
+
+    if (_shouldLaunchSkyShell()) {
+      return _spawnSkyProcess(pause_on_start,
+                              pause_on_exit,
+                              pause_on_unhandled_exceptions,
+                              trace_service,
+                              trace_compiler);
+    } else {
+      return _spawnDartProcess(pause_on_start,
+                               pause_on_exit,
+                               pause_on_unhandled_exceptions,
+                               trace_service,
+                               trace_compiler);
+    }
+  }
+
+  Future<Process> _spawnDartProcess(bool pause_on_start,
+                                    bool pause_on_exit,
+                                    bool pause_on_unhandled_exceptions,
+                                    bool trace_service,
+                                    bool trace_compiler) {
+    assert(!_shouldLaunchSkyShell());
+
     String dartExecutable = Platform.executable;
+
     var fullArgs = [];
     if (trace_service) {
       fullArgs.add('--trace-service');
@@ -114,12 +147,56 @@
     if (pause_on_unhandled_exceptions) {
       fullArgs.add('--pause-isolates-on-unhandled-exceptions');
     }
+
     fullArgs.addAll(Platform.executableArguments);
+    fullArgs.add('--enable-vm-service:0');
     fullArgs.addAll(args);
-    print('** Launching $dartExecutable ${fullArgs.join(' ')}');
-    return Process.start(dartExecutable,
-                         fullArgs,
-                         environment: _TESTEE_SPAWN_ENV);
+
+    return _spawnCommon(dartExecutable, fullArgs);
+  }
+
+  Future<Process> _spawnSkyProcess(bool pause_on_start,
+                                   bool pause_on_exit,
+                                   bool pause_on_unhandled_exceptions,
+                                   bool trace_service,
+                                   bool trace_compiler) {
+    assert(_shouldLaunchSkyShell());
+
+    String dartExecutable = _skyShellPath();
+
+    var dartFlags = [];
+    var fullArgs = [];
+    if (trace_service) {
+      dartFlags.add('--trace_service');
+      dartFlags.add('--trace_service_verbose');
+    }
+    if (trace_compiler) {
+      dartFlags.add('--trace_compiler');
+    }
+    if (pause_on_start) {
+      dartFlags.add('--pause_isolates_on_start');
+      fullArgs.add('--start-paused');
+    }
+    if (pause_on_exit) {
+      dartFlags.add('--pause_isolates_on_exit');
+    }
+    if (pause_on_unhandled_exceptions) {
+      dartFlags.add('--pause_isolates_on_unhandled_exceptions');
+    }
+    // Override mirrors.
+    dartFlags.add('--enable_mirrors=true');
+
+    fullArgs.addAll(Platform.executableArguments);
+    fullArgs.add('--observatory-port=0');
+    fullArgs.add('--dart-flags=${dartFlags.join(' ')}');
+    fullArgs.addAll(args);
+
+    return _spawnCommon(dartExecutable, fullArgs);
+  }
+
+  Future<Process> _spawnCommon(String executable, List<String> arguments) {
+    print('** Launching $executable ${arguments.join(' ')}');
+    return Process.start(executable, arguments, environment: _TESTEE_SPAWN_ENV);
   }
 
   Future<int> launch(bool pause_on_start,
@@ -198,37 +275,39 @@
       serviceWebsocketAddress = 'ws://localhost:$port/ws';
       serviceHttpAddress = 'http://localhost:$port';
       var name = Platform.script.pathSegments.last;
-      runZoned(() {
-        new WebSocketVM(new WebSocketVMTarget(serviceWebsocketAddress)).load()
-            .then((VM vm) async {
+      runZoned(() async {
+        var vm =
+            new WebSocketVM(new WebSocketVMTarget(serviceWebsocketAddress));
+        print('Loading VM...');
+        await vm.load();
+        print('Done loading VM');
 
-              // Run vm tests.
-              if (vmTests != null) {
-                var testIndex = 1;
-                var totalTests = vmTests.length;
-                for (var test in vmTests) {
-                  vm.verbose = verbose_vm;
-                  print('Running $name [$testIndex/$totalTests]');
-                  testIndex++;
-                  await test(vm);
-                }
-              }
+        // Run vm tests.
+        if (vmTests != null) {
+          var testIndex = 1;
+          var totalTests = vmTests.length;
+          for (var test in vmTests) {
+            vm.verbose = verbose_vm;
+            print('Running $name [$testIndex/$totalTests]');
+            testIndex++;
+            await test(vm);
+          }
+        }
 
-              // Run isolate tests.
-              if (isolateTests != null) {
-                var isolate = await vm.isolates.first.load();
-                var testIndex = 1;
-                var totalTests = isolateTests.length;
-                for (var test in isolateTests) {
-                  vm.verbose = verbose_vm;
-                  print('Running $name [$testIndex/$totalTests]');
-                  testIndex++;
-                  await test(isolate);
-                }
-              }
+        // Run isolate tests.
+        if (isolateTests != null) {
+          var isolate = await vm.isolates.first.load();
+          var testIndex = 1;
+          var totalTests = isolateTests.length;
+          for (var test in isolateTests) {
+            vm.verbose = verbose_vm;
+            print('Running $name [$testIndex/$totalTests]');
+            testIndex++;
+            await test(isolate);
+          }
+        }
 
-              await process.requestExit();
-            });
+        await process.requestExit();
       }, onError: (e, st) {
         process.requestExit();
         if (!_isWebSocketDisconnect(e)) {
diff --git a/runtime/observatory/tests/service/vm_timeline_events_test.dart b/runtime/observatory/tests/service/vm_timeline_events_test.dart
new file mode 100644
index 0000000..c84411e
--- /dev/null
+++ b/runtime/observatory/tests/service/vm_timeline_events_test.dart
@@ -0,0 +1,71 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+// VMOptions=--error_on_bad_type --error_on_bad_override
+
+import 'dart:async';
+import 'dart:developer';
+import 'package:observatory/service_io.dart';
+import 'package:unittest/unittest.dart';
+import 'service_test_common.dart';
+import 'test_helper.dart';
+
+primeDartTimeline() {
+  while (true) {
+    Timeline.startSync('apple');
+    Timeline.finishSync();
+  }
+}
+
+bool isDart(Map event) => event['cat'] == 'Dart';
+
+List<Map> filterEvents(List<Map> events, filter) {
+  return events.where(filter).toList();
+}
+
+Completer completer = new Completer();
+int eventCount = 0;
+
+onTimelineEvent(ServiceEvent event) {
+  eventCount++;
+  expect(filterEvents(event.timelineEvents, isDart).length, greaterThan(0));
+  if (eventCount == 5) {
+    completer.complete(eventCount);
+  }
+}
+
+var tests = [
+  (Isolate isolate) async {
+    // Subscribe to the Timeline stream.
+    await subscribeToStream(isolate.vm, VM.kTimelineStream, onTimelineEvent);
+  },
+  (Isolate isolate) async {
+    // Ensure we don't get any events before enabling Dart.
+    await new Future.delayed(new Duration(seconds: 5));
+    expect(eventCount, 0);
+  },
+  (Isolate isolate) async {
+    // Get the flags.
+    Map flags = await isolate.vm.invokeRpcNoUpgrade('_getVMTimelineFlags', {});
+    expect(flags['type'], 'TimelineFlags');
+    // Confirm that 'Dart' is available.
+    expect(flags['availableStreams'].contains('Dart'), isTrue);
+    // Confirm that nothing is being recorded.
+    expect(flags['recordedStreams'].length, equals(0));
+  },
+  (Isolate isolate) async {
+    // Enable the Dart category.
+    await isolate.vm.invokeRpcNoUpgrade('_setVMTimelineFlags', {
+      "recordedStreams": ["Dart"]
+    });
+  },
+  (Isolate isolate) async {
+    // Wait to receive events.
+    await completer.future;
+    cancelStreamSubscription(VM.kTimelineStream);
+  },
+];
+
+main(args) async => runIsolateTests(args,
+                                    tests,
+                                    testeeConcurrent: primeDartTimeline);
diff --git a/runtime/tests/vm/dart/byte_array_optimized_test.dart b/runtime/tests/vm/dart/byte_array_optimized_test.dart
index 8492798..755c3b1 100644
--- a/runtime/tests/vm/dart/byte_array_optimized_test.dart
+++ b/runtime/tests/vm/dart/byte_array_optimized_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library byte_array_test;
diff --git a/runtime/tests/vm/dart/byte_array_test.dart b/runtime/tests/vm/dart/byte_array_test.dart
index f1ff69e..048e2e7 100644
--- a/runtime/tests/vm/dart/byte_array_test.dart
+++ b/runtime/tests/vm/dart/byte_array_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization_counter_threshold=10 --disable_alloc_stubs_after_gc
+// VMOptions=--optimization_counter_threshold=10 --disable_alloc_stubs_after_gc --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library byte_array_test;
diff --git a/runtime/tests/vm/dart/inline_stack_frame_test.dart b/runtime/tests/vm/dart/inline_stack_frame_test.dart
index 62fa819..e553855 100644
--- a/runtime/tests/vm/dart/inline_stack_frame_test.dart
+++ b/runtime/tests/vm/dart/inline_stack_frame_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index da20917..a0c7a40 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -36,10 +36,6 @@
 [ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simmips ]
 cc/Service_Profile: Skip
 
-[ $arch == arm ]
-cc/Int8ListLengthMaxElements: Skip # Issue 23314
-cc/ArrayLengthMaxElements: Skip # Issue 23314
-
 [ $compiler == dart2js ]
 dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
 dart/byte_array_test: Skip # compilers not aware of byte arrays
@@ -55,13 +51,14 @@
 # minifying they can be renamed, which is issue 7953.
 dart/inline_stack_frame_test: RuntimeError, Pass # Issue 7953
 
+[ $compiler == dart2js && $cps_ir && $checked ]
+dart/inline_stack_frame_test: Crash # Unable to compile ArgumentError.message
+
 [ $compiler == dart2js || $compiler == dart2analyzer ]
 # Data uri's not supported by dart2js or the analyzer.
 dart/data_uri*test: Skip
 
 [ $arch == mips ]
-cc/StaticNonNullSumCallCodegen: Crash, Pass # Issue 17440
-cc/ArrayLengthMaxElements: Crash  # Issue 23275
 cc/Int8ListLengthMaxElements: Skip # Issue 23536, uses 1 GB memory.
 
 [ $arch == mips && $mode == debug ]
@@ -84,7 +81,7 @@
 [ $noopt ]
 dart/byte_array_test: Crash # Incompatible flag --disable_alloc_stubs_after_gc
 
-[ $noopt || $compiler == precompiler || $compiler == dart2app ]
+[ $noopt || $compiler == precompiler || $mode == product ]
 dart/redirection_type_shuffling_test: CompileTimeError # Imports dart:mirrors
 
 [ $noopt || $runtime == dart_precompiled ]
diff --git a/runtime/vm/aot_optimizer.cc b/runtime/vm/aot_optimizer.cc
index f813eb8..49f9f18 100644
--- a/runtime/vm/aot_optimizer.cc
+++ b/runtime/vm/aot_optimizer.cc
@@ -2406,8 +2406,11 @@
   return false;
 }
 
-// Special optimizations when running in --noopt mode.
-void AotOptimizer::InstanceCallNoopt(InstanceCallInstr* instr) {
+
+// Tries to optimize instance call by replacing it with a faster instruction
+// (e.g, binary op, field load, ..).
+void AotOptimizer::VisitInstanceCall(InstanceCallInstr* instr) {
+  ASSERT(FLAG_precompiled_mode);
   // TODO(srdjan): Investigate other attempts, as they are not allowed to
   // deoptimize.
 
@@ -2484,6 +2487,33 @@
       return;
     }
   }
+  switch (instr->token_kind()) {
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE:
+    case Token::kBIT_OR:
+    case Token::kBIT_XOR:
+    case Token::kBIT_AND:
+    case Token::kADD:
+    case Token::kSUB: {
+      if (HasOnlyTwoOf(*instr->ic_data(), kSmiCid)) {
+        Definition* left = instr->ArgumentAt(0);
+        Definition* right = instr->ArgumentAt(1);
+        CheckedSmiOpInstr* smi_op =
+            new(Z) CheckedSmiOpInstr(instr->token_kind(),
+                                     new(Z) Value(left),
+                                     new(Z) Value(right),
+                                     instr);
+
+        ReplaceCall(instr, smi_op);
+        return;
+      }
+    }
+    default:
+      break;
+  }
 
   // More than one targets. Generate generic polymorphic call without
   // deoptimization.
@@ -2539,19 +2569,10 @@
         new(Z) PolymorphicInstanceCallInstr(instr, ic_data,
                                             /* with_checks = */ false);
     instr->ReplaceWith(call, current_iterator());
-    return;
   }
 }
 
 
-// Tries to optimize instance call by replacing it with a faster instruction
-// (e.g, binary op, field load, ..).
-void AotOptimizer::VisitInstanceCall(InstanceCallInstr* instr) {
-  ASSERT(FLAG_precompiled_mode);
-  InstanceCallNoopt(instr);
-}
-
-
 void AotOptimizer::VisitStaticCall(StaticCallInstr* call) {
   if (!CanUnboxDouble()) {
     return;
@@ -2712,41 +2733,6 @@
 }
 
 
-void AotOptimizer::VisitAllocateContext(AllocateContextInstr* instr) {
-  // Replace generic allocation with a sequence of inlined allocation and
-  // explicit initalizing stores.
-  AllocateUninitializedContextInstr* replacement =
-      new AllocateUninitializedContextInstr(instr->token_pos(),
-                                            instr->num_context_variables());
-  instr->ReplaceWith(replacement, current_iterator());
-
-  StoreInstanceFieldInstr* store =
-      new(Z) StoreInstanceFieldInstr(Context::parent_offset(),
-                                     new Value(replacement),
-                                     new Value(flow_graph_->constant_null()),
-                                     kNoStoreBarrier,
-                                     instr->token_pos());
-  // Storing into uninitialized memory; remember to prevent dead store
-  // elimination and ensure proper GC barrier.
-  store->set_is_object_reference_initialization(true);
-  flow_graph_->InsertAfter(replacement, store, NULL, FlowGraph::kEffect);
-  Definition* cursor = store;
-  for (intptr_t i = 0; i < instr->num_context_variables(); ++i) {
-    store =
-        new(Z) StoreInstanceFieldInstr(Context::variable_offset(i),
-                                       new Value(replacement),
-                                       new Value(flow_graph_->constant_null()),
-                                       kNoStoreBarrier,
-                                       instr->token_pos());
-    // Storing into uninitialized memory; remember to prevent dead store
-    // elimination and ensure proper GC barrier.
-    store->set_is_object_reference_initialization(true);
-    flow_graph_->InsertAfter(cursor, store, NULL, FlowGraph::kEffect);
-    cursor = store;
-  }
-}
-
-
 void AotOptimizer::VisitLoadCodeUnits(LoadCodeUnitsInstr* instr) {
   // TODO(zerny): Use kUnboxedUint32 once it is fully supported/optimized.
 #if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_ARM)
diff --git a/runtime/vm/aot_optimizer.h b/runtime/vm/aot_optimizer.h
index 3d1ed1b..97c996a 100644
--- a/runtime/vm/aot_optimizer.h
+++ b/runtime/vm/aot_optimizer.h
@@ -48,7 +48,6 @@
 
   virtual void VisitStaticCall(StaticCallInstr* instr);
   virtual void VisitInstanceCall(InstanceCallInstr* instr);
-  virtual void VisitAllocateContext(AllocateContextInstr* instr);
   virtual void VisitLoadCodeUnits(LoadCodeUnitsInstr* instr);
 
   void InsertBefore(Instruction* next,
@@ -67,7 +66,6 @@
 
   bool TryReplaceWithIndexedOp(InstanceCallInstr* call);
 
-
   bool TryReplaceWithBinaryOp(InstanceCallInstr* call, Token::Kind op_kind);
   bool TryReplaceWithUnaryOp(InstanceCallInstr* call, Token::Kind op_kind);
 
@@ -159,8 +157,6 @@
                                        Representation rep, intptr_t cid);
   bool TryStringLengthOneEquality(InstanceCallInstr* call, Token::Kind op_kind);
 
-  void InstanceCallNoopt(InstanceCallInstr* instr);
-
   RawField* GetField(intptr_t class_id, const String& field_name);
 
   Thread* thread() const { return flow_graph_->thread(); }
diff --git a/runtime/vm/assembler_mips.h b/runtime/vm/assembler_mips.h
index 1654ac9..0ca7945 100644
--- a/runtime/vm/assembler_mips.h
+++ b/runtime/vm/assembler_mips.h
@@ -585,6 +585,12 @@
     EmitRType(SPECIAL2, rs, rd, rd, 0, CLZ);
   }
 
+  // Convert a double in ds to a 32-bit signed int in fd rounding towards 0.
+  void truncwd(FRegister fd, DRegister ds) {
+    FRegister fs = static_cast<FRegister>(ds * 2);
+    EmitFpuRType(COP1, FMT_D, F0, fs, fd, COP1_TRUNC_W);
+  }
+
   // Convert a 32-bit float in fs to a 64-bit double in dd.
   void cvtds(DRegister dd, FRegister fs) {
     FRegister fd = static_cast<FRegister>(dd * 2);
@@ -597,23 +603,12 @@
     EmitFpuRType(COP1, FMT_W, F0, fs, fd, COP1_CVT_D);
   }
 
-  // Converts a 64-bit signed int in fs to a double in fd.
-  void cvtdl(DRegister dd, DRegister ds) {
-    FRegister fs = static_cast<FRegister>(ds * 2);
-    FRegister fd = static_cast<FRegister>(dd * 2);
-    EmitFpuRType(COP1, FMT_L, F0, fs, fd, COP1_CVT_D);
-  }
-
+  // Convert a 64-bit double in ds to a 32-bit float in fd.
   void cvtsd(FRegister fd, DRegister ds) {
     FRegister fs = static_cast<FRegister>(ds * 2);
     EmitFpuRType(COP1, FMT_D, F0, fs, fd, COP1_CVT_S);
   }
 
-  void cvtwd(FRegister fd, DRegister ds) {
-    FRegister fs = static_cast<FRegister>(ds * 2);
-    EmitFpuRType(COP1, FMT_D, F0, fs, fd, COP1_CVT_W);
-  }
-
   void div(Register rs, Register rt) {
     EmitRType(SPECIAL, rs, rt, R0, 0, DIV);
   }
diff --git a/runtime/vm/assembler_mips_test.cc b/runtime/vm/assembler_mips_test.cc
index e3cad3d..2072751 100644
--- a/runtime/vm/assembler_mips_test.cc
+++ b/runtime/vm/assembler_mips_test.cc
@@ -1976,6 +1976,101 @@
 }
 
 
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD, assembler) {
+  __ LoadImmediate(D1, 42.9);
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD_neg, assembler) {
+  __ LoadImmediate(D1, -42.9);
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD_neg, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD_NaN, assembler) {
+  // Double non-signaling NaN is 0x7FF8000000000000.
+  __ LoadImmediate(T0, 0x7FF80000);
+  __ mtc1(ZR, F2);  // Load upper bits of NaN.
+  __ mtc1(T0, F3);  // Load lower bits of NaN.
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD_NaN, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD_Inf, assembler) {
+  __ LoadImmediate(T0, 0x7FF00000);  // +inf
+  __ mtc1(ZR, F2);
+  __ mtc1(T0, F3);
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD_Inf, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD_Overflow, assembler) {
+  __ LoadImmediate(D1, 2.0*kMaxInt32);
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD_Overflow, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Cop1TruncWD_Underflow, assembler) {
+  __ LoadImmediate(D1, 2.0*kMinInt32);
+  __ truncwd(F0, D1);
+  __ mfc1(V0, F0);
+  __ Ret();
+}
+
+
+ASSEMBLER_TEST_RUN(Cop1TruncWD_Underflow, test) {
+  typedef int (*SimpleCode)() DART_UNUSED;
+  EXPECT(test != NULL);
+  EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
 ASSEMBLER_TEST_GENERATE(Cop1CvtDW, assembler) {
   __ LoadImmediate(T0, 42);
   __ mtc1(T0, F2);
@@ -2008,78 +2103,6 @@
 }
 
 
-ASSEMBLER_TEST_GENERATE(Cop1CvtDL, assembler) {
-  if (TargetCPUFeatures::mips_version() == MIPS32r2) {
-    __ LoadImmediate(T0, 0x1);
-    __ mtc1(ZR, F2);
-    __ mtc1(T0, F3);  // D0 <- 0x100000000 = 4294967296
-    __ cvtdl(D0, D1);
-  } else {
-    __ LoadImmediate(D0, 4294967296.0);
-  }
-  __ Ret();
-}
-
-
-ASSEMBLER_TEST_RUN(Cop1CvtDL, test) {
-  typedef double (*SimpleCode)() DART_UNUSED;
-  EXPECT(test != NULL);
-  double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry());
-  EXPECT_FLOAT_EQ(4294967296.0, res, 0.001);
-}
-
-
-ASSEMBLER_TEST_GENERATE(Cop1CvtDL_neg, assembler) {
-  if (TargetCPUFeatures::mips_version() == MIPS32r2) {
-    __ LoadImmediate(T0, 0xffffffff);
-    __ mtc1(T0, F2);
-    __ mtc1(T0, F3);  // D0 <- 0xffffffffffffffff = -1
-    __ cvtdl(D0, D1);
-  } else {
-    __ LoadImmediate(D0, -1.0);
-  }
-  __ Ret();
-}
-
-
-ASSEMBLER_TEST_RUN(Cop1CvtDL_neg, test) {
-  typedef double (*SimpleCode)() DART_UNUSED;
-  EXPECT(test != NULL);
-  double res = EXECUTE_TEST_CODE_DOUBLE(SimpleCode, test->entry());
-  EXPECT_FLOAT_EQ(-1.0, res, 0.001);
-}
-
-
-ASSEMBLER_TEST_GENERATE(Cop1CvtWD, assembler) {
-  __ LoadImmediate(D1, 42.0);
-  __ cvtwd(F0, D1);
-  __ mfc1(V0, F0);
-  __ Ret();
-}
-
-
-ASSEMBLER_TEST_RUN(Cop1CvtWD, test) {
-  typedef int (*SimpleCode)() DART_UNUSED;
-  EXPECT(test != NULL);
-  EXPECT_EQ(42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
-}
-
-
-ASSEMBLER_TEST_GENERATE(Cop1CvtWD_neg, assembler) {
-  __ LoadImmediate(D1, -42.0);
-  __ cvtwd(F0, D1);
-  __ mfc1(V0, F0);
-  __ Ret();
-}
-
-
-ASSEMBLER_TEST_RUN(Cop1CvtWD_neg, test) {
-  typedef int (*SimpleCode)() DART_UNUSED;
-  EXPECT(test != NULL);
-  EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
-}
-
-
 ASSEMBLER_TEST_GENERATE(Cop1CvtSD, assembler) {
   __ LoadImmediate(D2, -42.42);
   __ cvtsd(F2, D2);
diff --git a/runtime/vm/ast.cc b/runtime/vm/ast.cc
index bb1b624..7d7f3f4 100644
--- a/runtime/vm/ast.cc
+++ b/runtime/vm/ast.cc
@@ -13,14 +13,8 @@
 
 namespace dart {
 
-DEFINE_FLAG(bool, trace_ast_visitor, false,
-            "Trace AstVisitor.");
-
 #define DEFINE_VISIT_FUNCTION(BaseName)                                        \
 void BaseName##Node::Visit(AstNodeVisitor* visitor) {                          \
-  if (FLAG_trace_ast_visitor) {                                                \
-    THR_Print("Visiting %s\n", Name());                                        \
-  }                                                                            \
   visitor->Visit##BaseName##Node(this);                                        \
 }
 
diff --git a/runtime/vm/block_scheduler.cc b/runtime/vm/block_scheduler.cc
index 5b3d78d..bc9885d 100644
--- a/runtime/vm/block_scheduler.cc
+++ b/runtime/vm/block_scheduler.cc
@@ -12,7 +12,7 @@
 namespace dart {
 
 static intptr_t GetEdgeCount(const Array& edge_counters, intptr_t edge_id) {
-  if (!FLAG_emit_edge_counters) {
+  if (!FLAG_reorder_basic_blocks) {
     // Assume everything was visited once.
     return 1;
   }
@@ -53,7 +53,7 @@
 
 
 void BlockScheduler::AssignEdgeWeights() const {
-  if (!FLAG_emit_edge_counters) {
+  if (!FLAG_reorder_basic_blocks) {
     return;
   }
 
diff --git a/runtime/vm/class_table.cc b/runtime/vm/class_table.cc
index 7129cf8..8cb9fa1 100644
--- a/runtime/vm/class_table.cc
+++ b/runtime/vm/class_table.cc
@@ -2,6 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+#include "vm/atomic.h"
 #include "vm/class_table.h"
 #include "vm/flags.h"
 #include "vm/freelist.h"
@@ -106,11 +107,9 @@
     // Add the vtable for this predefined class into the static vtable registry
     // if it has not been setup yet.
     cpp_vtable cls_vtable = cls.handle_vtable();
-    cpp_vtable table_entry = Object::builtin_vtables_[index];
-    ASSERT((table_entry == 0) || (table_entry == cls_vtable));
-    if (table_entry == 0) {
-      Object::builtin_vtables_[index] = cls_vtable;
-    }
+    AtomicOperations::CompareAndSwapWord(
+        &(Object::builtin_vtables_[index]), 0, cls_vtable);
+    ASSERT(Object::builtin_vtables_[index] == cls_vtable);
   } else {
     if (top_ == capacity_) {
       // Grow the capacity of the class table.
diff --git a/runtime/vm/code_descriptors.cc b/runtime/vm/code_descriptors.cc
index dad76d9..b7b4326 100644
--- a/runtime/vm/code_descriptors.cc
+++ b/runtime/vm/code_descriptors.cc
@@ -124,7 +124,7 @@
                               list_[i].pc_offset,
                               list_[i].needs_stacktrace,
                               has_catch_all);
-      handlers.SetHandledTypes(i, Array::null_array());
+      handlers.SetHandledTypes(i, Array::empty_array());
     } else {
       const bool has_catch_all = ContainsDynamic(*list_[i].handler_types);
       handlers.SetHandlerInfo(i,
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc
index 758c2e0..652cdc2 100644
--- a/runtime/vm/code_generator.cc
+++ b/runtime/vm/code_generator.cc
@@ -32,6 +32,10 @@
 DEFINE_FLAG(int, regexp_optimization_counter_threshold, 1000,
     "RegExp's usage-counter value before it is optimized, -1 means never");
 DEFINE_FLAG(charp, optimization_filter, NULL, "Optimize only named function");
+// TODO(srdjan): Remove this flag once background compilation of regular
+// expressions is possible.
+DEFINE_FLAG(bool, regexp_opt_in_background, false,
+    "Optimize reg-exp functions in background");
 DEFINE_FLAG(int, reoptimization_counter_threshold, 4000,
     "Counter threshold before a function gets reoptimized.");
 DEFINE_FLAG(bool, stop_on_excessive_deoptimization, false,
@@ -1349,7 +1353,7 @@
       ActivationFrame* frame = stack->FrameAt(i);
       // Variable locations and number are unknown when precompiling.
       const int num_vars =
-         FLAG_precompiled_mode ? 0 : frame->NumLocalVariables();
+         FLAG_precompiled_runtime ? 0 : frame->NumLocalVariables();
       TokenPosition unused = TokenPosition::kNoSource;
       for (intptr_t v = 0; v < num_vars; v++) {
         frame->VariableAt(v, &var_name, &unused, &unused, &var_value);
@@ -1461,7 +1465,8 @@
       }
     }
     // TODO(srdjan): Fix background compilation of regular expressions.
-    if (FLAG_background_compilation) {
+    if (FLAG_background_compilation &&
+        (!function.IsIrregexpFunction() || FLAG_regexp_opt_in_background)) {
       if (FLAG_enable_inlining_annotations) {
         FATAL("Cannot enable inlining annotations and background compilation");
       }
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
index dd2ddee..6365b3c 100644
--- a/runtime/vm/compiler.cc
+++ b/runtime/vm/compiler.cc
@@ -61,7 +61,6 @@
     "Print the deopt-id to ICData map in optimizing compiler.");
 DEFINE_FLAG(bool, print_code_source_map, false, "Print code source map.");
 DEFINE_FLAG(bool, range_analysis, true, "Enable range analysis");
-DEFINE_FLAG(bool, reorder_basic_blocks, true, "Enable basic-block reordering.");
 DEFINE_FLAG(bool, trace_compiler, false, "Trace compiler operations.");
 DEFINE_FLAG(bool, trace_optimizing_compiler, false,
     "Trace only optimizing compiler operations.");
@@ -107,6 +106,7 @@
   // Variables are allocated after compilation.
 }
 
+
 FlowGraph* IrregexpCompilationPipeline::BuildFlowGraph(
     Zone* zone,
     ParsedFunction* parsed_function,
@@ -133,10 +133,12 @@
                              result.num_blocks);
 }
 
+
 void IrregexpCompilationPipeline::FinalizeCompilation() {
   backtrack_goto_->ComputeOffsetTable();
 }
 
+
 CompilationPipeline* CompilationPipeline::New(Zone* zone,
                                               const Function& function) {
   if (function.IsIrregexpFunction()) {
@@ -701,8 +703,12 @@
                                                  compiler_timeline,
                                                  "OptimizationPasses"));
         inline_id_to_function.Add(&function);
-        inline_id_to_token_pos.Add(function.token_pos());
-        // Top scope function has no caller (-1).
+        // We do not add the token position now because we don't know the
+        // position of the inlined call until later. A side effect of this
+        // is that the length of |inline_id_to_function| is always larger
+        // than the length of |inline_id_to_token_pos| by one.
+        // Top scope function has no caller (-1). We do this because we expect
+        // all token positions to be at an inlined call.
         caller_inline_id.Add(-1);
         CSTAT_TIMER_SCOPE(thread(), graphoptimizer_timer);
 
@@ -1288,8 +1294,11 @@
 
   // Optimization must happen in non-mutator/Dart thread if background
   // compilation is on. OSR compilation still occurs in the main thread.
+  // TODO(Srdjan): Remove assert allowance for regular expression functions
+  // once they can be compiled in background.
   ASSERT((osr_id != kNoOSRDeoptId) || !FLAG_background_compilation ||
-         !thread->IsMutatorThread());
+         !thread->IsMutatorThread() ||
+         function.IsIrregexpFunction());
   CompilationPipeline* pipeline =
       CompilationPipeline::New(thread->zone(), function);
   return CompileFunctionHelper(pipeline,
diff --git a/runtime/vm/constant_propagator.cc b/runtime/vm/constant_propagator.cc
index fa21b0f..03ab8ae 100644
--- a/runtime/vm/constant_propagator.cc
+++ b/runtime/vm/constant_propagator.cc
@@ -937,6 +937,11 @@
 }
 
 
+void ConstantPropagator::VisitCheckedSmiOp(CheckedSmiOpInstr* instr) {
+  SetValue(instr, non_constant_);
+}
+
+
 void ConstantPropagator::VisitBinarySmiOp(BinarySmiOpInstr* instr) {
   VisitBinaryIntegerOp(instr);
 }
diff --git a/runtime/vm/constants_mips.h b/runtime/vm/constants_mips.h
index ccf437a..bcde75e 100644
--- a/runtime/vm/constants_mips.h
+++ b/runtime/vm/constants_mips.h
@@ -440,9 +440,9 @@
   COP1_SQRT = 0x04,
   COP1_MOV = 0x06,
   COP1_NEG = 0x07,
+  COP1_TRUNC_W = 0x0d,
   COP1_CVT_S = 0x20,
   COP1_CVT_D = 0x21,
-  COP1_CVT_W = 0x24,
   COP1_C_F = 0x30,
   COP1_C_UN = 0x31,
   COP1_C_EQ = 0x32,
diff --git a/runtime/vm/custom_isolate_test.cc b/runtime/vm/custom_isolate_test.cc
index d720f70..1995ee6 100644
--- a/runtime/vm/custom_isolate_test.cc
+++ b/runtime/vm/custom_isolate_test.cc
@@ -321,7 +321,9 @@
   bool saved_flag = FLAG_trace_shutdown;
   FLAG_trace_shutdown = true;
   FLAG_verify_handles = true;
+#ifdef DEBUG
   FLAG_verify_on_transition = true;
+#endif
   event_queue = new EventQueue();
 
   Dart_Isolate dart_isolate = TestCase::CreateTestIsolate();
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index bef0ebb..36ef3f0 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -472,7 +472,7 @@
     }
   }
 
-  I->heap()->EnableGrowthControl();
+  I->heap()->InitGrowthControl();
   I->set_init_callback_data(data);
   Api::SetupAcquiredError(I);
   if (FLAG_print_class_table) {
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 4c6fd00..3b94487 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1145,7 +1145,7 @@
     Dart_FileCloseCallback file_close,
     Dart_EntropySource entropy_source,
     Dart_GetVMServiceAssetsArchive get_service_assets) {
-  if ((instructions_snapshot != NULL) && !FLAG_precompiled_mode) {
+  if ((instructions_snapshot != NULL) && !FLAG_precompiled_runtime) {
     return strdup("Flag --precompilation was not specified.");
   }
   if (interrupt != NULL) {
@@ -6096,7 +6096,7 @@
 }
 
 
-// The precompiler is included in dart_no_snapshot and dart_noopt, and
+// The precompiler is included in dart_bootstrap and dart_noopt, and
 // excluded from dart and dart_precompiled_runtime.
 #if !defined(DART_PRECOMPILER)
 
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index dda7b34..2739006 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -1519,7 +1519,7 @@
     }
     if (frame->IsDartFrame()) {
       code = frame->LookupDartCode();
-      if (code.is_optimized() && !FLAG_precompiled_mode) {
+      if (code.is_optimized() && !FLAG_precompiled_runtime) {
         deopt_frame = DeoptimizeToArray(thread, frame, code);
         for (InlinedFunctionsIterator it(code, frame->pc());
              !it.Done();
diff --git a/runtime/vm/disassembler.cc b/runtime/vm/disassembler.cc
index 1fe4215..5ba92d9 100644
--- a/runtime/vm/disassembler.cc
+++ b/runtime/vm/disassembler.cc
@@ -194,6 +194,7 @@
   code.Disassemble();
   THR_Print("}\n");
 
+#if defined(TARGET_ARCH_IA32)
   THR_Print("Pointer offsets for function: {\n");
   // Pointer offsets are stored in descending order.
   Object& obj = Object::Handle();
@@ -204,6 +205,12 @@
               code.GetPointerOffsetAt(i), addr, obj.ToCString());
   }
   THR_Print("}\n");
+#else
+  ASSERT(code.pointer_offsets_length() == 0);
+#endif
+
+  const ObjectPool& object_pool = ObjectPool::Handle(code.GetObjectPool());
+  object_pool.DebugPrint();
 
   THR_Print("PC Descriptors for function '%s' {\n", function_fullname);
   PcDescriptors::PrintHeaderString();
@@ -234,9 +241,6 @@
     THR_Print("}\n");
   }
 
-  const ObjectPool& object_pool = ObjectPool::Handle(code.GetObjectPool());
-  object_pool.DebugPrint();
-
   THR_Print("Stackmaps for function '%s' {\n", function_fullname);
   if (code.stackmaps() != Array::null()) {
     const Array& stackmap_table = Array::Handle(code.stackmaps());
diff --git a/runtime/vm/disassembler_mips.cc b/runtime/vm/disassembler_mips.cc
index b9e0987..22fe462 100644
--- a/runtime/vm/disassembler_mips.cc
+++ b/runtime/vm/disassembler_mips.cc
@@ -581,12 +581,16 @@
         Format(instr, "c.ule.'fmt 'fs, 'ft");
         break;
       }
-      case COP1_CVT_D: {
-        Format(instr, "cvt.d.'fmt 'fd, 'fs");
+      case COP1_TRUNC_W: {
+        Format(instr, "trunc.w.'fmt 'fd, 'fs");
         break;
       }
-      case COP1_CVT_W: {
-        Format(instr, "cvt.w.'fmt 'fd, 'fs");
+      case COP1_CVT_S: {
+        Format(instr, "cvt.s.'fmt 'fd, 'fs");
+        break;
+      }
+      case COP1_CVT_D: {
+        Format(instr, "cvt.d.'fmt 'fd, 'fs");
         break;
       }
       default: {
diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h
index 35a7756..a879dda 100644
--- a/runtime/vm/flag_list.h
+++ b/runtime/vm/flag_list.h
@@ -21,15 +21,15 @@
 //   R(name, product_value, type, default_value, comment)
 //   C(name, precompiled_value, product_value, type, default_value, comment)
 #define FLAG_LIST(P, R, D, C)                                                  \
-C(allow_absolute_addresses, false, true, bool, true,                           \
+P(allow_absolute_addresses, bool, true,                                        \
   "Allow embedding absolute addresses in generated code.")                     \
-C(always_megamorphic_calls, true, false, bool, false,                          \
+P(always_megamorphic_calls, bool, false,                                       \
   "Instance call always as megamorphic.")                                      \
 C(background_compilation, false, false, bool, false,                           \
   "Run optimizing compilation in background")                                  \
 C(collect_code, false, true, bool, true,                                       \
   "Attempt to GC infrequently used code.")                                     \
-C(collect_dynamic_function_names, true, false, bool, false,                    \
+P(collect_dynamic_function_names, bool, false,                                 \
   "Collects all dynamic function names to identify unique targets")            \
 R(dedup_instructions, true, bool, false,                                       \
   "Canonicalize instructions when precompiling.")                              \
@@ -45,8 +45,6 @@
   "Disassemble optimized code.")                                               \
 R(dump_symbol_stats, false, bool, false,                                       \
   "Dump symbol table statistics")                                              \
-C(emit_edge_counters, false, true, bool, true,                                 \
-  "Emit edge counters")                                                        \
 R(enable_asserts, false, bool, false,                                          \
   "Enable assert statements.")                                                 \
 C(enable_mirrors, false, false, bool, true,                                    \
@@ -57,7 +55,7 @@
   "Report error for bad overrides.")                                           \
 R(error_on_bad_type, false, bool, false,                                       \
   "Report error for malformed types.")                                         \
-C(fields_may_be_reset, true, false, bool, false,                               \
+P(fields_may_be_reset, bool, false,                                            \
   "Don't optimize away static field initialization")                           \
 C(force_clone_compiler_objects, false, false, bool, false,                     \
   "Force cloning of objects needed in compiler (ICData and Field).")           \
@@ -67,13 +65,13 @@
   "Ratio of getter/setter usage used for double field unboxing heuristics")    \
 P(guess_icdata_cid, bool, true,                                                \
   "Artificially create type feedback for arithmetic etc. operations")          \
-C(ic_range_profiling, false, true, bool, true,                                 \
+P(ic_range_profiling, bool, true,                                              \
   "Generate special IC stubs collecting range information ")                   \
-C(interpret_irregexp, true, false, bool, false,                                \
+P(interpret_irregexp, bool, false,                                             \
   "Use irregexp bytecode interpreter")                                         \
-C(lazy_dispatchers, false, true, bool, true,                                   \
+P(lazy_dispatchers, bool, true,                                                \
   "Generate dispatchers lazily")                                               \
-C(link_natives_lazily, true, false, bool, false,                               \
+P(link_natives_lazily, bool, false,                                            \
   "Link native calls lazily")                                                  \
 C(load_deferred_eagerly, true, true, bool, false,                              \
   "Load deferred libraries eagerly.")                                          \
@@ -85,22 +83,30 @@
   "Merge sin/cos into sincos")                                                 \
 P(new_gen_ext_limit, int, 64,                                                  \
   "maximum total external size (MB) in new gen before triggering GC")          \
-C(optimization_counter_threshold, -1, 30000, int, 30000,                       \
+P(optimization_counter_threshold, int, 30000,                                  \
   "Function's usage-counter value before it is optimized, -1 means never")     \
-C(polymorphic_with_deopt, false, true, bool, true,                             \
+P(polymorphic_with_deopt, bool, true,                                          \
   "Polymorphic calls with deoptimization / megamorphic call")                  \
-C(precompiled_mode, true, false, bool, false,                                  \
-  "Precompilation compiler/runtime mode")                                      \
+P(precompiled_mode, bool, false,                                               \
+  "Precompilation compiler mode")                                              \
+C(precompiled_runtime, true, false, bool, false,                               \
+  "Precompiled runtime mode")                                                  \
 R(pretenure_all, false, bool, false,                                           \
   "Global pretenuring (for testing).")                                         \
 P(pretenure_interval, int, 10,                                                 \
   "Back off pretenuring after this many cycles.")                              \
 P(pretenure_threshold, int, 98,                                                \
   "Trigger pretenuring when this many percent are promoted.")                  \
+R(print_ssa_liveness, false, bool, false,                                      \
+  "Print liveness for ssa variables.")                                         \
+R(print_ssa_liveranges, false, bool, false,                                    \
+  "Print live ranges after allocation.")                                       \
 C(print_stop_message, false, false, bool, false,                               \
   "Print stop message.")                                                       \
 R(profiler, false, bool, true,                                                 \
   "Enable the profiler.")                                                      \
+P(reorder_basic_blocks, bool, true,                                            \
+  "Reorder basic blocks")                                                      \
 R(support_ast_printer, false, bool, true,                                      \
   "Support the AST printer.")                                                  \
 R(support_compiler_stats, false, bool, true,                                   \
@@ -125,13 +131,15 @@
   "Traces allocation of handles.")                                             \
 D(trace_optimization, bool, false,                                             \
   "Print optimization details.");                                              \
+D(trace_ssa_allocator, bool, false,                                            \
+  "Trace register allocation over SSA.")                                       \
 D(trace_zones, bool, false,                                                    \
   "Traces allocation sizes in the zone.")                                      \
 P(truncating_left_shift, bool, true,                                           \
   "Optimize left shift to truncate if possible")                               \
-C(use_cha_deopt, false, true, bool, true,                                      \
+P(use_cha_deopt, bool, true,                                                   \
   "Use class hierarchy analysis even if it can cause deoptimization.")         \
-C(use_field_guards, false, true, bool, true,                                   \
+P(use_field_guards, bool, true,                                                \
   "Use field guards and track field types")                                    \
 C(use_osr, false, true, bool, true,                                            \
   "Use OSR")                                                                   \
@@ -143,5 +151,7 @@
   "Enables heap verification after GC.")                                       \
 R(verify_before_gc, false, bool, false,                                        \
   "Enables heap verification before GC.")                                      \
+D(verify_on_transition, bool, false,                                           \
+  "Verify on dart <==> VM.")                                                   \
 
 #endif  // VM_FLAG_LIST_H_
diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc
index 3296e09..a5cadf0 100644
--- a/runtime/vm/flow_graph.cc
+++ b/runtime/vm/flow_graph.cc
@@ -19,7 +19,6 @@
 DEFINE_FLAG(bool, trace_smi_widening, false, "Trace Smi->Int32 widening pass.");
 #endif
 DEFINE_FLAG(bool, prune_dead_locals, true, "optimize dead locals away");
-DECLARE_FLAG(bool, reorder_basic_blocks);
 DECLARE_FLAG(bool, verify_compiler);
 
 
@@ -105,8 +104,9 @@
 
 bool FlowGraph::ShouldReorderBlocks(const Function& function,
                                     bool is_optimized) {
-  return is_optimized && FLAG_reorder_basic_blocks &&
-      FLAG_emit_edge_counters && !function.is_intrinsic();
+  return is_optimized
+      && FLAG_reorder_basic_blocks
+      && !function.is_intrinsic();
 }
 
 
diff --git a/runtime/vm/flow_graph_allocator.cc b/runtime/vm/flow_graph_allocator.cc
index b9bb33c..e2ba4bf 100644
--- a/runtime/vm/flow_graph_allocator.cc
+++ b/runtime/vm/flow_graph_allocator.cc
@@ -14,13 +14,6 @@
 
 namespace dart {
 
-DEFINE_FLAG(bool, print_ssa_liveness, false,
-            "Print liveness for ssa variables.");
-DEFINE_FLAG(bool, trace_ssa_allocator, false,
-            "Trace register allocation over SSA.");
-DEFINE_FLAG(bool, print_ssa_liveranges, false,
-            "Print live ranges after allocation.");
-
 #if defined(DEBUG)
 #define TRACE_ALLOC(statement)                                                 \
   do {                                                                         \
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
index c5460be..4bf3ec9 100644
--- a/runtime/vm/flow_graph_builder.cc
+++ b/runtime/vm/flow_graph_builder.cc
@@ -2176,8 +2176,13 @@
     }
     Goto(loop_entry);
     exit_ = loop_entry;
+    // Note: the stack overflow check happens on the back branch that jumps
+    // to the increment instruction. The token position for the overflow
+    // check must match the position of the increment expression, so that
+    // the context level (if any) matches the that of the increment
+    // expression.
     AddInstruction(
-        new(Z) CheckStackOverflowInstr(node->token_pos(),
+        new(Z) CheckStackOverflowInstr(node->increment()->token_pos(),
                                        owner()->loop_depth()));
   }
 
diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
index 5bc26af..1ca6adc 100644
--- a/runtime/vm/flow_graph_compiler.cc
+++ b/runtime/vm/flow_graph_compiler.cc
@@ -59,18 +59,12 @@
 DECLARE_FLAG(int, inlining_constant_arguments_max_size_threshold);
 DECLARE_FLAG(int, inlining_constant_arguments_min_size_threshold);
 
-#if !defined(DART_PRECOMPILED_RUNTIME)
 static void PrecompilationModeHandler(bool value) {
   if (value) {
 #if defined(TARGET_ARCH_IA32)
     FATAL("Precompilation not supported on IA32");
 #endif
 
-#if defined(PRODUCT)
-    FATAL("dart_noopt not supported in product mode");
-#else
-    FLAG_support_debugger = false;
-
     // Flags affecting compilation only:
     // There is no counter feedback in precompilation, so ignore the counter
     // when making inlining decisions.
@@ -87,27 +81,31 @@
 
     FLAG_allow_absolute_addresses = false;
     FLAG_always_megamorphic_calls = true;
-    FLAG_background_compilation = false;
-    FLAG_collect_code = false;
     FLAG_collect_dynamic_function_names = true;
-    FLAG_deoptimize_alot = false;  // Used in some tests.
-    FLAG_deoptimize_every = 0;     // Used in some tests.
-    FLAG_emit_edge_counters = false;
-    FLAG_enable_mirrors = false;
     FLAG_fields_may_be_reset = true;
     FLAG_ic_range_profiling = false;
     FLAG_interpret_irregexp = true;
     FLAG_lazy_dispatchers = false;
     FLAG_link_natives_lazily = true;
-    FLAG_load_deferred_eagerly = true;
     FLAG_optimization_counter_threshold = -1;
     FLAG_polymorphic_with_deopt = false;
     FLAG_precompiled_mode = true;
-    FLAG_print_stop_message = false;
-    FLAG_use_cha_deopt = false;
+    FLAG_reorder_basic_blocks = false;
     FLAG_use_field_guards = false;
+    FLAG_use_cha_deopt = false;
+
+#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+    // Set flags affecting runtime accordingly for dart_noopt.
+    FLAG_background_compilation = false;
+    FLAG_collect_code = false;
+    FLAG_support_debugger = false;
+    FLAG_deoptimize_alot = false;  // Used in some tests.
+    FLAG_deoptimize_every = 0;     // Used in some tests.
+    FLAG_enable_mirrors = false;
+    FLAG_load_deferred_eagerly = true;
+    FLAG_print_stop_message = false;
     FLAG_use_osr = false;
-#endif  // PRODUCT
+#endif
   }
 }
 
@@ -115,30 +113,17 @@
                     precompilation,
                     "Precompilation mode");
 
-#else  // DART_PRECOMPILED_RUNTIME
+#ifdef DART_PRECOMPILED_RUNTIME
 
-COMPILE_ASSERT(!FLAG_allow_absolute_addresses);
 COMPILE_ASSERT(!FLAG_background_compilation);
 COMPILE_ASSERT(!FLAG_collect_code);
 COMPILE_ASSERT(!FLAG_deoptimize_alot);  // Used in some tests.
-COMPILE_ASSERT(!FLAG_emit_edge_counters);
 COMPILE_ASSERT(!FLAG_enable_mirrors);
-COMPILE_ASSERT(!FLAG_ic_range_profiling);
-COMPILE_ASSERT(!FLAG_lazy_dispatchers);
-COMPILE_ASSERT(!FLAG_polymorphic_with_deopt);
+COMPILE_ASSERT(FLAG_precompiled_runtime);
 COMPILE_ASSERT(!FLAG_print_stop_message);
-COMPILE_ASSERT(!FLAG_use_cha_deopt);
-COMPILE_ASSERT(!FLAG_use_field_guards);
 COMPILE_ASSERT(!FLAG_use_osr);
-COMPILE_ASSERT(FLAG_always_megamorphic_calls);
-COMPILE_ASSERT(FLAG_collect_dynamic_function_names);
 COMPILE_ASSERT(FLAG_deoptimize_every == 0);  // Used in some tests.
-COMPILE_ASSERT(FLAG_fields_may_be_reset);
-COMPILE_ASSERT(FLAG_interpret_irregexp);
-COMPILE_ASSERT(FLAG_link_natives_lazily);
 COMPILE_ASSERT(FLAG_load_deferred_eagerly);
-COMPILE_ASSERT(FLAG_optimization_counter_threshold == -1);
-COMPILE_ASSERT(FLAG_precompiled_mode);
 
 #endif  // DART_PRECOMPILED_RUNTIME
 
@@ -540,7 +525,13 @@
               IntervalStruct(prev_offset, prev_inlining_pos, prev_inlining_id));
           prev_offset = assembler()->CodeSize();
           prev_inlining_id = instr->inlining_id();
-          prev_inlining_pos = inline_id_to_token_pos_[prev_inlining_id];
+          if (prev_inlining_id < inline_id_to_token_pos_.length()) {
+            prev_inlining_pos = inline_id_to_token_pos_[prev_inlining_id];
+          } else {
+            // We will add this token position later when generating the
+            // profile.
+            prev_inlining_pos = TokenPosition::kNoSource;
+          }
           if (prev_inlining_id > max_inlining_id) {
             max_inlining_id = prev_inlining_id;
           }
@@ -817,7 +808,8 @@
 // and FlowGraphCompiler::SlowPathEnvironmentFor.
 // See StackFrame::VisitObjectPointers for the details of how stack map is
 // interpreted.
-void FlowGraphCompiler::RecordSafepoint(LocationSummary* locs) {
+void FlowGraphCompiler::RecordSafepoint(LocationSummary* locs,
+                                        intptr_t slow_path_argument_count) {
   if (is_optimizing() || locs->live_registers()->HasUntaggedValues()) {
     const intptr_t spill_area_size = is_optimizing() ?
         flow_graph_.graph_entry()->spill_slot_count() : 0;
@@ -877,10 +869,17 @@
       }
     }
 
-    intptr_t register_bit_count = bitmap->Length() - spill_area_size;
+    // Arguments pushed on top of live registers in the slow path are tagged.
+    for (intptr_t i = 0; i < slow_path_argument_count; ++i) {
+      bitmap->Set(bitmap->Length(), true);
+    }
+
+    // The slow path area Outside the spill area contains are live registers
+    // and pushed arguments for calls inside the slow path.
+    intptr_t slow_path_bit_count = bitmap->Length() - spill_area_size;
     stackmap_table_builder()->AddEntry(assembler()->CodeSize(),
                                        bitmap,
-                                       register_bit_count);
+                                       slow_path_bit_count);
   }
 }
 
@@ -1162,7 +1161,8 @@
   }
   if (FLAG_always_megamorphic_calls) {
     EmitMegamorphicInstanceCall(ic_data, argument_count,
-                                deopt_id, token_pos, locs);
+                                deopt_id, token_pos, locs,
+                                CatchClauseNode::kInvalidTryIndex);
     return;
   }
   ASSERT(!ic_data.IsNull());
@@ -1189,7 +1189,8 @@
 
   if (is_optimizing()) {
     EmitMegamorphicInstanceCall(ic_data, argument_count,
-                                deopt_id, token_pos, locs);
+                                deopt_id, token_pos, locs,
+                                CatchClauseNode::kInvalidTryIndex);
     return;
   }
 
@@ -1302,7 +1303,7 @@
 bool FlowGraphCompiler::NeedsEdgeCounter(TargetEntryInstr* block) {
   // Only emit an edge counter if there is not goto at the end of the block,
   // except for the entry block.
-  return (FLAG_emit_edge_counters
+  return (FLAG_reorder_basic_blocks
       && (!block->last_instruction()->IsGoto()
           || (block == flow_graph().graph_entry()->normal_entry())));
 }
diff --git a/runtime/vm/flow_graph_compiler.h b/runtime/vm/flow_graph_compiler.h
index 60ce384..3dc31a0 100644
--- a/runtime/vm/flow_graph_compiler.h
+++ b/runtime/vm/flow_graph_compiler.h
@@ -460,7 +460,8 @@
       intptr_t deopt_id,
       TokenPosition token_pos,
       LocationSummary* locs,
-      intptr_t try_index = CatchClauseNode::kInvalidTryIndex);
+      intptr_t try_index,
+      intptr_t slow_path_argument_count = 0);
 
   void EmitSwitchableInstanceCall(const ICData& ic_data,
                                   intptr_t argument_count,
@@ -514,7 +515,8 @@
                             intptr_t deopt_id,
                             TokenPosition token_pos);
 
-  void RecordSafepoint(LocationSummary* locs);
+  void RecordSafepoint(LocationSummary* locs,
+                       intptr_t slow_path_argument_count = 0);
 
   Label* AddDeoptStub(intptr_t deopt_id,
                       ICData::DeoptReasonId reason,
diff --git a/runtime/vm/flow_graph_compiler_arm.cc b/runtime/vm/flow_graph_compiler_arm.cc
index 8d6816a..247537a 100644
--- a/runtime/vm/flow_graph_compiler_arm.cc
+++ b/runtime/vm/flow_graph_compiler_arm.cc
@@ -1309,7 +1309,8 @@
     intptr_t deopt_id,
     TokenPosition token_pos,
     LocationSummary* locs,
-    intptr_t try_index) {
+    intptr_t try_index,
+    intptr_t slow_path_argument_count) {
   const String& name = String::Handle(zone(), ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
@@ -1327,7 +1328,7 @@
   }
   __ blx(R1);
 
-  RecordSafepoint(locs);
+  RecordSafepoint(locs, slow_path_argument_count);
   const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
   if (FLAG_precompiled_mode) {
     // Megamorphic calls may occur in slow path stubs.
diff --git a/runtime/vm/flow_graph_compiler_arm64.cc b/runtime/vm/flow_graph_compiler_arm64.cc
index 618e60d..4f6474c 100644
--- a/runtime/vm/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/flow_graph_compiler_arm64.cc
@@ -1290,7 +1290,8 @@
     intptr_t deopt_id,
     TokenPosition token_pos,
     LocationSummary* locs,
-    intptr_t try_index) {
+    intptr_t try_index,
+    intptr_t slow_path_argument_count) {
   const String& name = String::Handle(zone(), ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
@@ -1308,7 +1309,7 @@
   }
   __ blr(R1);
 
-  RecordSafepoint(locs);
+  RecordSafepoint(locs, slow_path_argument_count);
   const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
   if (FLAG_precompiled_mode) {
     // Megamorphic calls may occur in slow path stubs.
diff --git a/runtime/vm/flow_graph_compiler_ia32.cc b/runtime/vm/flow_graph_compiler_ia32.cc
index 2ede9e0..7407ac9 100644
--- a/runtime/vm/flow_graph_compiler_ia32.cc
+++ b/runtime/vm/flow_graph_compiler_ia32.cc
@@ -1290,7 +1290,8 @@
     intptr_t deopt_id,
     TokenPosition token_pos,
     LocationSummary* locs,
-    intptr_t try_index) {
+    intptr_t try_index,
+    intptr_t slow_path_argument_count) {
   const String& name = String::Handle(zone(), ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
@@ -1310,7 +1311,7 @@
 
   AddCurrentDescriptor(RawPcDescriptors::kOther,
       Thread::kNoDeoptId, token_pos);
-  RecordSafepoint(locs);
+  RecordSafepoint(locs, slow_path_argument_count);
   const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
   // Precompilation not implemented on ia32 platform.
   ASSERT(!FLAG_precompiled_mode);
diff --git a/runtime/vm/flow_graph_compiler_mips.cc b/runtime/vm/flow_graph_compiler_mips.cc
index 8f51f86..18b629b 100644
--- a/runtime/vm/flow_graph_compiler_mips.cc
+++ b/runtime/vm/flow_graph_compiler_mips.cc
@@ -1317,7 +1317,8 @@
     intptr_t deopt_id,
     TokenPosition token_pos,
     LocationSummary* locs,
-    intptr_t try_index) {
+    intptr_t try_index,
+    intptr_t slow_path_argument_count) {
   const String& name = String::Handle(zone(), ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
@@ -1335,7 +1336,7 @@
   }
   __ jalr(T1);
 
-  RecordSafepoint(locs);
+  RecordSafepoint(locs, slow_path_argument_count);
   const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
   if (FLAG_precompiled_mode) {
     // Megamorphic calls may occur in slow path stubs.
diff --git a/runtime/vm/flow_graph_compiler_x64.cc b/runtime/vm/flow_graph_compiler_x64.cc
index 800e1dc..301de20 100644
--- a/runtime/vm/flow_graph_compiler_x64.cc
+++ b/runtime/vm/flow_graph_compiler_x64.cc
@@ -1320,7 +1320,8 @@
     intptr_t deopt_id,
     TokenPosition token_pos,
     LocationSummary* locs,
-    intptr_t try_index) {
+    intptr_t try_index,
+    intptr_t slow_path_argument_count) {
   const String& name = String::Handle(zone(), ic_data.target_name());
   const Array& arguments_descriptor =
       Array::ZoneHandle(zone(), ic_data.arguments_descriptor());
@@ -1338,7 +1339,7 @@
   }
   __ call(RCX);
 
-  RecordSafepoint(locs);
+  RecordSafepoint(locs, slow_path_argument_count);
   const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
   if (FLAG_precompiled_mode) {
     // Megamorphic calls may occur in slow path stubs.
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc
index 95a1c9f..c15d63c 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -1960,8 +1960,10 @@
   ASSERT(tp.IsReal() || tp.IsSynthetic() || tp.IsNoSource());
   inline_id_to_function_->Add(&function);
   inline_id_to_token_pos_->Add(tp);
-  ASSERT(inline_id_to_token_pos_->length() == inline_id_to_function_->length());
   caller_inline_id_->Add(parent_id);
+  // We always have one less token position than functions.
+  ASSERT(inline_id_to_token_pos_->length() ==
+         (inline_id_to_function_->length() - 1));
   return id;
 }
 
diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
index 8950958..c5b593e 100644
--- a/runtime/vm/heap.cc
+++ b/runtime/vm/heap.cc
@@ -491,6 +491,11 @@
 }
 
 
+void Heap::InitGrowthControl() {
+  old_space_.InitGrowthControl();
+}
+
+
 void Heap::SetGrowthControlState(bool state) {
   old_space_.SetGrowthControlState(state);
 }
diff --git a/runtime/vm/heap.h b/runtime/vm/heap.h
index f116af55..97e04a1 100644
--- a/runtime/vm/heap.h
+++ b/runtime/vm/heap.h
@@ -126,6 +126,7 @@
 
   // Enables growth control on the page space heaps.  This should be
   // called before any user code is executed.
+  void InitGrowthControl();
   void EnableGrowthControl() { SetGrowthControlState(true); }
   void DisableGrowthControl() { SetGrowthControlState(false); }
   void SetGrowthControlState(bool state);
diff --git a/runtime/vm/il_printer.cc b/runtime/vm/il_printer.cc
index b3e48f1..2287d0d 100644
--- a/runtime/vm/il_printer.cc
+++ b/runtime/vm/il_printer.cc
@@ -665,6 +665,15 @@
 }
 
 
+void CheckedSmiOpInstr::PrintOperandsTo(BufferFormatter* f) const {
+  f->Print("%s", Token::Str(op_kind()));
+  f->Print(", ");
+  left()->PrintTo(f);
+  f->Print(", ");
+  right()->PrintTo(f);
+}
+
+
 void BinaryIntegerOpInstr::PrintOperandsTo(BufferFormatter* f) const {
   f->Print("%s", Token::Str(op_kind()));
   if (is_truncating()) {
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index f424c99..731feca 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -479,6 +479,7 @@
   M(AllocateUninitializedContext)                                              \
   M(CloneContext)                                                              \
   M(BinarySmiOp)                                                               \
+  M(CheckedSmiOp)                                                              \
   M(BinaryInt32Op)                                                             \
   M(UnarySmiOp)                                                                \
   M(UnaryDoubleOp)                                                             \
@@ -2067,7 +2068,6 @@
 
   virtual EffectSet Effects() const { return EffectSet::None(); }
 
-
   virtual TokenPosition token_pos() const {
     return TokenPosition::kPushArgument;
   }
@@ -6868,6 +6868,39 @@
 };
 
 
+class CheckedSmiOpInstr : public TemplateDefinition<2, Throws> {
+ public:
+  CheckedSmiOpInstr(Token::Kind op_kind,
+                    Value* left,
+                    Value* right,
+                    InstanceCallInstr* call)
+      : TemplateDefinition(call->deopt_id()),
+        call_(call),
+        op_kind_(op_kind) {
+    SetInputAt(0, left);
+    SetInputAt(1, right);
+  }
+
+  InstanceCallInstr* call() const { return call_; }
+  Token::Kind op_kind() const { return op_kind_; }
+  Value* left() const { return inputs_[0]; }
+  Value* right() const { return inputs_[1]; }
+
+  virtual bool CanDeoptimize() const { return true; }
+
+  virtual EffectSet Effects() const { return EffectSet::All(); }
+
+  PRINT_OPERANDS_TO_SUPPORT
+
+  DECLARE_INSTRUCTION(CheckedSmiOp)
+
+ private:
+  InstanceCallInstr* call_;
+  const Token::Kind op_kind_;
+  DISALLOW_COPY_AND_ASSIGN(CheckedSmiOpInstr);
+};
+
+
 class BinaryIntegerOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
  public:
   BinaryIntegerOpInstr(Token::Kind op_kind,
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
index df31e31..269b1893 100644
--- a/runtime/vm/intermediate_language_arm.cc
+++ b/runtime/vm/intermediate_language_arm.cc
@@ -3050,6 +3050,109 @@
 }
 
 
+class CheckedSmiSlowPath : public SlowPathCode {
+ public:
+  CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index)
+      : instruction_(instruction), try_index_(try_index) { }
+
+  virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
+    if (Assembler::EmittingComments()) {
+      __ Comment("slow path smi operation");
+    }
+    __ Bind(entry_label());
+    LocationSummary* locs = instruction_->locs();
+    Register result = locs->out(0).reg();
+    locs->live_registers()->Remove(Location::RegisterLocation(result));
+
+    compiler->SaveLiveRegisters(locs);
+    __ Push(locs->in(0).reg());
+    __ Push(locs->in(1).reg());
+    compiler->EmitMegamorphicInstanceCall(
+        *instruction_->call()->ic_data(),
+        instruction_->call()->ArgumentCount(),
+        instruction_->call()->deopt_id(),
+        instruction_->call()->token_pos(),
+        locs,
+        try_index_,
+        /* slow_path_argument_count = */ 2);
+    __ mov(result, Operand(R0));
+    compiler->RestoreLiveRegisters(locs);
+    __ b(exit_label());
+  }
+
+ private:
+  CheckedSmiOpInstr* instruction_;
+  intptr_t try_index_;
+};
+
+
+LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
+                                                        bool opt) const {
+  const intptr_t kNumInputs = 2;
+  const intptr_t kNumTemps = 0;
+  LocationSummary* summary = new(zone) LocationSummary(
+      zone, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath);
+  summary->set_in(0, Location::RequiresRegister());
+  summary->set_in(1, Location::RequiresRegister());
+  summary->set_out(0, Location::RequiresRegister());
+  return summary;
+}
+
+
+void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+  CheckedSmiSlowPath* slow_path =
+      new CheckedSmiSlowPath(this, compiler->CurrentTryIndex());
+  compiler->AddSlowPathCode(slow_path);
+  // Test operands if necessary.
+  Register left = locs()->in(0).reg();
+  Register right = locs()->in(1).reg();
+  Register result = locs()->out(0).reg();
+  __ orr(result, left, Operand(right));
+  __ tst(result, Operand(kSmiTagMask));
+  __ b(slow_path->entry_label(), NE);
+  switch (op_kind()) {
+    case Token::kADD:
+      __ adds(result, left, Operand(right));
+      __ b(slow_path->entry_label(), VS);
+      break;
+    case Token::kSUB:
+      __ subs(result, left, Operand(right));
+      __ b(slow_path->entry_label(), VS);
+      break;
+    case Token::kBIT_OR:
+      // Operation part of combined smi check.
+      break;
+    case Token::kBIT_AND:
+      __ and_(result, left, Operand(right));
+      break;
+    case Token::kBIT_XOR:
+      __ eor(result, left, Operand(right));
+      break;
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE: {
+      Label true_label, false_label, done;
+      BranchLabels labels = { &true_label, &false_label, &false_label };
+      Condition true_condition =
+          EmitSmiComparisonOp(compiler, locs(), op_kind());
+      EmitBranchOnCondition(compiler, true_condition, labels);
+      __ Bind(&false_label);
+      __ LoadObject(result, Bool::False());
+      __ b(&done);
+      __ Bind(&true_label);
+      __ LoadObject(result, Bool::True());
+      __ Bind(&done);
+      break;
+    }
+    default:
+      UNIMPLEMENTED();
+  }
+  __ Bind(slow_path->exit_label());
+}
+
+
 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
                                                        bool opt) const {
   const intptr_t kNumInputs = 2;
@@ -6608,7 +6711,7 @@
 
 void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
   if (!compiler->is_optimizing()) {
-    if (FLAG_emit_edge_counters) {
+    if (FLAG_reorder_basic_blocks) {
       compiler->EmitEdgeCounter(block()->preorder_number());
     }
     // Add a deoptimization descriptor for deoptimizing instructions that
diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc
index 79296b3..f43e2bb 100644
--- a/runtime/vm/intermediate_language_arm64.cc
+++ b/runtime/vm/intermediate_language_arm64.cc
@@ -2766,6 +2766,109 @@
 }
 
 
+class CheckedSmiSlowPath : public SlowPathCode {
+ public:
+  CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index)
+      : instruction_(instruction), try_index_(try_index) { }
+
+  virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
+    if (Assembler::EmittingComments()) {
+      __ Comment("slow path smi operation");
+    }
+    __ Bind(entry_label());
+    LocationSummary* locs = instruction_->locs();
+    Register result = locs->out(0).reg();
+    locs->live_registers()->Remove(Location::RegisterLocation(result));
+
+    compiler->SaveLiveRegisters(locs);
+    __ Push(locs->in(0).reg());
+    __ Push(locs->in(1).reg());
+    compiler->EmitMegamorphicInstanceCall(
+        *instruction_->call()->ic_data(),
+        instruction_->call()->ArgumentCount(),
+        instruction_->call()->deopt_id(),
+        instruction_->call()->token_pos(),
+        locs,
+        try_index_,
+        /* slow_path_argument_count = */ 2);
+    __ mov(result, R0);
+    compiler->RestoreLiveRegisters(locs);
+    __ b(exit_label());
+  }
+
+ private:
+  CheckedSmiOpInstr* instruction_;
+  intptr_t try_index_;
+};
+
+
+LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
+                                                        bool opt) const {
+  const intptr_t kNumInputs = 2;
+  const intptr_t kNumTemps = 0;
+  LocationSummary* summary = new(zone) LocationSummary(
+      zone, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath);
+  summary->set_in(0, Location::RequiresRegister());
+  summary->set_in(1, Location::RequiresRegister());
+  summary->set_out(0, Location::RequiresRegister());
+  return summary;
+}
+
+
+void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+  CheckedSmiSlowPath* slow_path =
+      new CheckedSmiSlowPath(this, compiler->CurrentTryIndex());
+  compiler->AddSlowPathCode(slow_path);
+  // Test operands if necessary.
+  Register left = locs()->in(0).reg();
+  Register right = locs()->in(1).reg();
+  Register result = locs()->out(0).reg();
+  __ orr(result, left, Operand(right));
+  __ tsti(result, Immediate(kSmiTagMask));
+  __ b(slow_path->entry_label(), NE);
+  switch (op_kind()) {
+    case Token::kADD:
+      __ adds(result, left, Operand(right));
+      __ b(slow_path->entry_label(), VS);
+      break;
+    case Token::kSUB:
+      __ subs(result, left, Operand(right));
+      __ b(slow_path->entry_label(), VS);
+      break;
+    case Token::kBIT_OR:
+      // Operation part of combined smi check.
+      break;
+    case Token::kBIT_AND:
+      __ and_(result, left, Operand(right));
+      break;
+    case Token::kBIT_XOR:
+      __ eor(result, left, Operand(right));
+      break;
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE: {
+      Label true_label, false_label, done;
+      BranchLabels labels = { &true_label, &false_label, &false_label };
+      Condition true_condition =
+          EmitSmiComparisonOp(compiler, locs(), op_kind());
+      EmitBranchOnCondition(compiler, true_condition, labels);
+      __ Bind(&false_label);
+      __ LoadObject(result, Bool::False());
+      __ b(&done);
+      __ Bind(&true_label);
+      __ LoadObject(result, Bool::True());
+      __ Bind(&done);
+      break;
+    }
+    default:
+      UNIMPLEMENTED();
+  }
+  __ Bind(slow_path->exit_label());
+}
+
+
 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
                                                        bool opt) const {
   const intptr_t kNumInputs = 2;
@@ -5367,7 +5470,7 @@
 
 void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
   if (!compiler->is_optimizing()) {
-    if (FLAG_emit_edge_counters) {
+    if (FLAG_reorder_basic_blocks) {
       compiler->EmitEdgeCounter(block()->preorder_number());
     }
     // Add a deoptimization descriptor for deoptimizing instructions that
diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc
index bebb561..e4fcd9d 100644
--- a/runtime/vm/intermediate_language_ia32.cc
+++ b/runtime/vm/intermediate_language_ia32.cc
@@ -2764,6 +2764,19 @@
 }
 
 
+LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
+                                                        bool opt) const {
+  // Only for precompiled code, not on ia32 currently.
+  UNIMPLEMENTED();
+  return NULL;
+}
+
+
+void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+  // Only for precompiled code, not on ia32 currently.
+  UNIMPLEMENTED();
+}
+
 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
                                                        bool opt) const {
   const intptr_t kNumInputs = 2;
@@ -6507,7 +6520,7 @@
 
 void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
   if (!compiler->is_optimizing()) {
-    if (FLAG_emit_edge_counters) {
+    if (FLAG_reorder_basic_blocks) {
       compiler->EmitEdgeCounter(block()->preorder_number());
     }
     // Add a deoptimization descriptor for deoptimizing instructions that
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc
index f4b8032..7799bd9 100644
--- a/runtime/vm/intermediate_language_mips.cc
+++ b/runtime/vm/intermediate_language_mips.cc
@@ -2885,6 +2885,109 @@
 }
 
 
+class CheckedSmiSlowPath : public SlowPathCode {
+ public:
+  CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index)
+      : instruction_(instruction), try_index_(try_index) { }
+
+  virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
+    if (Assembler::EmittingComments()) {
+      __ Comment("slow path smi operation");
+    }
+    __ Bind(entry_label());
+    LocationSummary* locs = instruction_->locs();
+    Register result = locs->out(0).reg();
+    locs->live_registers()->Remove(Location::RegisterLocation(result));
+
+    compiler->SaveLiveRegisters(locs);
+    __ Push(locs->in(0).reg());
+    __ Push(locs->in(1).reg());
+    compiler->EmitMegamorphicInstanceCall(
+        *instruction_->call()->ic_data(),
+        instruction_->call()->ArgumentCount(),
+        instruction_->call()->deopt_id(),
+        instruction_->call()->token_pos(),
+        locs,
+        try_index_,
+        /* slow_path_argument_count = */ 2);
+    __ mov(result, V0);
+    compiler->RestoreLiveRegisters(locs);
+    __ b(exit_label());
+  }
+
+ private:
+  CheckedSmiOpInstr* instruction_;
+  intptr_t try_index_;
+};
+
+
+LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
+                                                        bool opt) const {
+  const intptr_t kNumInputs = 2;
+  const intptr_t kNumTemps = 0;
+  LocationSummary* summary = new(zone) LocationSummary(
+      zone, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath);
+  summary->set_in(0, Location::RequiresRegister());
+  summary->set_in(1, Location::RequiresRegister());
+  summary->set_out(0, Location::RequiresRegister());
+  return summary;
+}
+
+
+void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+  CheckedSmiSlowPath* slow_path =
+      new CheckedSmiSlowPath(this, compiler->CurrentTryIndex());
+  compiler->AddSlowPathCode(slow_path);
+  // Test operands if necessary.
+  Register left = locs()->in(0).reg();
+  Register right = locs()->in(1).reg();
+  Register result = locs()->out(0).reg();
+  __ or_(result, left, right);
+  __ andi(CMPRES1, result, Immediate(kSmiTagMask));
+  __ bne(CMPRES1, ZR, slow_path->entry_label());
+  switch (op_kind()) {
+    case Token::kADD:
+      __ AdduDetectOverflow(result, left, right, CMPRES1);
+      __ bltz(CMPRES1, slow_path->entry_label());
+      break;
+    case Token::kSUB:
+      __ SubuDetectOverflow(result, left, right, CMPRES1);
+      __ bltz(CMPRES1, slow_path->entry_label());
+      break;
+    case Token::kBIT_OR:
+      // Operation part of combined smi check.
+      break;
+    case Token::kBIT_AND:
+      __ and_(result, left, right);
+      break;
+    case Token::kBIT_XOR:
+      __ xor_(result, left, right);
+      break;
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE: {
+      Label true_label, false_label, done;
+      BranchLabels labels = { &true_label, &false_label, &false_label };
+      Condition true_condition =
+          EmitSmiComparisonOp(compiler, *locs(), op_kind());
+      EmitBranchOnCondition(compiler, true_condition, labels);
+      __ Bind(&false_label);
+      __ LoadObject(result, Bool::False());
+      __ b(&done);
+      __ Bind(&true_label);
+      __ LoadObject(result, Bool::True());
+      __ Bind(&done);
+      break;
+    }
+    default:
+      UNIMPLEMENTED();
+  }
+  __ Bind(slow_path->exit_label());
+}
+
+
 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
                                                        bool opt) const {
   const intptr_t kNumInputs = 2;
@@ -4206,7 +4309,7 @@
   ASSERT(result == V0);
   ASSERT(result != value_obj);
   __ LoadDFromOffset(DTMP, value_obj, Double::value_offset() - kHeapObjectTag);
-  __ cvtwd(STMP1, DTMP);
+  __ truncwd(STMP1, DTMP);
   __ mfc1(result, STMP1);
 
   // Overflow is signaled with minint.
@@ -4229,7 +4332,7 @@
                                instance_call()->token_pos(),
                                target,
                                kNumberOfArguments,
-                               Object::null_array(),  // No argument names.,
+                               Object::null_array(),  // No argument names.
                                locs(),
                                ICData::Handle());
   __ Bind(&done);
@@ -4252,7 +4355,7 @@
   Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptDoubleToSmi);
   Register result = locs()->out(0).reg();
   DRegister value = locs()->in(0).fpu_reg();
-  __ cvtwd(STMP1, value);
+  __ truncwd(STMP1, value);
   __ mfc1(result, STMP1);
 
   // Check for overflow and that it fits into Smi.
@@ -5383,7 +5486,7 @@
 void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
   __ Comment("GotoInstr");
   if (!compiler->is_optimizing()) {
-    if (FLAG_emit_edge_counters) {
+    if (FLAG_reorder_basic_blocks) {
       compiler->EmitEdgeCounter(block()->preorder_number());
     }
     // Add a deoptimization descriptor for deoptimizing instructions that
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
index ec108a8..9623ec2 100644
--- a/runtime/vm/intermediate_language_x64.cc
+++ b/runtime/vm/intermediate_language_x64.cc
@@ -479,8 +479,7 @@
 
 static Condition EmitInt64ComparisonOp(FlowGraphCompiler* compiler,
                                        const LocationSummary& locs,
-                                       Token::Kind kind,
-                                       BranchLabels labels) {
+                                       Token::Kind kind) {
   Location left = locs.in(0);
   Location right = locs.in(1);
   ASSERT(!left.IsConstant() || !right.IsConstant());
@@ -536,7 +535,7 @@
 Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
                                                    BranchLabels labels) {
   if ((operation_cid() == kSmiCid) || (operation_cid() == kMintCid)) {
-    return EmitInt64ComparisonOp(compiler, *locs(), kind(), labels);
+    return EmitInt64ComparisonOp(compiler, *locs(), kind());
   } else {
     ASSERT(operation_cid() == kDoubleCid);
     return EmitDoubleComparisonOp(compiler, *locs(), kind(), labels);
@@ -727,7 +726,7 @@
 Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
                                                 BranchLabels labels) {
   if ((operation_cid() == kSmiCid) || (operation_cid() == kMintCid)) {
-    return EmitInt64ComparisonOp(compiler, *locs(), kind(), labels);
+    return EmitInt64ComparisonOp(compiler, *locs(), kind());
   } else {
     ASSERT(operation_cid() == kDoubleCid);
     return EmitDoubleComparisonOp(compiler, *locs(), kind(), labels);
@@ -2793,6 +2792,132 @@
 }
 
 
+class CheckedSmiSlowPath : public SlowPathCode {
+ public:
+  CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index)
+      : instruction_(instruction), try_index_(try_index) { }
+
+  virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
+    if (Assembler::EmittingComments()) {
+      __ Comment("slow path smi operation");
+    }
+    __ Bind(entry_label());
+    LocationSummary* locs = instruction_->locs();
+    Register result = locs->out(0).reg();
+    locs->live_registers()->Remove(Location::RegisterLocation(result));
+
+    compiler->SaveLiveRegisters(locs);
+    __ pushq(locs->in(0).reg());
+    __ pushq(locs->in(1).reg());
+    compiler->EmitMegamorphicInstanceCall(
+        *instruction_->call()->ic_data(),
+        instruction_->call()->ArgumentCount(),
+        instruction_->call()->deopt_id(),
+        instruction_->call()->token_pos(),
+        locs,
+        try_index_,
+        /* slow_path_argument_count = */ 2);
+    __ MoveRegister(result, RAX);
+    compiler->RestoreLiveRegisters(locs);
+    __ jmp(exit_label());
+  }
+
+ private:
+  CheckedSmiOpInstr* instruction_;
+  intptr_t try_index_;
+};
+
+
+LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
+                                                        bool opt) const {
+  const intptr_t kNumInputs = 2;
+  const intptr_t kNumTemps = 0;
+  LocationSummary* summary = new(zone) LocationSummary(
+      zone, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath);
+  summary->set_in(0, Location::RequiresRegister());
+  summary->set_in(1, Location::RequiresRegister());
+  switch (op_kind()) {
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE:
+    case Token::kADD:
+    case Token::kSUB:
+      summary->set_out(0, Location::RequiresRegister());
+      break;
+    case Token::kBIT_OR:
+    case Token::kBIT_AND:
+    case Token::kBIT_XOR:
+      summary->set_out(0, Location::SameAsFirstInput());
+      break;
+    default:
+      UNIMPLEMENTED();
+  }
+  return summary;
+}
+
+
+void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+  CheckedSmiSlowPath* slow_path =
+      new CheckedSmiSlowPath(this, compiler->CurrentTryIndex());
+  compiler->AddSlowPathCode(slow_path);
+  // Test operands if necessary.
+  Register left = locs()->in(0).reg();
+  Register right = locs()->in(1).reg();
+  Register result = locs()->out(0).reg();
+  __ movq(TMP, left);
+  __ orq(TMP, right);
+  __ testq(TMP, Immediate(kSmiTagMask));
+  __ j(NOT_ZERO, slow_path->entry_label());
+  switch (op_kind()) {
+    case Token::kADD:
+      __ movq(result, left);
+      __ addq(result, right);
+      __ j(OVERFLOW, slow_path->entry_label());
+      break;
+    case Token::kSUB:
+      __ movq(result, left);
+      __ subq(result, right);
+      __ j(OVERFLOW, slow_path->entry_label());
+      break;
+    case Token::kBIT_OR:
+      ASSERT(left == result);
+      __ orq(result, right);
+      break;
+    case Token::kBIT_AND:
+      ASSERT(left == result);
+      __ andq(result, right);
+      break;
+    case Token::kBIT_XOR:
+      ASSERT(left == result);
+      __ xorq(result, right);
+      break;
+    case Token::kEQ:
+    case Token::kLT:
+    case Token::kLTE:
+    case Token::kGT:
+    case Token::kGTE: {
+      Label true_label, false_label, done;
+      BranchLabels labels = { &true_label, &false_label, &false_label };
+      Condition true_condition =
+          EmitInt64ComparisonOp(compiler, *locs(), op_kind());
+      EmitBranchOnCondition(compiler, true_condition, labels);
+      __ Bind(&false_label);
+      __ LoadObject(result, Bool::False());
+      __ jmp(&done);
+      __ Bind(&true_label);
+      __ LoadObject(result, Bool::True());
+      __ Bind(&done);
+      break;
+    }
+    default:
+      UNIMPLEMENTED();
+  }
+  __ Bind(slow_path->exit_label());
+}
+
+
 static bool CanBeImmediate(const Object& constant) {
   return constant.IsSmi() &&
     Immediate(reinterpret_cast<int64_t>(constant.raw())).is_int32();
@@ -6130,7 +6255,7 @@
 
 void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
   if (!compiler->is_optimizing()) {
-    if (FLAG_emit_edge_counters) {
+    if (FLAG_reorder_basic_blocks) {
       compiler->EmitEdgeCounter(block()->preorder_number());
     }
     // Add a deoptimization descriptor for deoptimizing instructions that
diff --git a/runtime/vm/intrinsifier_mips.cc b/runtime/vm/intrinsifier_mips.cc
index 57cb4d6..ddd9c52 100644
--- a/runtime/vm/intrinsifier_mips.cc
+++ b/runtime/vm/intrinsifier_mips.cc
@@ -1538,7 +1538,7 @@
   __ lw(T0, Address(SP, 0 * kWordSize));
   __ LoadDFromOffset(D0, T0, Double::value_offset() - kHeapObjectTag);
 
-  __ cvtwd(F2, D0);
+  __ truncwd(F2, D0);
   __ mfc1(V0, F2);
 
   // Overflow is signaled with minint.
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 3fc7780..4b11247 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -791,6 +791,7 @@
       mutex_(new Mutex()),
       symbols_mutex_(new Mutex()),
       type_canonicalization_mutex_(new Mutex()),
+      constant_canonicalization_mutex_(new Mutex()),
       saved_stack_limit_(0),
       deferred_interrupts_mask_(0),
       deferred_interrupts_(0),
@@ -856,6 +857,8 @@
   symbols_mutex_ = NULL;
   delete type_canonicalization_mutex_;
   type_canonicalization_mutex_ = NULL;
+  delete constant_canonicalization_mutex_;
+  constant_canonicalization_mutex_ = NULL;
   delete message_handler_;
   message_handler_ = NULL;  // Fail fast if we send messages to a dead isolate.
   ASSERT(deopt_context_ == NULL);  // No deopt in progress when isolate deleted.
@@ -1947,7 +1950,13 @@
   jsobj.AddProperty("pauseOnExit", message_handler()->should_pause_on_exit());
 
   if (debugger() != NULL) {
-    if (message_handler()->is_paused_on_start()) {
+    if (!is_runnable()) {
+      // Isolate is not yet runnable.
+      ASSERT(debugger()->PauseEvent() == NULL);
+      ServiceEvent pause_event(this, ServiceEvent::kNone);
+      jsobj.AddProperty("pauseEvent", &pause_event);
+    } else if (message_handler()->is_paused_on_start() ||
+               message_handler()->should_pause_on_start()) {
       ASSERT(debugger()->PauseEvent() == NULL);
       ServiceEvent pause_event(this, ServiceEvent::kPauseStart);
       jsobj.AddProperty("pauseEvent", &pause_event);
@@ -2600,6 +2609,7 @@
   thread->set_os_thread(NULL);
   thread->set_execution_state(Thread::kThreadInVM);
   thread->set_safepoint_state(0);
+  thread->clear_pending_functions();
   ASSERT(thread->no_safepoint_scope_depth() == 0);
   // Return thread structure.
   thread_registry()->ReturnThreadLocked(is_mutator, thread);
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index 9d6aa28..e40b3900 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -312,7 +312,12 @@
   void set_message_handler(MessageHandler* value) { message_handler_ = value; }
 
   bool is_runnable() const { return is_runnable_; }
-  void set_is_runnable(bool value) { is_runnable_ = value; }
+  void set_is_runnable(bool value) {
+    is_runnable_ = value;
+    if (is_runnable_) {
+      set_last_resume_timestamp();
+    }
+  }
 
   IsolateSpawnState* spawn_state() const { return spawn_state_; }
   void set_spawn_state(IsolateSpawnState* value) { spawn_state_ = value; }
@@ -322,6 +327,9 @@
   Mutex* type_canonicalization_mutex() const {
     return type_canonicalization_mutex_;
   }
+  Mutex* constant_canonicalization_mutex() const {
+    return constant_canonicalization_mutex_;
+  }
 
   Debugger* debugger() const {
     if (!FLAG_support_debugger) {
@@ -758,6 +766,7 @@
   Mutex* mutex_;  // Protects stack_limit_, saved_stack_limit_, compiler stats.
   Mutex* symbols_mutex_;  // Protects concurrent access to the symbol table.
   Mutex* type_canonicalization_mutex_;  // Protects type canonicalization.
+  Mutex* constant_canonicalization_mutex_;  // Protects const canonicalization.
   uword saved_stack_limit_;
   uword deferred_interrupts_mask_;
   uword deferred_interrupts_;
diff --git a/runtime/vm/json_stream.cc b/runtime/vm/json_stream.cc
index 94928ab..a68d87d 100644
--- a/runtime/vm/json_stream.cc
+++ b/runtime/vm/json_stream.cc
@@ -475,12 +475,18 @@
 }
 
 
-void JSONStream::PrintValue(TimelineEvent* timeline_event) {
+void JSONStream::PrintValue(const TimelineEvent* timeline_event) {
   PrintCommaIfNeeded();
   timeline_event->PrintJSON(this);
 }
 
 
+void JSONStream::PrintValue(const TimelineEventBlock* timeline_event_block) {
+  PrintCommaIfNeeded();
+  timeline_event_block->PrintJSON(this);
+}
+
+
 void JSONStream::PrintValueVM(bool ref) {
   PrintCommaIfNeeded();
   Service::PrintJSONForVM(this, ref);
@@ -593,12 +599,19 @@
 
 
 void JSONStream::PrintProperty(const char* name,
-                               TimelineEvent* timeline_event) {
+                               const TimelineEvent* timeline_event) {
   PrintPropertyName(name);
   PrintValue(timeline_event);
 }
 
 
+void JSONStream::PrintProperty(const char* name,
+                               const TimelineEventBlock* timeline_event_block) {
+  PrintPropertyName(name);
+  PrintValue(timeline_event_block);
+}
+
+
 void JSONStream::PrintfProperty(const char* name, const char* format, ...) {
   PrintPropertyName(name);
   va_list args;
diff --git a/runtime/vm/json_stream.h b/runtime/vm/json_stream.h
index 8c145681..6c4f23e 100644
--- a/runtime/vm/json_stream.h
+++ b/runtime/vm/json_stream.h
@@ -29,6 +29,7 @@
 class ServiceEvent;
 class String;
 class TimelineEvent;
+class TimelineEventBlock;
 class Zone;
 
 
@@ -162,7 +163,8 @@
   void PrintValue(MessageQueue* queue);
   void PrintValue(Isolate* isolate, bool ref = true);
   bool PrintValueStr(const String& s, intptr_t offset, intptr_t count);
-  void PrintValue(TimelineEvent* timeline_event);
+  void PrintValue(const TimelineEvent* timeline_event);
+  void PrintValue(const TimelineEventBlock* timeline_event_block);
   void PrintValueVM(bool ref = true);
 
   void PrintServiceId(const Object& o);
@@ -189,7 +191,9 @@
   void PrintProperty(const char* name, Metric* metric);
   void PrintProperty(const char* name, MessageQueue* queue);
   void PrintProperty(const char* name, Isolate* isolate);
-  void PrintProperty(const char* name, TimelineEvent* timeline_event);
+  void PrintProperty(const char* name, const TimelineEvent* timeline_event);
+  void PrintProperty(const char* name,
+                     const TimelineEventBlock* timeline_event_block);
   void PrintPropertyVM(const char* name, bool ref = true);
   void PrintPropertyName(const char* name);
   void PrintCommaIfNeeded();
@@ -309,9 +313,14 @@
   void AddProperty(const char* name, Isolate* isolate) const {
     stream_->PrintProperty(name, isolate);
   }
-  void AddProperty(const char* name, TimelineEvent* timeline_event) const {
+  void AddProperty(const char* name,
+                   const TimelineEvent* timeline_event) const {
     stream_->PrintProperty(name, timeline_event);
   }
+  void AddProperty(const char* name,
+                   const TimelineEventBlock* timeline_event_block) const {
+    stream_->PrintProperty(name, timeline_event_block);
+  }
   void AddPropertyVM(const char* name, bool ref = true) const {
     stream_->PrintPropertyVM(name, ref);
   }
@@ -376,9 +385,12 @@
   void AddValue(MessageQueue* queue) const {
     stream_->PrintValue(queue);
   }
-  void AddValue(TimelineEvent* timeline_event) const {
+  void AddValue(const TimelineEvent* timeline_event) const {
     stream_->PrintValue(timeline_event);
   }
+  void AddValue(const TimelineEventBlock* timeline_event_block) const {
+    stream_->PrintValue(timeline_event_block);
+  }
   void AddValueVM(bool ref = true) const {
     stream_->PrintValueVM(ref);
   }
diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc
index c1a9980..eecd798 100644
--- a/runtime/vm/message_handler.cc
+++ b/runtime/vm/message_handler.cc
@@ -325,7 +325,7 @@
     MonitorLocker ml(&monitor_);
     if (ShouldPauseOnStart(kOK)) {
       if (!is_paused_on_start()) {
-        PausedOnStartLocked(true);
+        PausedOnStartLocked(&ml, true);
       }
       // More messages may have come in before we (re)acquired the monitor.
       status = HandleMessages(&ml, false, false);
@@ -335,7 +335,7 @@
         task_ = NULL;  // No task in queue.
         return;
       } else {
-        PausedOnStartLocked(false);
+        PausedOnStartLocked(&ml, false);
       }
     }
 
@@ -368,7 +368,7 @@
             OS::PrintErr("Isolate %s paused before exiting. "
                          "Use the Observatory to release it.\n", name());
           }
-          PausedOnExitLocked(true);
+          PausedOnExitLocked(&ml, true);
           // More messages may have come in while we released the monitor.
           status = HandleMessages(&ml, false, false);
         }
@@ -378,7 +378,7 @@
           task_ = NULL;  // No task in queue.
           return;
         } else {
-          PausedOnExitLocked(false);
+          PausedOnExitLocked(&ml, false);
         }
       }
       if (FLAG_trace_isolates) {
@@ -454,11 +454,11 @@
 
 void MessageHandler::PausedOnStart(bool paused) {
   MonitorLocker ml(&monitor_);
-  PausedOnStartLocked(paused);
+  PausedOnStartLocked(&ml, paused);
 }
 
 
-void MessageHandler::PausedOnStartLocked(bool paused) {
+void MessageHandler::PausedOnStartLocked(MonitorLocker* ml, bool paused) {
   if (paused) {
     ASSERT(!is_paused_on_start_);
     is_paused_on_start_ = true;
@@ -473,9 +473,9 @@
     // NotifyPauseOnStart.  This avoids a dead lock that can occur
     // when this message handler tries to post a message while a
     // message is being posted to it.
-    monitor_.Exit();
+    ml->Exit();
     NotifyPauseOnStart();
-    monitor_.Enter();
+    ml->Enter();
   } else {
     // Resumed. Clear the resume request of the owning isolate.
     Isolate* owning_isolate = isolate();
@@ -488,11 +488,11 @@
 
 void MessageHandler::PausedOnExit(bool paused) {
   MonitorLocker ml(&monitor_);
-  PausedOnExitLocked(paused);
+  PausedOnExitLocked(&ml, paused);
 }
 
 
-void MessageHandler::PausedOnExitLocked(bool paused) {
+void MessageHandler::PausedOnExitLocked(MonitorLocker* ml, bool paused) {
   if (paused) {
     ASSERT(!is_paused_on_exit_);
     is_paused_on_exit_ = true;
@@ -507,9 +507,9 @@
     // NotifyPauseOnExit.  This avoids a dead lock that can
     // occur when this message handler tries to post a message
     // while a message is being posted to it.
-    monitor_.Exit();
+    ml->Exit();
     NotifyPauseOnExit();
-    monitor_.Enter();
+    ml->Enter();
   } else {
     // Resumed. Clear the resume request of the owning isolate.
     Isolate* owning_isolate = isolate();
@@ -520,38 +520,16 @@
 }
 
 
-MessageHandler::AcquiredQueues::AcquiredQueues()
-    : handler_(NULL) {
+MessageHandler::AcquiredQueues::AcquiredQueues(MessageHandler* handler)
+    : handler_(handler), ml_(&handler->monitor_) {
+  ASSERT(handler != NULL);
+  handler_->oob_message_handling_allowed_ = false;
 }
 
 
 MessageHandler::AcquiredQueues::~AcquiredQueues() {
-  Reset(NULL);
-}
-
-
-void MessageHandler::AcquiredQueues::Reset(MessageHandler* handler) {
-  if (handler_ != NULL) {
-    // Release ownership. The OOB flag is set without holding the monitor.
-    handler_->monitor_.Exit();
-    handler_->oob_message_handling_allowed_ = true;
-  }
-  handler_ = handler;
-  if (handler_ == NULL) {
-    return;
-  }
   ASSERT(handler_ != NULL);
-  // Take ownership. The OOB flag is set without holding the monitor.
-  handler_->oob_message_handling_allowed_ = false;
-  handler_->monitor_.Enter();
-}
-
-
-void MessageHandler::AcquireQueues(AcquiredQueues* acquired_queues) {
-  ASSERT(acquired_queues != NULL);
-  // No double dipping.
-  ASSERT(acquired_queues->handler_ == NULL);
-  acquired_queues->Reset(this);
+  handler_->oob_message_handling_allowed_ = true;
 }
 
 }  // namespace dart
diff --git a/runtime/vm/message_handler.h b/runtime/vm/message_handler.h
index 6f01328..1d039c5 100644
--- a/runtime/vm/message_handler.h
+++ b/runtime/vm/message_handler.h
@@ -6,15 +6,13 @@
 #define VM_MESSAGE_HANDLER_H_
 
 #include "vm/isolate.h"
+#include "vm/lockers.h"
 #include "vm/message.h"
 #include "vm/os_thread.h"
 #include "vm/thread_pool.h"
 
 namespace dart {
 
-// Forward declarations.
-class MonitorLocker;
-
 // A MessageHandler is an entity capable of accepting messages.
 class MessageHandler {
  protected:
@@ -122,9 +120,12 @@
   void PausedOnStart(bool paused);
   void PausedOnExit(bool paused);
 
+  // Gives temporary ownership of |queue| and |oob_queue|. Using this object
+  // has the side effect that no OOB messages will be handled if a stack
+  // overflow interrupt is delivered.
   class AcquiredQueues : public ValueObject {
    public:
-    AcquiredQueues();
+    explicit AcquiredQueues(MessageHandler* handler);
 
     ~AcquiredQueues();
 
@@ -143,18 +144,12 @@
     }
 
    private:
-    void Reset(MessageHandler* handler);
-
     MessageHandler* handler_;
+    SafepointMonitorLocker ml_;
 
     friend class MessageHandler;
   };
 
-  // Gives temporary ownership of |queue| and |oob_queue|. Calling this
-  // has the side effect that no OOB messages will be handled if a stack
-  // overflow interrupt is delivered.
-  void AcquireQueues(AcquiredQueues* acquired_queue);
-
 #if defined(DEBUG)
   // Check that it is safe to access this message handler.
   //
@@ -218,8 +213,8 @@
 
   // NOTE: These two functions release and reacquire the monitor, you may
   // need to call HandleMessages to ensure all pending messages are handled.
-  void PausedOnStartLocked(bool paused);
-  void PausedOnExitLocked(bool paused);
+  void PausedOnStartLocked(MonitorLocker* ml, bool paused);
+  void PausedOnExitLocked(MonitorLocker* ml, bool paused);
 
   // Dequeue the next message.  Prefer messages from the oob_queue_ to
   // messages from the queue_.
diff --git a/runtime/vm/message_handler_test.cc b/runtime/vm/message_handler_test.cc
index 314eb7c..e6a39a6 100644
--- a/runtime/vm/message_handler_test.cc
+++ b/runtime/vm/message_handler_test.cc
@@ -165,8 +165,7 @@
   EXPECT(!handler.HasOOBMessages());
   {
     // Acquire ownership of message handler queues, verify one regular message.
-    MessageHandler::AcquiredQueues aq;
-    handler.AcquireQueues(&aq);
+    MessageHandler::AcquiredQueues aq(&handler);
     EXPECT(aq.queue()->Length() == 1);
   }
 
@@ -177,8 +176,7 @@
   {
     // Acquire ownership of message handler queues, verify one regular and one
     // OOB message.
-    MessageHandler::AcquiredQueues aq;
-    handler.AcquireQueues(&aq);
+    MessageHandler::AcquiredQueues aq(&handler);
     EXPECT(aq.queue()->Length() == 1);
     EXPECT(aq.oob_queue()->Length() == 1);
   }
@@ -308,8 +306,7 @@
   EXPECT_EQ(port3, ports[1]);  // oob_message2, shutdown
   {
     // The oob queue has been cleared.  oob_message3 is gone.
-    MessageHandler::AcquiredQueues aq;
-    handler.AcquireQueues(&aq);
+    MessageHandler::AcquiredQueues aq(&handler);
     EXPECT(aq.oob_queue()->Length() == 0);
   }
   handler_peer.CloseAllPorts();
diff --git a/runtime/vm/native_arguments.h b/runtime/vm/native_arguments.h
index af27a37..88bc411 100644
--- a/runtime/vm/native_arguments.h
+++ b/runtime/vm/native_arguments.h
@@ -15,7 +15,6 @@
 namespace dart {
 
 DECLARE_FLAG(bool, trace_natives);
-DECLARE_FLAG(bool, verify_on_transition);
 
 // Forward declarations.
 class BootstrapNatives;
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 300070b..faeb61f 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3345,7 +3345,7 @@
 
 TokenPosition Class::ComputeEndTokenPos() const {
   // Return the begin token for synthetic classes.
-  if (IsMixinApplication() || IsTopLevel()) {
+  if (is_synthesized_class() || IsMixinApplication() || IsTopLevel()) {
     return token_pos();
   }
   const Script& scr = Script::Handle(script());
@@ -4217,6 +4217,104 @@
 }
 
 
+// Returns an instance of Double or Double::null().
+// 'index' points to either:
+// - constants_list_ position of found element, or
+// - constants_list_ position where new canonical can be inserted.
+RawDouble* Class::LookupCanonicalDouble(
+    Zone* zone, double value, intptr_t* index) const {
+  ASSERT(this->raw() == Isolate::Current()->object_store()->double_class());
+  const Array& constants = Array::Handle(zone, this->constants());
+  const intptr_t constants_len = constants.Length();
+  // Linear search to see whether this value is already present in the
+  // list of canonicalized constants.
+  Double& canonical_value = Double::Handle(zone);
+  while (*index < constants_len) {
+    canonical_value ^= constants.At(*index);
+    if (canonical_value.IsNull()) {
+      break;
+    }
+    if (canonical_value.BitwiseEqualsToDouble(value)) {
+      ASSERT(canonical_value.IsCanonical());
+      return canonical_value.raw();
+    }
+    *index = *index + 1;
+  }
+  return Double::null();
+}
+
+
+RawMint* Class::LookupCanonicalMint(
+    Zone* zone, int64_t value, intptr_t* index) const {
+  ASSERT(this->raw() == Isolate::Current()->object_store()->mint_class());
+  const Array& constants = Array::Handle(zone, this->constants());
+  const intptr_t constants_len = constants.Length();
+  // Linear search to see whether this value is already present in the
+  // list of canonicalized constants.
+  Mint& canonical_value = Mint::Handle(zone);
+  while (*index < constants_len) {
+    canonical_value ^= constants.At(*index);
+    if (canonical_value.IsNull()) {
+      break;
+    }
+    if (canonical_value.value() == value) {
+      ASSERT(canonical_value.IsCanonical());
+      return canonical_value.raw();
+    }
+    *index = *index + 1;
+  }
+  return Mint::null();
+}
+
+
+RawBigint* Class::LookupCanonicalBigint(Zone* zone,
+                                        const Bigint& value,
+                                        intptr_t* index) const {
+  ASSERT(this->raw() == Isolate::Current()->object_store()->bigint_class());
+  const Array& constants = Array::Handle(zone, this->constants());
+  const intptr_t constants_len = constants.Length();
+  // Linear search to see whether this value is already present in the
+  // list of canonicalized constants.
+  Bigint& canonical_value = Bigint::Handle(zone);
+  while (*index < constants_len) {
+    canonical_value ^= constants.At(*index);
+    if (canonical_value.IsNull()) {
+      break;
+    }
+    if (canonical_value.Equals(value)) {
+      ASSERT(canonical_value.IsCanonical());
+      return canonical_value.raw();
+    }
+    *index = *index + 1;
+  }
+  return Bigint::null();
+}
+
+
+RawInstance* Class::LookupCanonicalInstance(Zone* zone,
+                                            const Instance& value,
+                                            intptr_t* index) const {
+  ASSERT(this->raw() == value.clazz());
+  const Array& constants = Array::Handle(zone, this->constants());
+  const intptr_t constants_len = constants.Length();
+  // Linear search to see whether this value is already present in the
+  // list of canonicalized constants.
+  Instance& canonical_value = Instance::Handle(zone);
+  while (*index < constants_len) {
+    canonical_value ^= constants.At(*index);
+    if (canonical_value.IsNull()) {
+      break;
+    }
+    if (value.CanonicalizeEquals(canonical_value)) {
+      ASSERT(canonical_value.IsCanonical());
+      return canonical_value.raw();
+    }
+    *index = *index + 1;
+  }
+  return Instance::null();
+}
+
+
 void Class::InsertCanonicalConstant(intptr_t index,
                                     const Instance& constant) const {
   // The constant needs to be added to the list. Grow the list if it is full.
@@ -9403,8 +9501,7 @@
 }
 
 
-// Lookup a name in the library's re-export namespace. The name is
-// unmangled, i.e. no getter or setter names should be looked up.
+// Lookup a name in the library's re-export namespace.
 RawObject* Library::LookupReExport(const String& name) const {
   if (HasExports()) {
     const Array& exports = Array::Handle(this->exports());
@@ -9416,7 +9513,13 @@
       ns ^= exports.At(i);
       obj = ns.Lookup(name);
       if (!obj.IsNull()) {
-        break;
+        // The Lookup call above may return a setter x= when we are looking
+        // for the name x. Make sure we only return when a matching name
+        // is found.
+        String& obj_name = String::Handle(obj.DictionaryName());
+        if (Field::IsSetterName(obj_name) == Field::IsSetterName(name)) {
+          break;
+        }
       }
     }
     StorePointer(&raw_ptr()->exports_, exports.raw());
@@ -9731,6 +9834,14 @@
           // The newly found object is exported from a Dart system
           // library. It is hidden by the previously found object.
           // We continue to search.
+        } else if (Field::IsSetterName(found_obj_name) &&
+                   !Field::IsSetterName(name)) {
+          // We are looking for an unmangled name or a getter, but
+          // the first object we found is a setter. Replace the first
+          // object with the one we just found.
+          first_import_lib_url = import_lib.url();
+          found_obj = obj.raw();
+          found_obj_name = found_obj.DictionaryName();
         } else {
           // We found two different objects with the same name.
           // Note that we need to compare the names again because
@@ -10341,6 +10452,7 @@
   String& import_lib_url = String::Handle();
   String& first_import_lib_url = String::Handle();
   Object& found_obj = Object::Handle();
+  String& found_obj_name = String::Handle();
   for (intptr_t i = 0; i < num_imports(); i++) {
     import ^= imports.At(i);
     obj = import.Lookup(name);
@@ -10356,13 +10468,36 @@
           // from the Dart library.
           first_import_lib_url = import_lib.url();
           found_obj = obj.raw();
+          found_obj_name = found_obj.DictionaryName();
         } else if (import_lib_url.StartsWith(Symbols::DartScheme())) {
           // The newly found object is exported from a Dart system
           // library. It is hidden by the previously found object.
           // We continue to search.
+        } else if (Field::IsSetterName(found_obj_name) &&
+                   !Field::IsSetterName(name)) {
+          // We are looking for an unmangled name or a getter, but
+          // the first object we found is a setter. Replace the first
+          // object with the one we just found.
+          first_import_lib_url = import_lib.url();
+          found_obj = obj.raw();
+          found_obj_name = found_obj.DictionaryName();
         } else {
           // We found two different objects with the same name.
-          return Object::null();
+          // Note that we need to compare the names again because
+          // looking up an unmangled name can return a getter or a
+          // setter. A getter name is the same as the unmangled name,
+          // but a setter name is different from an unmangled name or a
+          // getter name.
+          if (Field::IsGetterName(found_obj_name)) {
+            found_obj_name = Field::NameFromGetter(found_obj_name);
+          }
+          String& second_obj_name = String::Handle(obj.DictionaryName());
+          if (Field::IsGetterName(second_obj_name)) {
+            second_obj_name = Field::NameFromGetter(second_obj_name);
+          }
+          if (found_obj_name.Equals(second_obj_name)) {
+            return Object::null();
+          }
         }
       }
     }
@@ -11366,7 +11501,7 @@
 
 RawStackmap* Stackmap::New(intptr_t pc_offset,
                            BitmapBuilder* bmap,
-                           intptr_t register_bit_count) {
+                           intptr_t slow_path_bit_count) {
   ASSERT(Object::stackmap_class() != Class::null());
   ASSERT(bmap != NULL);
   Stackmap& result = Stackmap::Handle();
@@ -11398,13 +11533,13 @@
   for (intptr_t i = 0; i < length; ++i) {
     result.SetBit(i, bmap->Get(i));
   }
-  result.SetRegisterBitCount(register_bit_count);
+  result.SetSlowPathBitCount(slow_path_bit_count);
   return result.raw();
 }
 
 
 RawStackmap* Stackmap::New(intptr_t length,
-                           intptr_t register_bit_count,
+                           intptr_t slow_path_bit_count,
                            intptr_t pc_offset) {
   ASSERT(Object::stackmap_class() != Class::null());
   Stackmap& result = Stackmap::Handle();
@@ -11432,7 +11567,7 @@
   // address.
   ASSERT(pc_offset >= 0);
   result.SetPcOffset(pc_offset);
-  result.SetRegisterBitCount(register_bit_count);
+  result.SetSlowPathBitCount(slow_path_bit_count);
   return result.raw();
 }
 
@@ -11666,6 +11801,7 @@
 void ExceptionHandlers::SetHandledTypes(intptr_t try_index,
                                         const Array& handled_types) const {
   ASSERT((try_index >= 0) && (try_index < num_entries()));
+  ASSERT(!handled_types.IsNull());
   const Array& handled_types_data =
       Array::Handle(raw_ptr()->handled_types_data_);
   handled_types_data.SetAt(try_index, handled_types);
@@ -12795,6 +12931,15 @@
 }
 
 
+TokenPosition Code::GetTokenPositionAt(intptr_t offset) const {
+  const CodeSourceMap& map = CodeSourceMap::Handle(code_source_map());
+  if (map.IsNull()) {
+    return TokenPosition::kNoSource;
+  }
+  return map.TokenPositionForPCOffset(offset);
+}
+
+
 RawTypedData* Code::GetDeoptInfoAtPc(uword pc,
                                      ICData::DeoptReasonId* deopt_reason,
                                      uint32_t* deopt_flags) const {
@@ -13399,8 +13544,13 @@
 
 
 void Code::GetInlinedFunctionsAt(
-    intptr_t offset, GrowableArray<Function*>* fs) const {
+    intptr_t offset,
+    GrowableArray<Function*>* fs,
+    GrowableArray<TokenPosition>* token_positions) const {
   fs->Clear();
+  if (token_positions != NULL) {
+    token_positions->Clear();
+  }
   const Array& intervals = Array::Handle(GetInlinedIntervals());
   if (intervals.IsNull() || (intervals.Length() == 0)) {
     // E.g., for code stubs.
@@ -13425,6 +13575,7 @@
 
   // Find all functions.
   const Array& id_map = Array::Handle(GetInlinedIdToFunction());
+  const Array& token_pos_map = Array::Handle(GetInlinedIdToTokenPos());
   Smi& temp_smi = Smi::Handle();
   temp_smi ^= intervals.At(found_interval_ix + Code::kInlIntInliningId);
   intptr_t inlining_id = temp_smi.Value();
@@ -13432,8 +13583,12 @@
   intptr_t caller_id = GetCallerId(inlining_id);
   while (inlining_id >= 0) {
     Function& function = Function::ZoneHandle();
-    function  ^= id_map.At(inlining_id);
+    function ^= id_map.At(inlining_id);
     fs->Add(&function);
+    if ((token_positions != NULL) && (inlining_id < token_pos_map.Length())) {
+      temp_smi ^= token_pos_map.At(inlining_id);
+      token_positions->Add(TokenPosition(temp_smi.Value()));
+    }
     inlining_id = caller_id;
     caller_id = GetCallerId(inlining_id);
   }
@@ -13557,7 +13712,12 @@
   for (intptr_t i = 0; i < num_variables(); i++) {
     IndentN(indent + 2);
     obj = At(i);
-    THR_Print("[%" Pd "] = %s\n", i, obj.ToCString());
+    const char* s = obj.ToCString();
+    if (strlen(s) > 50) {
+      THR_Print("[%" Pd "] = [first 50 chars:] %.50s...\n", i, s);
+    } else {
+      THR_Print("[%" Pd "] = %s\n", i, s);
+    }
   }
 
   const Context& parent_ctx = Context::Handle(parent());
@@ -14355,49 +14515,51 @@
   Isolate* isolate = thread->isolate();
   Instance& result = Instance::Handle(zone);
   const Class& cls = Class::Handle(zone, this->clazz());
-  Array& constants = Array::Handle(zone, cls.constants());
-  const intptr_t constants_len = constants.Length();
-  // Linear search to see whether this value is already present in the
-  // list of canonicalized constants.
   intptr_t index = 0;
-  while (index < constants_len) {
-    result ^= constants.At(index);
-    if (result.IsNull()) {
-      break;
-    }
-    if (this->CanonicalizeEquals(result)) {
-      ASSERT(result.IsCanonical());
-      return result.raw();
-    }
-    index++;
+  result ^= cls.LookupCanonicalInstance(zone, *this, &index);
+  if (!result.IsNull()) {
+    return result.raw();
   }
-  // The value needs to be added to the list. Grow the list if
-  // it is full.
-  result ^= this->raw();
-  if (result.IsNew() ||
-      (result.InVMHeap() && (isolate != Dart::vm_isolate()))) {
-    /**
-     * When a snapshot is generated on a 64 bit architecture and then read
-     * into a 32 bit architecture, values which are Smi on the 64 bit
-     * architecture could potentially be converted to Mint objects, however
-     * since Smi values do not have any notion of canonical bits we lose
-     * that information when the object becomes a Mint.
-     * Some of these values could be literal values and end up in the
-     * VM isolate heap. Later when these values are referenced in a
-     * constant list we try to ensure that all the objects in the list
-     * are canonical and try to canonicalize them. When these Mint objects
-     * are encountered they do not have the canonical bit set and
-     * canonicalizing them won't work as the VM heap is read only now.
-     * In these cases we clone the object into the isolate and then
-     * canonicalize it.
-     */
-    // Create a canonical object in old space.
-    result ^= Object::Clone(result, Heap::kOld);
+  {
+    SafepointMutexLocker ml(isolate->constant_canonicalization_mutex());
+    // Retry lookup.
+    {
+      Instance& temp_result = Instance::Handle(zone,
+          cls.LookupCanonicalInstance(zone, *this, &index));
+      if (!temp_result.IsNull()) {
+        return temp_result.raw();
+      }
+    }
+
+    // The value needs to be added to the list. Grow the list if
+    // it is full.
+    result ^= this->raw();
+    if (result.IsNew() ||
+        (result.InVMHeap() && (isolate != Dart::vm_isolate()))) {
+      /**
+       * When a snapshot is generated on a 64 bit architecture and then read
+       * into a 32 bit architecture, values which are Smi on the 64 bit
+       * architecture could potentially be converted to Mint objects, however
+       * since Smi values do not have any notion of canonical bits we lose
+       * that information when the object becomes a Mint.
+       * Some of these values could be literal values and end up in the
+       * VM isolate heap. Later when these values are referenced in a
+       * constant list we try to ensure that all the objects in the list
+       * are canonical and try to canonicalize them. When these Mint objects
+       * are encountered they do not have the canonical bit set and
+       * canonicalizing them won't work as the VM heap is read only now.
+       * In these cases we clone the object into the isolate and then
+       * canonicalize it.
+       */
+      // Create a canonical object in old space.
+      result ^= Object::Clone(result, Heap::kOld);
+    }
+    ASSERT(result.IsOld());
+
+    result.SetCanonical();
+    cls.InsertCanonicalConstant(index, result);
+    return result.raw();
   }
-  ASSERT(result.IsOld());
-  cls.InsertCanonicalConstant(index, result);
-  result.SetCanonical();
-  return result.raw();
 }
 
 
@@ -17602,31 +17764,33 @@
 RawMint* Mint::NewCanonical(int64_t value) {
   // Do not allocate a Mint if Smi would do.
   ASSERT(!Smi::IsValid(value));
-  const Class& cls =
-      Class::Handle(Isolate::Current()->object_store()->mint_class());
-  const Array& constants = Array::Handle(cls.constants());
-  const intptr_t constants_len = constants.Length();
-  // Linear search to see whether this value is already present in the
-  // list of canonicalized constants.
-  Mint& canonical_value = Mint::Handle();
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Isolate* isolate = thread->isolate();
+  const Class& cls = Class::Handle(zone, isolate->object_store()->mint_class());
+  Mint& canonical_value = Mint::Handle(zone);
   intptr_t index = 0;
-  while (index < constants_len) {
-    canonical_value ^= constants.At(index);
-    if (canonical_value.IsNull()) {
-      break;
-    }
-    if (canonical_value.value() == value) {
-      ASSERT(canonical_value.IsCanonical());
-      return canonical_value.raw();
-    }
-    index++;
+  canonical_value ^= cls.LookupCanonicalMint(zone, value, &index);
+  if (!canonical_value.IsNull()) {
+    return canonical_value.raw();
   }
-  // The value needs to be added to the constants list. Grow the list if
-  // it is full.
-  canonical_value = Mint::New(value, Heap::kOld);
-  cls.InsertCanonicalConstant(index, canonical_value);
-  canonical_value.SetCanonical();
-  return canonical_value.raw();
+  {
+    SafepointMutexLocker ml(isolate->constant_canonicalization_mutex());
+    // Retry lookup.
+    {
+      const Mint& result =
+          Mint::Handle(zone, cls.LookupCanonicalMint(zone, value, &index));
+      if (!result.IsNull()) {
+        return result.raw();
+      }
+    }
+    canonical_value = Mint::New(value, Heap::kOld);
+    canonical_value.SetCanonical();
+    // The value needs to be added to the constants list. Grow the list if
+    // it is full.
+    cls.InsertCanonicalConstant(index, canonical_value);
+    return canonical_value.raw();
+  }
 }
 
 
@@ -17750,30 +17914,36 @@
 
 
 RawDouble* Double::NewCanonical(double value) {
-  const Class& cls =
-      Class::Handle(Isolate::Current()->object_store()->double_class());
-  const Array& constants = Array::Handle(cls.constants());
-  const intptr_t constants_len = constants.Length();
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Isolate* isolate = thread->isolate();
+  const Class& cls = Class::Handle(isolate->object_store()->double_class());
   // Linear search to see whether this value is already present in the
   // list of canonicalized constants.
-  Double& canonical_value = Double::Handle();
+  Double& canonical_value = Double::Handle(zone);
   intptr_t index = 0;
-  while (index < constants_len) {
-    canonical_value ^= constants.At(index);
-    if (canonical_value.IsNull()) {
-      break;
-    }
-    if (canonical_value.BitwiseEqualsToDouble(value)) {
-      return canonical_value.raw();
-    }
-    index++;
+
+  canonical_value ^= cls.LookupCanonicalDouble(zone, value, &index);
+  if (!canonical_value.IsNull()) {
+    return canonical_value.raw();
   }
-  // The value needs to be added to the constants list. Grow the list if
-  // it is full.
-  canonical_value = Double::New(value, Heap::kOld);
-  cls.InsertCanonicalConstant(index, canonical_value);
-  canonical_value.SetCanonical();
-  return canonical_value.raw();
+  {
+    SafepointMutexLocker ml(isolate->constant_canonicalization_mutex());
+    // Retry lookup.
+    {
+      const Double& result =
+          Double::Handle(zone, cls.LookupCanonicalDouble(zone, value, &index));
+      if (!result.IsNull()) {
+        return result.raw();
+      }
+    }
+    canonical_value = Double::New(value, Heap::kOld);
+    canonical_value.SetCanonical();
+    // The value needs to be added to the constants list. Grow the list if
+    // it is full.
+    cls.InsertCanonicalConstant(index, canonical_value);
+    return canonical_value.raw();
+  }
 }
 
 
@@ -18054,31 +18224,35 @@
 
 
 RawBigint* Bigint::NewCanonical(const String& str) {
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Isolate* isolate = thread->isolate();
   const Bigint& value = Bigint::Handle(
-      Bigint::NewFromCString(str.ToCString(), Heap::kOld));
+      zone, Bigint::NewFromCString(str.ToCString(), Heap::kOld));
   const Class& cls =
-      Class::Handle(Isolate::Current()->object_store()->bigint_class());
-  const Array& constants = Array::Handle(cls.constants());
-  const intptr_t constants_len = constants.Length();
-  // Linear search to see whether this value is already present in the
-  // list of canonicalized constants.
-  Bigint& canonical_value = Bigint::Handle();
+      Class::Handle(zone, isolate->object_store()->bigint_class());
   intptr_t index = 0;
-  while (index < constants_len) {
-    canonical_value ^= constants.At(index);
-    if (canonical_value.IsNull()) {
-      break;
-    }
-    if (canonical_value.Equals(value)) {
-      return canonical_value.raw();
-    }
-    index++;
+  const Bigint& canonical_value =
+      Bigint::Handle(zone, cls.LookupCanonicalBigint(zone, value, &index));
+  if (!canonical_value.IsNull()) {
+    return canonical_value.raw();
   }
-  // The value needs to be added to the constants list. Grow the list if
-  // it is full.
-  cls.InsertCanonicalConstant(index, value);
-  value.SetCanonical();
-  return value.raw();
+  {
+    SafepointMutexLocker ml(isolate->constant_canonicalization_mutex());
+    // Retry lookup.
+    {
+      const Bigint& result =
+          Bigint::Handle(zone, cls.LookupCanonicalBigint(zone, value, &index));
+      if (!result.IsNull()) {
+        return result.raw();
+      }
+    }
+    value.SetCanonical();
+    // The value needs to be added to the constants list. Grow the list if
+    // it is full.
+    cls.InsertCanonicalConstant(index, value);
+    return value.raw();
+  }
 }
 
 
@@ -21354,7 +21528,9 @@
       code = CodeAtFrame(i);
       ASSERT(function.raw() == code.function());
       uword pc = code.EntryPoint() + Smi::Value(PcOffsetAtFrame(i));
-      if (code.is_optimized() && expand_inlined() && !FLAG_precompiled_mode) {
+      if (code.is_optimized() &&
+          expand_inlined() &&
+          !FLAG_precompiled_runtime) {
         // Traverse inlined frames.
         for (InlinedFunctionsIterator it(code, pc);
              !it.Done() && (*frame_index < max_frames); it.Advance()) {
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 8fafabc..78794a9 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -262,15 +262,12 @@
         &raw()->ptr()->tags_, old_tags, new_tags);
   }
   bool IsCanonical() const {
-    ASSERT(!IsNull());
     return raw()->IsCanonical();
   }
   void SetCanonical() const {
-    ASSERT(!IsNull());
     raw()->SetCanonical();
   }
   void ClearCanonical() const {
-    ASSERT(!IsNull());
     raw()->ClearCanonical();
   }
   intptr_t GetClassId() const {
@@ -1201,6 +1198,21 @@
 
   RawLibraryPrefix* LookupLibraryPrefix(const String& name) const;
 
+  // Returns an instance of Double or Double::null().
+  // 'index' points to either:
+  // - constants_list_ position of found element, or
+  // - constants_list_ position where new canonical can be inserted.
+  RawDouble* LookupCanonicalDouble(Zone* zone,
+                                   double value, intptr_t* index) const;
+  RawMint* LookupCanonicalMint(Zone* zone,
+                               int64_t value, intptr_t* index) const;
+  RawBigint* LookupCanonicalBigint(Zone* zone,
+                                   const Bigint& value, intptr_t* index) const;
+  // The methods above are more efficient than this generic one.
+  RawInstance* LookupCanonicalInstance(Zone* zone,
+                                       const Instance& value,
+                                       intptr_t* index) const;
+
   void InsertCanonicalConstant(intptr_t index, const Instance& constant) const;
 
   intptr_t FindCanonicalTypeIndex(const AbstractType& needle) const;
@@ -4149,10 +4161,10 @@
     StoreNonPointer(&raw_ptr()->pc_offset_, value);
   }
 
-  intptr_t RegisterBitCount() const { return raw_ptr()->register_bit_count_; }
-  void SetRegisterBitCount(intptr_t register_bit_count) const {
-    ASSERT(register_bit_count < kMaxInt32);
-    StoreNonPointer(&raw_ptr()->register_bit_count_, register_bit_count);
+  intptr_t SlowPathBitCount() const { return raw_ptr()->slow_path_bit_count_; }
+  void SetSlowPathBitCount(intptr_t bit_count) const {
+    ASSERT(bit_count < kMaxInt32);
+    StoreNonPointer(&raw_ptr()->slow_path_bit_count_, bit_count);
   }
 
   bool Equals(const Stackmap& other) const {
@@ -4370,6 +4382,8 @@
     StorePointer(&raw_ptr()->code_source_map_, code_source_map.raw());
   }
 
+  TokenPosition GetTokenPositionAt(intptr_t offset) const;
+
   // Array of DeoptInfo objects.
   RawArray* deopt_info_array() const {
     return raw_ptr()->deopt_info_array_;
@@ -4468,8 +4482,12 @@
   RawArray* GetInlinedCallerIdMap() const;
   void SetInlinedCallerIdMap(const Array& value) const;
 
+  // If |token_positions| is not NULL it will be populated with the token
+  // positions of the inlined calls.
   void GetInlinedFunctionsAt(
-      intptr_t offset, GrowableArray<Function*>* fs) const;
+      intptr_t offset,
+      GrowableArray<Function*>* fs,
+      GrowableArray<TokenPosition>* token_positions = NULL) const;
 
   void DumpInlinedIntervals() const;
 
diff --git a/runtime/vm/os_thread.h b/runtime/vm/os_thread.h
index 2ca6a7c..976a137 100644
--- a/runtime/vm/os_thread.h
+++ b/runtime/vm/os_thread.h
@@ -266,10 +266,6 @@
   Mutex();
   ~Mutex();
 
-  void Lock();
-  bool TryLock();  // Returns false if lock is busy and locking failed.
-  void Unlock();
-
 #if defined(DEBUG)
   bool IsOwnedByCurrentThread() const {
     return owner_ == OSThread::GetCurrentThreadId();
@@ -282,11 +278,22 @@
 #endif
 
  private:
+  void Lock();
+  bool TryLock();  // Returns false if lock is busy and locking failed.
+  void Unlock();
+
   MutexData data_;
 #if defined(DEBUG)
   ThreadId owner_;
 #endif  // defined(DEBUG)
 
+  friend class MutexLocker;
+  friend class SafepointMutexLocker;
+  friend class OSThreadIterator;
+  friend class TimelineEventBlockIterator;
+  friend class TimelineEventRecorder;
+  friend class PageSpace;
+  friend void Dart_TestMutex();
   DISALLOW_COPY_AND_ASSIGN(Mutex);
 };
 
@@ -303,18 +310,6 @@
   Monitor();
   ~Monitor();
 
-  bool TryEnter();  // Returns false if lock is busy and locking failed.
-  void Enter();
-  void Exit();
-
-  // Wait for notification or timeout.
-  WaitResult Wait(int64_t millis);
-  WaitResult WaitMicros(int64_t micros);
-
-  // Notify waiting threads.
-  void Notify();
-  void NotifyAll();
-
 #if defined(DEBUG)
   bool IsOwnedByCurrentThread() const {
     return owner_ == OSThread::GetCurrentThreadId();
@@ -327,11 +322,26 @@
 #endif
 
  private:
+  bool TryEnter();  // Returns false if lock is busy and locking failed.
+  void Enter();
+  void Exit();
+
+  // Wait for notification or timeout.
+  WaitResult Wait(int64_t millis);
+  WaitResult WaitMicros(int64_t micros);
+
+  // Notify waiting threads.
+  void Notify();
+  void NotifyAll();
+
   MonitorData data_;  // OS-specific data.
 #if defined(DEBUG)
   ThreadId owner_;
 #endif  // defined(DEBUG)
 
+  friend class MonitorLocker;
+  friend class SafepointMonitorLocker;
+  friend void Dart_TestMonitor();
   DISALLOW_COPY_AND_ASSIGN(Monitor);
 };
 
diff --git a/runtime/vm/os_thread_win.cc b/runtime/vm/os_thread_win.cc
index 3802a16..9d282bc 100644
--- a/runtime/vm/os_thread_win.cc
+++ b/runtime/vm/os_thread_win.cc
@@ -6,6 +6,7 @@
 #if defined(TARGET_OS_WINDOWS)
 
 #include "vm/growable_array.h"
+#include "vm/lockers.h"
 #include "vm/os_thread.h"
 
 #include <process.h>  // NOLINT
@@ -565,7 +566,7 @@
     // We only care about thread locals with destructors.
     return;
   }
-  mutex_->Lock();
+  MutexLocker ml(mutex_, false);
 #if defined(DEBUG)
   // Verify that we aren't added twice.
   for (intptr_t i = 0; i < thread_locals_->length(); i++) {
@@ -575,12 +576,12 @@
 #endif
   // Add to list.
   thread_locals_->Add(ThreadLocalEntry(key, destructor));
-  mutex_->Unlock();
 }
 
 
 void ThreadLocalData::RemoveThreadLocal(ThreadLocalKey key) {
-  ASSERT(thread_locals_ != NULL);  mutex_->Lock();
+  ASSERT(thread_locals_ != NULL);
+  MutexLocker ml(mutex_, false);
   intptr_t i = 0;
   for (; i < thread_locals_->length(); i++) {
     const ThreadLocalEntry& entry = thread_locals_->At(i);
@@ -590,11 +591,9 @@
   }
   if (i == thread_locals_->length()) {
     // Not found.
-    mutex_->Unlock();
     return;
   }
   thread_locals_->RemoveAt(i);
-  mutex_->Unlock();
 }
 
 
@@ -603,7 +602,7 @@
 void ThreadLocalData::RunDestructors() {
   ASSERT(thread_locals_ != NULL);
   ASSERT(mutex_ != NULL);
-  mutex_->Lock();
+  MutexLocker ml(mutex_, false);
   for (intptr_t i = 0; i < thread_locals_->length(); i++) {
     const ThreadLocalEntry& entry = thread_locals_->At(i);
     // We access the exiting thread's TLS variable here.
@@ -611,7 +610,6 @@
     // We invoke the constructor here.
     entry.destructor()(p);
   }
-  mutex_->Unlock();
 }
 
 
diff --git a/runtime/vm/pages.h b/runtime/vm/pages.h
index 12b193f..bd4ab5c 100644
--- a/runtime/vm/pages.h
+++ b/runtime/vm/pages.h
@@ -141,8 +141,11 @@
     last_code_collection_in_us_ = t;
   }
 
-  void Enable(SpaceUsage current) {
+  void set_last_usage(SpaceUsage current) {
     last_usage_ = current;
+  }
+
+  void Enable() {
     is_enabled_ = true;
   }
   void Disable() {
@@ -265,9 +268,14 @@
 
   void StartEndAddress(uword* start, uword* end) const;
 
+  void InitGrowthControl() {
+    page_space_controller_.set_last_usage(usage_);
+    page_space_controller_.Enable();
+  }
+
   void SetGrowthControlState(bool state) {
     if (state) {
-      page_space_controller_.Enable(usage_);
+      page_space_controller_.Enable();
     } else {
       page_space_controller_.Disable();
     }
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 78ca6a5..9cb7dd4 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -11632,7 +11632,14 @@
       // In the pathological case where a library imports itself with
       // a prefix, the name mangling does not help in hiding the private
       // name, so we explicitly prevent lookup of private names here.
-      obj = prefix.LookupObject(extractor_name);
+      if (is_setter_name) {
+        String& setter_name =
+            String::Handle(Z, Field::SetterName(extractor_name));
+        obj = prefix.LookupObject(setter_name);
+      }
+      if (obj.IsNull()) {
+        obj = prefix.LookupObject(extractor_name);
+      }
     }
     if (!prefix.is_loaded() && (parsed_function() != NULL)) {
       // Remember that this function depends on an import prefix of an
diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
index 2f876e0..b8bfc18 100644
--- a/runtime/vm/precompiler.cc
+++ b/runtime/vm/precompiler.cc
@@ -148,6 +148,7 @@
     classes_to_retain_(),
     typeargs_to_retain_(),
     types_to_retain_(),
+    consts_to_retain_(),
     error_(Error::Handle()) {
 }
 
@@ -409,6 +410,9 @@
     }
 
     CheckForNewDynamicFunctions();
+    if (!changed_) {
+      TraceConstFunctions();
+    }
   }
 }
 
@@ -581,11 +585,9 @@
       Array& types = Array::Handle(Z);
       for (intptr_t i = 0; i < handlers.num_entries(); i++) {
         types = handlers.GetHandledTypes(i);
-        if (!types.IsNull()) {
-          for (intptr_t j = 0; j < types.Length(); j++) {
-            type ^= types.At(j);
-            AddType(type);
-          }
+        for (intptr_t j = 0; j < types.Length(); j++) {
+          type ^= types.At(j);
+          AddType(type);
         }
       }
     }
@@ -678,6 +680,8 @@
   // argument descriptors.
   if (!instance.IsCanonical()) return;
 
+  consts_to_retain_.Insert(&Instance::ZoneHandle(Z, instance.raw()));
+
   if (cls.NumTypeArguments() > 0) {
     AddTypeArguments(TypeArguments::Handle(Z, instance.GetTypeArguments()));
   }
@@ -1162,6 +1166,36 @@
 }
 
 
+void Precompiler::TraceConstFunctions() {
+  // Compilation of const accessors happens outside of the treeshakers
+  // queue, so we haven't previously scanned its literal pool.
+
+  Library& lib = Library::Handle(Z);
+  Class& cls = Class::Handle(Z);
+  Array& functions = Array::Handle(Z);
+  Function& function = Function::Handle(Z);
+
+  for (intptr_t i = 0; i < libraries_.Length(); i++) {
+    lib ^= libraries_.At(i);
+    ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate);
+    while (it.HasNext()) {
+      cls = it.GetNextClass();
+      if (cls.IsDynamicClass()) {
+        continue;  // class 'dynamic' is in the read-only VM isolate.
+      }
+
+      functions = cls.functions();
+      for (intptr_t j = 0; j < functions.Length(); j++) {
+        function ^= functions.At(j);
+        if (function.is_const() && function.HasCode()) {
+          AddCalleesOf(function);
+        }
+      }
+    }
+  }
+}
+
+
 void Precompiler::DropFunctions() {
   Library& lib = Library::Handle(Z);
   Class& cls = Class::Handle(Z);
@@ -1210,7 +1244,7 @@
           }
           dropped_function_count_++;
           if (FLAG_trace_precompiler) {
-            THR_Print("Precompilation dropping %s\n",
+            THR_Print("Dropping function %s\n",
                       function.ToLibNamePrefixedQualifiedCString());
           }
         }
@@ -1236,7 +1270,7 @@
     } else {
       dropped_function_count_++;
       if (FLAG_trace_precompiler) {
-        THR_Print("Precompilation dropping %s\n",
+        THR_Print("Dropping function %s\n",
                   function.ToLibNamePrefixedQualifiedCString());
       }
     }
@@ -1281,7 +1315,7 @@
           }
           dropped_field_count_++;
           if (FLAG_trace_precompiler) {
-            THR_Print("Precompilation dropping %s\n",
+            THR_Print("Dropping field %s\n",
                       field.ToCString());
           }
         }
@@ -1392,6 +1426,9 @@
   Library& lib = Library::Handle(Z);
   Class& cls = Class::Handle(Z);
   Array& members = Array::Handle(Z);
+  Array& constants = Array::Handle(Z);
+  GrowableObjectArray& retained_constants = GrowableObjectArray::Handle(Z);
+  Instance& constant = Instance::Handle(Z);
 
   for (intptr_t i = 0; i < libraries_.Length(); i++) {
     lib ^= libraries_.At(i);
@@ -1422,9 +1459,25 @@
         // them.
         retain = true;
       }
-      members = cls.constants();
-      if (members.Length() > 0) {
-        // --compile_all?
+
+      constants = cls.constants();
+      retained_constants = GrowableObjectArray::New();
+      for (intptr_t j = 0; j < constants.Length(); j++) {
+        constant ^= constants.At(j);
+        bool retain = consts_to_retain_.Lookup(&constant) != NULL;
+        if (retain) {
+          retained_constants.Add(constant);
+        }
+      }
+      if (retained_constants.Length() > 0) {
+        constants = Array::MakeArray(retained_constants);
+        cls.set_constants(constants);
+      } else {
+        cls.set_constants(Object::empty_array());
+      }
+
+      if (constants.Length() > 0) {
+        ASSERT(retain);  // This shouldn't be the reason we keep a class.
         retain = true;
       }
 
@@ -1494,7 +1547,7 @@
 
     dropped_class_count_++;
     if (FLAG_trace_precompiler) {
-      THR_Print("Precompilation dropping %" Pd " %s\n", cid, cls.ToCString());
+      THR_Print("Dropping class %" Pd " %s\n", cid, cls.ToCString());
     }
 
 #if defined(DEBUG)
@@ -1531,7 +1584,7 @@
       dropped_library_count_++;
       lib.set_index(-1);
       if (FLAG_trace_precompiler) {
-        THR_Print("Precompilation dropping %s\n", lib.ToCString());
+        THR_Print("Dropping library %s\n", lib.ToCString());
       }
     }
   }
@@ -2015,7 +2068,12 @@
                                   "OptimizationPasses");
 #endif  // !PRODUCT
         inline_id_to_function.Add(&function);
-        inline_id_to_token_pos.Add(function.token_pos());
+        // We do not add the token position now because we don't know the
+        // position of the inlined call until later. A side effect of this
+        // is that the length of |inline_id_to_function| is always larger
+        // than the length of |inline_id_to_token_pos| by one.
+        // Top scope function has no caller (-1). We do this because we expect
+        // all token positions to be at an inlined call.
         // Top scope function has no caller (-1).
         caller_inline_id.Add(-1);
         CSTAT_TIMER_SCOPE(thread(), graphoptimizer_timer);
diff --git a/runtime/vm/precompiler.h b/runtime/vm/precompiler.h
index 43b7b96..31465f2 100644
--- a/runtime/vm/precompiler.h
+++ b/runtime/vm/precompiler.h
@@ -236,6 +236,29 @@
 typedef DirectChainedHashMap<TypeArgumentsKeyValueTrait> TypeArgumentsSet;
 
 
+class InstanceKeyValueTrait {
+ public:
+  // Typedefs needed for the DirectChainedHashMap template.
+  typedef const Instance* Key;
+  typedef const Instance* Value;
+  typedef const Instance* Pair;
+
+  static Key KeyOf(Pair kv) { return kv; }
+
+  static Value ValueOf(Pair kv) { return kv; }
+
+  static inline intptr_t Hashcode(Key key) {
+    return key->GetClassId();
+  }
+
+  static inline bool IsKeyEqual(Pair pair, Key key) {
+    return pair->raw() == key->raw();
+  }
+};
+
+typedef DirectChainedHashMap<InstanceKeyValueTrait> InstanceSet;
+
+
 class Precompiler : public ValueObject {
  public:
   static RawError* CompileAll(
@@ -284,6 +307,7 @@
 
   void ProcessFunction(const Function& function);
   void CheckForNewDynamicFunctions();
+  void TraceConstFunctions();
 
   void DropFunctions();
   void DropFields();
@@ -340,6 +364,7 @@
   ClassSet classes_to_retain_;
   TypeArgumentsSet typeargs_to_retain_;
   AbstractTypeSet types_to_retain_;
+  InstanceSet consts_to_retain_;
   Error& error_;
 };
 
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc
index 3de17c8..8eaf6c1 100644
--- a/runtime/vm/profiler_service.cc
+++ b/runtime/vm/profiler_service.cc
@@ -5,6 +5,7 @@
 #include "vm/profiler_service.h"
 
 #include "vm/growable_array.h"
+#include "vm/log.h"
 #include "vm/native_symbol.h"
 #include "vm/object.h"
 #include "vm/os.h"
@@ -89,6 +90,23 @@
 };
 
 
+ProfileFunctionSourcePosition::ProfileFunctionSourcePosition(
+    TokenPosition token_pos)
+    : token_pos_(token_pos),
+      exclusive_ticks_(0),
+      inclusive_ticks_(0) {
+}
+
+
+void ProfileFunctionSourcePosition::Tick(bool exclusive) {
+  if (exclusive) {
+    exclusive_ticks_++;
+  } else {
+    inclusive_ticks_++;
+  }
+}
+
+
 ProfileFunction::ProfileFunction(Kind kind,
                   const char* name,
                   const Function& function,
@@ -98,6 +116,7 @@
       function_(Function::ZoneHandle(function.raw())),
       table_index_(table_index),
       profile_codes_(0),
+      source_position_ticks_(0),
       exclusive_ticks_(0),
       inclusive_ticks_(0),
       inclusive_serial_(-1) {
@@ -117,9 +136,13 @@
   return func_name.ToCString();
 }
 
-void ProfileFunction::Tick(bool exclusive, intptr_t inclusive_serial) {
+
+void ProfileFunction::Tick(bool exclusive,
+                           intptr_t inclusive_serial,
+                           TokenPosition token_position) {
   if (exclusive) {
     exclusive_ticks_++;
+    TickSourcePosition(token_position, exclusive);
   }
   // Fall through and tick inclusive count too.
   if (inclusive_serial_ == inclusive_serial) {
@@ -128,6 +151,24 @@
   }
   inclusive_serial_ = inclusive_serial;
   inclusive_ticks_++;
+  TickSourcePosition(token_position, false);
+}
+
+
+void ProfileFunction::TickSourcePosition(TokenPosition token_position,
+                                         bool exclusive) {
+  for (intptr_t i = 0; i < source_position_ticks_.length(); i++) {
+    ProfileFunctionSourcePosition& position = source_position_ticks_[i];
+    if (position.token_pos() == token_position) {
+      // Found existing position, tick it.
+      position.Tick(exclusive);
+      return;
+    }
+  }
+  // Add new one.
+  ProfileFunctionSourcePosition pfsp(token_position);
+  pfsp.Tick(exclusive);
+  source_position_ticks_.Add(pfsp);
 }
 
 
@@ -189,6 +230,18 @@
 }
 
 
+bool ProfileFunction::GetSinglePosition(ProfileFunctionSourcePosition* pfsp) {
+  if (pfsp == NULL) {
+    return false;
+  }
+  if (source_position_ticks_.length() != 1) {
+    return false;
+  }
+  *pfsp = source_position_ticks_[0];
+  return true;
+}
+
+
 ProfileCodeAddress::ProfileCodeAddress(uword pc)
     : pc_(pc),
       exclusive_ticks_(0),
@@ -1388,14 +1441,45 @@
     ASSERT(profile_code != NULL);
     const Code& code = Code::ZoneHandle(profile_code->code());
     GrowableArray<Function*> inlined_functions;
+    GrowableArray<TokenPosition> inlined_token_positions;
+    TokenPosition token_position = TokenPosition::kNoSource;
     if (!code.IsNull()) {
       intptr_t offset = pc - code.EntryPoint();
       if (frame_index != 0) {
         // The PC of frames below the top frame is a call's return address,
         // which can belong to a different inlining interval than the call.
         offset--;
+      } else if (sample->IsAllocationSample()) {
+        // Allocation samples skip the top frame, so the top frame's pc is
+        // also a call's return address.
+        offset--;
+      } else if (!sample->first_frame_executing()) {
+        // If the first frame wasn't executing code (i.e. we started to collect
+        // the stack trace at an exit frame), the top frame's pc is also a
+        // call's return address.
+        offset--;
       }
-      code.GetInlinedFunctionsAt(offset, &inlined_functions);
+      code.GetInlinedFunctionsAt(offset,
+                                 &inlined_functions,
+                                 &inlined_token_positions);
+      token_position = code.GetTokenPositionAt(offset);
+      if (inlined_functions.length() > 0) {
+        // The inlined token position table does not include the token position
+        // of the final call. Insert it at the beginning because the table.
+        // is reversed.
+        inlined_token_positions.InsertAt(0, token_position);
+      }
+      ASSERT(inlined_functions.length() <= inlined_token_positions.length());
+      if (FLAG_trace_profiler) {
+        for (intptr_t i = 0; i < inlined_functions.length(); i++) {
+          const String& name =
+              String::Handle(inlined_functions[i]->QualifiedScrubbedName());
+          THR_Print("InlinedFunction[%" Pd "] = {%s, %s}\n",
+                    i,
+                    name.ToCString(),
+                    inlined_token_positions[i].ToCString());
+        }
+      }
     }
     if (code.IsNull() || (inlined_functions.length() == 0)) {
       // No inlined functions.
@@ -1407,6 +1491,7 @@
                                 sample,
                                 frame_index,
                                 function,
+                                token_position,
                                 code_index);
       if (!inclusive_tree_) {
         current = AppendKind(code, current);
@@ -1421,6 +1506,7 @@
         Function* inlined_function = inlined_functions[i];
         ASSERT(inlined_function != NULL);
         ASSERT(!inlined_function->IsNull());
+        TokenPosition inlined_token_position = inlined_token_positions[i];
         const bool inliner = i == (inlined_functions.length() - 1);
         if (inliner) {
           current = AppendKind(code, current);
@@ -1430,6 +1516,7 @@
                                          sample,
                                          frame_index,
                                          inlined_function,
+                                         inlined_token_position,
                                          code_index);
         if (inliner) {
           current = AppendKind(kInlineStart, current);
@@ -1443,6 +1530,7 @@
         Function* inlined_function = inlined_functions[i];
         ASSERT(inlined_function != NULL);
         ASSERT(!inlined_function->IsNull());
+        TokenPosition inlined_token_position = inlined_token_positions[i];
         const bool inliner = i == (inlined_functions.length() - 1);
         if (inliner) {
           current = AppendKind(kInlineStart, current);
@@ -1452,6 +1540,7 @@
                                          sample,
                                          frame_index + i,
                                          inlined_function,
+                                         inlined_token_position,
                                          code_index);
         if (inliner) {
           current = AppendKind(code, current);
@@ -1468,6 +1557,7 @@
       ProcessedSample* sample,
       intptr_t frame_index,
       Function* inlined_function,
+      TokenPosition inlined_token_position,
       intptr_t code_index) {
     ProfileFunctionTable* function_table = profile_->functions_;
     ProfileFunction* function = function_table->LookupOrAdd(*inlined_function);
@@ -1477,6 +1567,7 @@
                            sample,
                            frame_index,
                            function,
+                           inlined_token_position,
                            code_index);
   }
 
@@ -1494,9 +1585,18 @@
                                            ProcessedSample* sample,
                                            intptr_t frame_index,
                                            ProfileFunction* function,
+                                           TokenPosition token_position,
                                            intptr_t code_index) {
+    if (FLAG_trace_profiler) {
+      THR_Print("S[%" Pd "]F[%" Pd "] %s %s\n",
+                sample_index,
+                frame_index,
+                function->Name(), token_position.ToCString());
+    }
     if (tick_functions_) {
-      function->Tick(IsExecutingFrame(sample, frame_index), sample_index);
+      function->Tick(IsExecutingFrame(sample, frame_index),
+                     sample_index,
+                     token_position);
     }
     function->AddProfileCode(code_index);
     current = current->GetChild(function->table_index());
@@ -2244,6 +2344,50 @@
 }
 
 
+const char* ProfileTrieWalker::CurrentToken() {
+  if (current_ == NULL) {
+    return NULL;
+  }
+  if (code_trie_) {
+    return NULL;
+  }
+  ProfileFunction* func = profile_->GetFunction(current_->table_index());
+  const Function& function = Function::Handle(func->function());
+  if (function.IsNull()) {
+    // No function.
+    return NULL;
+  }
+  const Script& script = Script::Handle(function.script());
+  if (script.IsNull()) {
+    // No script.
+    return NULL;
+  }
+  const TokenStream& token_stream = TokenStream::Handle(script.tokens());
+  if (token_stream.IsNull()) {
+    // No token position.
+    return NULL;
+  }
+  ProfileFunctionSourcePosition pfsp(TokenPosition::kNoSource);
+  if (!func->GetSinglePosition(&pfsp)) {
+    // Not exactly one source position.
+    return NULL;
+  }
+  TokenPosition token_pos = pfsp.token_pos();
+  if (!token_pos.IsReal() && !token_pos.IsSynthetic()) {
+    // Not a location in a script.
+    return NULL;
+  }
+  if (token_pos.IsSynthetic()) {
+    token_pos = token_pos.FromSynthetic();
+  }
+  TokenStream::Iterator iterator(token_stream, token_pos);
+  const String& str = String::Handle(iterator.CurrentLiteral());
+  if (str.IsNull()) {
+    return NULL;
+  }
+  return str.ToCString();
+}
+
 bool ProfileTrieWalker::Down() {
   if ((current_ == NULL) || (current_->NumChildren() == 0)) {
     return false;
diff --git a/runtime/vm/profiler_service.h b/runtime/vm/profiler_service.h
index 15f3f7d..218bcb9 100644
--- a/runtime/vm/profiler_service.h
+++ b/runtime/vm/profiler_service.h
@@ -12,6 +12,7 @@
 #include "vm/object.h"
 #include "vm/tags.h"
 #include "vm/thread_interrupter.h"
+#include "vm/token_position.h"
 
 // CPU Profile model and service protocol bits.
 // NOTE: For sampling and stack walking related code, see profiler.h.
@@ -30,6 +31,25 @@
 class SampleFilter;
 class ProcessedSampleBuffer;
 
+class ProfileFunctionSourcePosition {
+ public:
+  explicit ProfileFunctionSourcePosition(TokenPosition token_pos);
+
+  void Tick(bool exclusive);
+
+  TokenPosition token_pos() const { return token_pos_; }
+  intptr_t exclusive_ticks() const { return exclusive_ticks_; }
+  intptr_t inclusive_ticks() const { return inclusive_ticks_; }
+
+ private:
+  TokenPosition token_pos_;
+  intptr_t exclusive_ticks_;
+  intptr_t inclusive_ticks_;
+
+  DISALLOW_ALLOCATION();
+};
+
+
 // Profile data related to a |Function|.
 class ProfileFunction : public ZoneAllocated {
  public:
@@ -72,18 +92,26 @@
     inclusive_ticks_++;
   }
 
-  void Tick(bool exclusive, intptr_t inclusive_serial);
+  void Tick(bool exclusive,
+            intptr_t inclusive_serial,
+            TokenPosition token_position);
 
   static const char* KindToCString(Kind kind);
 
   void PrintToJSONArray(JSONArray* functions);
 
+  // Returns true if the call was successful and |pfsp| is set.
+  bool GetSinglePosition(ProfileFunctionSourcePosition* pfsp);
+
+  void TickSourcePosition(TokenPosition token_position, bool exclusive);
+
  private:
   const Kind kind_;
   const char* name_;
   const Function& function_;
   const intptr_t table_index_;
   ZoneGrowableArray<intptr_t> profile_codes_;
+  ZoneGrowableArray<ProfileFunctionSourcePosition> source_position_ticks_;
 
   intptr_t exclusive_ticks_;
   intptr_t inclusive_ticks_;
@@ -376,6 +404,12 @@
   // Return the number siblings (including yourself).
   intptr_t SiblingCount();
 
+  // If the following conditions are met returns the current token:
+  // 1) This is a function trie.
+  // 2) There is only one token position for a given function.
+  // Will return NULL otherwise.
+  const char* CurrentToken();
+
   bool Down();
   bool NextSibling();
 
diff --git a/runtime/vm/profiler_test.cc b/runtime/vm/profiler_test.cc
index f9ae241..f0354fe 100644
--- a/runtime/vm/profiler_test.cc
+++ b/runtime/vm/profiler_test.cc
@@ -17,6 +17,26 @@
 
 DECLARE_FLAG(bool, profile_vm);
 DECLARE_FLAG(int, max_profile_depth);
+DECLARE_FLAG(bool, enable_inlining_annotations);
+DECLARE_FLAG(int, optimization_counter_threshold);
+
+template<typename T>
+class SetFlagScope : public ValueObject {
+ public:
+  SetFlagScope(T* flag, T value)
+      : flag_(flag),
+        original_value_(*flag) {
+    *flag_ = value;
+  }
+
+  ~SetFlagScope() {
+    *flag_ = original_value_;
+  }
+
+ private:
+  T* flag_;
+  T original_value_;
+};
 
 // Some tests are written assuming native stack trace profiling is disabled.
 class DisableNativeProfileScope : public ValueObject {
@@ -1658,6 +1678,629 @@
   }
 }
 
+
+TEST_CASE(Profiler_BasicSourcePosition) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  B.boo();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
+
+TEST_CASE(Profiler_BasicSourcePositionOptimized) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  // We use the AlwaysInline and NeverInline annotations in this test.
+  SetFlagScope<bool> sfs(&FLAG_enable_inlining_annotations, true);
+  // Optimize quickly.
+  SetFlagScope<int> sfs2(&FLAG_optimization_counter_threshold, 5);
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  B.boo();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  const Function& main = Function::Handle(GetFunction(root_library, "main"));
+  EXPECT(!main.IsNull());
+
+  // Warm up function.
+  while (true) {
+    Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+    EXPECT_VALID(result);
+    const Code& code = Code::Handle(main.CurrentCode());
+    if (code.is_optimized()) {
+      // Warmed up.
+      break;
+    }
+  }
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Still optimized.
+  const Code& code = Code::Handle(main.CurrentCode());
+  EXPECT(code.is_optimized());
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
+
+TEST_CASE(Profiler_SourcePosition) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @NeverInline\n"
+      "  static oats() {\n"
+      "    return boo();\n"
+      "  }\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "class C {\n"
+      "  @NeverInline bacon() {\n"
+      "    return fox();\n"
+      "  }\n"
+      "  @AlwaysInline fox() {\n"
+      "    return B.oats();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  new C()..bacon();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.oats", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.fox", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("oats", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.bacon", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("fox", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("bacon", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
+
+TEST_CASE(Profiler_SourcePositionOptimized) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  // We use the AlwaysInline and NeverInline annotations in this test.
+  SetFlagScope<bool> sfs(&FLAG_enable_inlining_annotations, true);
+  // Optimize quickly.
+  SetFlagScope<int> sfs2(&FLAG_optimization_counter_threshold, 5);
+
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @NeverInline\n"
+      "  static oats() {\n"
+      "    return boo();\n"
+      "  }\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "class C {\n"
+      "  @NeverInline bacon() {\n"
+      "    return fox();\n"
+      "  }\n"
+      "  @AlwaysInline fox() {\n"
+      "    return B.oats();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  new C()..bacon();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  const Function& main = Function::Handle(GetFunction(root_library, "main"));
+  EXPECT(!main.IsNull());
+
+  // Warm up function.
+  while (true) {
+    Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+    EXPECT_VALID(result);
+    const Code& code = Code::Handle(main.CurrentCode());
+    if (code.is_optimized()) {
+      // Warmed up.
+      break;
+    }
+  }
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Still optimized.
+  const Code& code = Code::Handle(main.CurrentCode());
+  EXPECT(code.is_optimized());
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.oats", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.fox", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("oats", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.bacon", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("fox", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("bacon", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
+
+TEST_CASE(Profiler_BinaryOperatorSourcePosition) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @NeverInline\n"
+      "  static oats() {\n"
+      "    return boo();\n"
+      "  }\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "class C {\n"
+      "  @NeverInline bacon() {\n"
+      "    return this + this;\n"
+      "  }\n"
+      "  @AlwaysInline operator+(C other) {\n"
+      "    return fox();\n"
+      "  }\n"
+      "  @AlwaysInline fox() {\n"
+      "    return B.oats();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  new C()..bacon();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.oats", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.fox", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("oats", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.+", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("fox", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.bacon", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("+", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("bacon", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
+
+TEST_CASE(Profiler_BinaryOperatorSourcePositionOptimized) {
+  DisableNativeProfileScope dnps;
+  DisableBackgroundCompilationScope dbcs;
+  // We use the AlwaysInline and NeverInline annotations in this test.
+  SetFlagScope<bool> sfs(&FLAG_enable_inlining_annotations, true);
+  // Optimize quickly.
+  SetFlagScope<int> sfs2(&FLAG_optimization_counter_threshold, 5);
+
+  const char* kScript =
+      "const AlwaysInline = 'AlwaysInline';\n"
+      "const NeverInline = 'NeverInline';\n"
+      "class A {\n"
+      "  var a;\n"
+      "  var b;\n"
+      "  @NeverInline A() { }\n"
+      "}\n"
+      "class B {\n"
+      "  @NeverInline\n"
+      "  static oats() {\n"
+      "    return boo();\n"
+      "  }\n"
+      "  @AlwaysInline\n"
+      "  static boo() {\n"
+      "    return new A();\n"
+      "  }\n"
+      "}\n"
+      "class C {\n"
+      "  @NeverInline bacon() {\n"
+      "    return this + this;\n"
+      "  }\n"
+      "  @AlwaysInline operator+(C other) {\n"
+      "    return fox();\n"
+      "  }\n"
+      "  @AlwaysInline fox() {\n"
+      "    return B.oats();\n"
+      "  }\n"
+      "}\n"
+      "main() {\n"
+      "  new C()..bacon();\n"
+      "}\n";
+
+  Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+  EXPECT_VALID(lib);
+  Library& root_library = Library::Handle();
+  root_library ^= Api::UnwrapHandle(lib);
+
+  const Class& class_a = Class::Handle(GetClass(root_library, "A"));
+  EXPECT(!class_a.IsNull());
+
+  const Function& main = Function::Handle(GetFunction(root_library, "main"));
+  EXPECT(!main.IsNull());
+
+  // Warm up function.
+  while (true) {
+    Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+    EXPECT_VALID(result);
+    const Code& code = Code::Handle(main.CurrentCode());
+    if (code.is_optimized()) {
+      // Warmed up.
+      break;
+    }
+  }
+
+  // Turn on allocation tracing for A.
+  class_a.SetTraceAllocation(true);
+
+  // Allocate one time.
+  Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+  EXPECT_VALID(result);
+
+  // Still optimized.
+  const Code& code = Code::Handle(main.CurrentCode());
+  EXPECT(code.is_optimized());
+
+  {
+    Thread* thread = Thread::Current();
+    Isolate* isolate = thread->isolate();
+    StackZone zone(thread);
+    HANDLESCOPE(thread);
+    Profile profile(isolate);
+    AllocationFilter filter(isolate, class_a.id());
+    profile.Build(thread, &filter, Profile::kNoTags);
+    // We should have one allocation samples.
+    EXPECT_EQ(1, profile.sample_count());
+    ProfileTrieWalker walker(&profile);
+
+    // Exclusive function: B.boo -> main.
+    walker.Reset(Profile::kExclusiveFunction);
+    // Move down from the root.
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.boo", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(1, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("A", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("B.oats", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("boo", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.fox", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("oats", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.+", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("fox", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("C.bacon", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("+", walker.CurrentToken());
+    EXPECT(walker.Down());
+    EXPECT_STREQ("main", walker.CurrentName());
+    EXPECT_EQ(1, walker.CurrentNodeTickCount());
+    EXPECT_EQ(1, walker.CurrentInclusiveTicks());
+    EXPECT_EQ(0, walker.CurrentExclusiveTicks());
+    EXPECT_STREQ("bacon", walker.CurrentToken());
+    EXPECT(!walker.Down());
+  }
+}
+
 #endif  // !PRODUCT
 
 }  // namespace dart
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index c30823f..f438fc9 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -1254,7 +1254,7 @@
   // as large as ~33 million entries. If that is sufficient, then these two
   // fields can be merged into a BitField.
   int32_t length_;  // Length of payload, in bits.
-  int32_t register_bit_count_;  // Live register bits, included in length_.
+  int32_t slow_path_bit_count_;  // Slow path live values, included in length_.
 
   // Offset from code entry point corresponding to this stack map
   // representation.
@@ -1455,7 +1455,7 @@
   }
   int32_t deopt_id_;     // Deoptimization id corresponding to this IC.
   uint32_t state_bits_;  // Number of arguments tested in IC, deopt reasons,
-                         // is closure call, JS warning issued, range feedback.
+                         // range feedback.
 };
 
 
diff --git a/runtime/vm/raw_object_snapshot.cc b/runtime/vm/raw_object_snapshot.cc
index ed22fa2..d02909c 100644
--- a/runtime/vm/raw_object_snapshot.cc
+++ b/runtime/vm/raw_object_snapshot.cc
@@ -732,9 +732,8 @@
   // Signature type.
   writer->WriteObjectImpl(ptr()->signature_type_, kAsInlinedObject);
 
-  // Static closure/Closure allocation stub.
-  // We don't write the closure or allocation stub in the snapshot.
-  writer->WriteVMIsolateObject(kNullObject);
+  // Canonical static closure.
+  writer->WriteObjectImpl(ptr()->closure_, kAsInlinedObject);
 }
 
 
diff --git a/runtime/vm/regexp_assembler_ir.cc b/runtime/vm/regexp_assembler_ir.cc
index 1d6de6c..bd04d7f 100644
--- a/runtime/vm/regexp_assembler_ir.cc
+++ b/runtime/vm/regexp_assembler_ir.cc
@@ -435,6 +435,7 @@
   ASSERT(!word_character_field.IsNull());
 
   if (word_character_field.IsUninitialized()) {
+    ASSERT(!Compiler::IsBackgroundCompilation());
     word_character_field.EvaluateInitializer();
   }
   ASSERT(!word_character_field.IsUninitialized());
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc
index b7ac721..aca3a5b 100644
--- a/runtime/vm/service.cc
+++ b/runtime/vm/service.cc
@@ -122,6 +122,7 @@
 StreamInfo Service::graph_stream("_Graph");
 StreamInfo Service::logging_stream("_Logging");
 StreamInfo Service::extension_stream("Extension");
+StreamInfo Service::timeline_stream("Timeline");
 
 static StreamInfo* streams_[] = {
   &Service::vm_stream,
@@ -132,6 +133,7 @@
   &Service::graph_stream,
   &Service::logging_stream,
   &Service::extension_stream,
+  &Service::timeline_stream,
 };
 
 
@@ -1030,11 +1032,12 @@
     params.AddProperty("streamId", stream_id);
     params.AddProperty("event", event);
   }
-  PostEvent(stream_id, event->KindAsCString(), &js);
+  PostEvent(event->isolate(), stream_id, event->KindAsCString(), &js);
 }
 
 
-void Service::PostEvent(const char* stream_id,
+void Service::PostEvent(Isolate* isolate,
+                        const char* stream_id,
                         const char* kind,
                         JSONStream* event) {
   ASSERT(stream_id != NULL);
@@ -1063,7 +1066,6 @@
   list_values[1] = &json_cobj;
 
   if (FLAG_trace_service) {
-    Isolate* isolate = Isolate::Current();
     const char* isolate_name = "<no current isolate>";
     if (isolate != NULL) {
       isolate_name = isolate->name();
@@ -1291,8 +1293,7 @@
   }
 
   {
-    MessageHandler::AcquiredQueues aq;
-    isolate->message_handler()->AcquireQueues(&aq);
+    MessageHandler::AcquiredQueues aq(isolate->message_handler());
     jsobj.AddProperty("messages", aq.queue());
   }
 
@@ -1679,8 +1680,7 @@
   if (!GetUnsignedIntegerId(parts[1], &message_id, 16)) {
     return Object::sentinel().raw();
   }
-  MessageHandler::AcquiredQueues aq;
-  thread->isolate()->message_handler()->AcquireQueues(&aq);
+  MessageHandler::AcquiredQueues aq(thread->isolate()->message_handler());
   Message* message = aq.queue()->FindMessageById(message_id);
   if (message == NULL) {
     // The user may try to load an expired message.
@@ -3016,6 +3016,16 @@
     PrintSuccess(js);
     return true;
   }
+  if (isolate->message_handler()->should_pause_on_start()) {
+    isolate->message_handler()->set_should_pause_on_start(false);
+    isolate->SetResumeRequest();
+    if (Service::debug_stream.enabled()) {
+      ServiceEvent event(isolate, ServiceEvent::kResume);
+      Service::HandleEvent(&event);
+    }
+    PrintSuccess(js);
+    return true;
+  }
   if (isolate->message_handler()->is_paused_on_exit()) {
     isolate->message_handler()->set_should_pause_on_exit(false);
     isolate->SetResumeRequest();
@@ -4043,7 +4053,7 @@
     get_retained_size_params },
   { "_getRetainingPath", GetRetainingPath,
     get_retaining_path_params },
-  { "_getSourceReport", GetSourceReport,
+  { "getSourceReport", GetSourceReport,
     get_source_report_params },
   { "getStack", GetStack,
     get_stack_params },
diff --git a/runtime/vm/service.h b/runtime/vm/service.h
index 164a94f..b7917ec 100644
--- a/runtime/vm/service.h
+++ b/runtime/vm/service.h
@@ -144,6 +144,7 @@
   static StreamInfo graph_stream;
   static StreamInfo logging_stream;
   static StreamInfo extension_stream;
+  static StreamInfo timeline_stream;
 
   static bool ListenStream(const char* stream_id);
   static void CancelStream(const char* stream_id);
@@ -184,7 +185,8 @@
                                 const uint8_t* data,
                                 intptr_t size);
 
-  static void PostEvent(const char* stream_id,
+  static void PostEvent(Isolate* isolate,
+                        const char* stream_id,
                         const char* kind,
                         JSONStream* event);
 
diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md
index 3153563..7e6c7f0 100644
--- a/runtime/vm/service/service.md
+++ b/runtime/vm/service/service.md
@@ -769,9 +769,10 @@
 -------- | -----------
 VM | VMUpdate
 Isolate | IsolateStart, IsolateRunnable, IsolateExit, IsolateUpdate, ServiceExtensionAdded
-Debug | PauseStart, PauseExit, PauseBreakpoint, PauseInterrupted, PauseException, Resume, BreakpointAdded, BreakpointResolved, BreakpointRemoved, Inspect
+Debug | PauseStart, PauseExit, PauseBreakpoint, PauseInterrupted, PauseException, Resume, BreakpointAdded, BreakpointResolved, BreakpointRemoved, Inspect, None
 GC | GC
 Extension | Extension
+Timeline | TimelineEvents
 
 Additionally, some embedders provide the _Stdout_ and _Stderr_
 streams.  These streams allow the client to subscribe to writes to
@@ -1213,6 +1214,11 @@
   // This is provided for the Extension event.
   ExtensionData extensionData [optional];
 
+  // An array of TimelineEvents
+  //
+  // This is provided for the TimelineEvents event.
+  TimelineEvent[] timelineEvents [optional];
+
   // Is the isolate paused at an await, yield, or yield* statement?
   //
   // This is provided for the event kinds:
@@ -1271,6 +1277,10 @@
   // An isolate has started or resumed execution.
   Resume,
 
+  // Indicates an isolate is not yet runnable. Only appears in an Isolate's
+  // pauseEvent. Never sent over a stream.
+  None,
+
   // A breakpoint has been added for an isolate.
   BreakpointAdded,
 
@@ -2361,6 +2371,15 @@
 
 The _Success_ type is used to indicate that an operation completed successfully.
 
+### TimelineEvent
+
+```
+class TimelineEvent {
+}
+```
+
+An _TimelineEvent_ is an arbitrary map that contains a [Trace Event Format](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview) event.
+
 ### TypeArguments
 
 ```
diff --git a/runtime/vm/service_event.cc b/runtime/vm/service_event.cc
index 2e64c66..502a38b 100644
--- a/runtime/vm/service_event.cc
+++ b/runtime/vm/service_event.cc
@@ -42,6 +42,7 @@
       embedder_stream_id_(NULL),
       breakpoint_(NULL),
       top_frame_(NULL),
+      timeline_event_block_(NULL),
       extension_rpc_(NULL),
       exception_(NULL),
       at_async_jump_(false),
@@ -64,6 +65,7 @@
       kind_(TranslateEventKind(debugger_event->type())),
       breakpoint_(NULL),
       top_frame_(NULL),
+      timeline_event_block_(NULL),
       extension_rpc_(NULL),
       exception_(NULL),
       at_async_jump_(false),
@@ -115,6 +117,8 @@
       return "PauseInterrupted";
     case kPauseException:
       return "PauseException";
+    case kNone:
+      return "None";
     case kResume:
       return "Resume";
     case kBreakpointAdded:
@@ -137,6 +141,8 @@
       return "Illegal";
     case kExtension:
       return "Extension";
+    case kTimelineEvents:
+      return "TimelineEvents";
     default:
       UNREACHABLE();
       return "Unknown";
@@ -161,6 +167,7 @@
     case kPauseBreakpoint:
     case kPauseInterrupted:
     case kPauseException:
+    case kNone:
     case kResume:
     case kBreakpointAdded:
     case kBreakpointResolved:
@@ -181,6 +188,9 @@
     case kExtension:
       return Service::extension_stream.id();
 
+    case kTimelineEvents:
+      return Service::timeline_stream.id();
+
     default:
       UNREACHABLE();
       return NULL;
@@ -207,6 +217,9 @@
       jsobj.AddProperty("breakpoint", breakpoint());
     }
   }
+  if (kind() == kTimelineEvents) {
+    jsobj.AddProperty("timelineEvents", timeline_event_block_);
+  }
   if (kind() == kDebuggerSettingsUpdate) {
     JSONObject jssettings(&jsobj, "_debuggerSettings");
     isolate()->debugger()->PrintSettingsToJSONObject(&jssettings);
@@ -261,7 +274,7 @@
     jsobj->AddProperty("extensionKind",
                        extension_event_.event_kind->ToCString());
   }
-  if (kind() == kVMUpdate) {
+  if (isolate() == NULL) {
     jsobj->AddPropertyVM("vm");
   } else {
     jsobj->AddProperty("isolate", isolate());
diff --git a/runtime/vm/service_event.h b/runtime/vm/service_event.h
index e5afb6d..3ca26e4 100644
--- a/runtime/vm/service_event.h
+++ b/runtime/vm/service_event.h
@@ -8,6 +8,7 @@
 #include "vm/debugger.h"
 
 class DebuggerEvent;
+class TimelineEventBlock;
 
 namespace dart {
 
@@ -28,6 +29,7 @@
     kPauseBreakpoint,
     kPauseInterrupted,
     kPauseException,
+    kNone,               // isolate has not been made runnable yet.
     kResume,
     kBreakpointAdded,
     kBreakpointResolved,
@@ -43,6 +45,8 @@
 
     kExtension,
 
+    kTimelineEvents,
+
     kIllegal,
   };
 
@@ -182,6 +186,15 @@
     return timestamp_;
   }
 
+  const TimelineEventBlock* timeline_event_block() const {
+    return timeline_event_block_;
+  }
+
+  void set_timeline_event_block(const TimelineEventBlock* block) {
+    ASSERT(kind() == kTimelineEvents);
+    timeline_event_block_ = block;
+  }
+
   void PrintJSON(JSONStream* js) const;
 
   void PrintJSONHeader(JSONObject* jsobj) const;
@@ -193,6 +206,7 @@
   const char* embedder_stream_id_;
   Breakpoint* breakpoint_;
   ActivationFrame* top_frame_;
+  const TimelineEventBlock* timeline_event_block_;
   const String* extension_rpc_;
   const Object* exception_;
   bool at_async_jump_;
diff --git a/runtime/vm/signal_handler_android.cc b/runtime/vm/signal_handler_android.cc
index a85dbb7..d41eb59 100644
--- a/runtime/vm/signal_handler_android.cc
+++ b/runtime/vm/signal_handler_android.cc
@@ -14,6 +14,8 @@
 
 #if defined(HOST_ARCH_IA32)
   pc = static_cast<uintptr_t>(mcontext.gregs[REG_EIP]);
+#elif defined(HOST_ARCH_X64)
+  pc = static_cast<uintptr_t>(mcontext.gregs[REG_RIP]);
 #elif defined(HOST_ARCH_ARM)
   pc = static_cast<uintptr_t>(mcontext.arm_pc);
 #elif defined(HOST_ARCH_ARM64)
@@ -30,6 +32,8 @@
 
 #if defined(HOST_ARCH_IA32)
   fp = static_cast<uintptr_t>(mcontext.gregs[REG_EBP]);
+#elif defined(HOST_ARCH_X64)
+  fp = static_cast<uintptr_t>(mcontext.gregs[REG_RBP]);
 #elif defined(HOST_ARCH_ARM)
   fp = static_cast<uintptr_t>(mcontext.arm_fp);
 #elif defined(HOST_ARCH_ARM64)
@@ -47,6 +51,8 @@
 
 #if defined(HOST_ARCH_IA32)
   sp = static_cast<uintptr_t>(mcontext.gregs[REG_ESP]);
+#elif defined(HOST_ARCH_X64)
+  sp = static_cast<uintptr_t>(mcontext.gregs[REG_RSP]);
 #elif defined(HOST_ARCH_ARM)
   sp = static_cast<uintptr_t>(mcontext.arm_sp);
 #elif defined(HOST_ARCH_ARM64)
@@ -63,6 +69,8 @@
 
 #if defined(HOST_ARCH_IA32)
   sp = static_cast<uintptr_t>(mcontext.gregs[REG_ESP]);
+#elif defined(HOST_ARCH_X64)
+  sp = static_cast<uintptr_t>(mcontext.gregs[REG_RSP]);
 #elif defined(HOST_ARCH_ARM)
   sp = static_cast<uintptr_t>(mcontext.arm_sp);
 #elif defined(HOST_ARCH_ARM64)
@@ -79,6 +87,8 @@
 
 #if defined(HOST_ARCH_IA32)
   lr = 0;
+#elif defined(HOST_ARCH_X64)
+  lr = 0;
 #elif defined(HOST_ARCH_ARM)
   lr = static_cast<uintptr_t>(mcontext.arm_lr);
 #elif defined(HOST_ARCH_ARM64)
diff --git a/runtime/vm/simulator_mips.cc b/runtime/vm/simulator_mips.cc
index 074fc8c..a828752 100644
--- a/runtime/vm/simulator_mips.cc
+++ b/runtime/vm/simulator_mips.cc
@@ -1888,6 +1888,28 @@
             (fs_val <= ft_val) || isnan(fs_val) || isnan(ft_val));
         break;
       }
+      case COP1_TRUNC_W: {
+        switch (instr->FormatField()) {
+          case FMT_D: {
+            double fs_dbl = get_fregister_double(instr->FsField());
+            int32_t fs_int;
+            if (isnan(fs_dbl) || isinf(fs_dbl) || (fs_dbl > kMaxInt32) ||
+                (fs_dbl < kMinInt32)) {
+              fs_int = kMaxInt32;
+            } else {
+              fs_int = static_cast<int32_t>(fs_dbl);
+            }
+            set_fregister(instr->FdField(), fs_int);
+            break;
+          }
+          default: {
+            OS::PrintErr("DecodeCop1: 0x%x\n", instr->InstructionBits());
+            UnimplementedInstruction(instr);
+            break;
+          }
+        }
+        break;
+      }
       case COP1_CVT_D: {
         switch (instr->FormatField()) {
           case FMT_W: {
@@ -1902,34 +1924,6 @@
             set_fregister_double(instr->FdField(), fs_dbl);
             break;
           }
-          case FMT_L: {
-            int64_t fs_int = get_fregister_long(instr->FsField());
-            double fs_dbl = static_cast<double>(fs_int);
-            set_fregister_double(instr->FdField(), fs_dbl);
-            break;
-          }
-          default: {
-            OS::PrintErr("DecodeCop1: 0x%x\n", instr->InstructionBits());
-            UnimplementedInstruction(instr);
-            break;
-          }
-        }
-        break;
-      }
-      case COP1_CVT_W: {
-        switch (instr->FormatField()) {
-          case FMT_D: {
-            double fs_dbl = get_fregister_double(instr->FsField());
-            int32_t fs_int;
-            if (isnan(fs_dbl) || isinf(fs_dbl) || (fs_dbl > INT_MAX) ||
-                (fs_dbl < INT_MIN)) {
-              fs_int = INT_MIN;
-            } else {
-              fs_int = static_cast<int32_t>(fs_dbl);
-            }
-            set_fregister(instr->FdField(), fs_int);
-            break;
-          }
           default: {
             OS::PrintErr("DecodeCop1: 0x%x\n", instr->InstructionBits());
             UnimplementedInstruction(instr);
diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc
index fb3d8d8..4eb3da7 100644
--- a/runtime/vm/stack_frame.cc
+++ b/runtime/vm/stack_frame.cc
@@ -112,19 +112,15 @@
       // visit frame slots which are marked as having objects.
       //
       // The layout of the frame is (lower addresses to the right):
-      // | spill slots | outgoing arguments | saved registers |
-      // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|
+      // | spill slots | outgoing arguments | saved registers | slow-path args |
+      // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXX|
       //
       // The spill slots and any saved registers are described in the stack
       // map.  The outgoing arguments are assumed to be tagged; the number
       // of outgoing arguments is not explicitly tracked.
-      //
-      // TODO(kmillikin): This does not handle slow path calls with
-      // arguments, where the arguments are pushed after the live registers.
-      // Enable such calls.
       intptr_t length = map.Length();
       // Spill slots are at the 'bottom' of the frame.
-      intptr_t spill_slot_count = length - map.RegisterBitCount();
+      intptr_t spill_slot_count = length - map.SlowPathBitCount();
       for (intptr_t bit = 0; bit < spill_slot_count; ++bit) {
         if (map.IsObject(bit)) {
           visitor->VisitPointer(last);
diff --git a/runtime/vm/thread_interrupter.cc b/runtime/vm/thread_interrupter.cc
index e117703..1e0d8cf 100644
--- a/runtime/vm/thread_interrupter.cc
+++ b/runtime/vm/thread_interrupter.cc
@@ -98,7 +98,7 @@
     }
     shutdown_ = true;
     // Notify.
-    monitor_->Notify();
+    shutdown_ml.Notify();
     ASSERT(initialized_);
     if (FLAG_trace_thread_interrupter) {
       OS::Print("ThreadInterrupter shutting down.\n");
@@ -163,8 +163,8 @@
   }
   {
     intptr_t interrupted_thread_count = 0;
-    current_wait_time_ = interrupt_period_;
     MonitorLocker wait_ml(monitor_);
+    current_wait_time_ = interrupt_period_;
     while (!shutdown_) {
       intptr_t r = wait_ml.WaitMicros(current_wait_time_);
 
@@ -183,7 +183,7 @@
       interrupted_thread_count = 0;
 
       // Temporarily drop the monitor while we interrupt threads.
-      monitor_->Exit();
+      wait_ml.Exit();
 
       {
         OSThreadIterator it;
@@ -197,7 +197,7 @@
       }
 
       // Take the monitor lock again.
-      monitor_->Enter();
+      wait_ml.Enter();
 
       // Now that we have the lock, check if we were signaled to wake up while
       // interrupting threads.
diff --git a/runtime/vm/timeline.cc b/runtime/vm/timeline.cc
index be86154..2fa59ef 100644
--- a/runtime/vm/timeline.cc
+++ b/runtime/vm/timeline.cc
@@ -10,6 +10,7 @@
 #include "vm/lockers.h"
 #include "vm/log.h"
 #include "vm/object.h"
+#include "vm/service_event.h"
 #include "vm/thread.h"
 #include "vm/timeline.h"
 
@@ -1218,15 +1219,15 @@
 }
 
 
-TimelineEventStreamingRecorder::TimelineEventStreamingRecorder() {
+TimelineEventCallbackRecorder::TimelineEventCallbackRecorder() {
 }
 
 
-TimelineEventStreamingRecorder::~TimelineEventStreamingRecorder() {
+TimelineEventCallbackRecorder::~TimelineEventCallbackRecorder() {
 }
 
 
-void TimelineEventStreamingRecorder::PrintJSON(JSONStream* js,
+void TimelineEventCallbackRecorder::PrintJSON(JSONStream* js,
                                                TimelineEventFilter* filter) {
   if (!FLAG_support_service) {
     return;
@@ -1240,7 +1241,7 @@
 }
 
 
-void TimelineEventStreamingRecorder::PrintTraceEvent(
+void TimelineEventCallbackRecorder::PrintTraceEvent(
     JSONStream* js,
     TimelineEventFilter* filter) {
   if (!FLAG_support_service) {
@@ -1250,14 +1251,14 @@
 }
 
 
-TimelineEvent* TimelineEventStreamingRecorder::StartEvent() {
+TimelineEvent* TimelineEventCallbackRecorder::StartEvent() {
   TimelineEvent* event = new TimelineEvent();
   return event;
 }
 
 
-void TimelineEventStreamingRecorder::CompleteEvent(TimelineEvent* event) {
-  StreamEvent(event);
+void TimelineEventCallbackRecorder::CompleteEvent(TimelineEvent* event) {
+  OnEvent(event);
   delete event;
 }
 
@@ -1396,6 +1397,16 @@
 }
 
 
+void TimelineEventBlock::PrintJSON(JSONStream* js) const {
+  ASSERT(!in_use());
+  JSONArray events(js);
+  for (intptr_t i = 0; i < length(); i++) {
+    const TimelineEvent* event = At(i);
+    events.AddValue(event);
+  }
+}
+
+
 TimelineEvent* TimelineEventBlock::StartEvent() {
   ASSERT(!IsFull());
   if (FLAG_trace_timeline) {
@@ -1465,6 +1476,11 @@
     OS::Print("Finish block %p\n", this);
   }
   in_use_ = false;
+  if (Service::timeline_stream.enabled()) {
+    ServiceEvent service_event(NULL, ServiceEvent::kTimelineEvents);
+    service_event.set_timeline_event_block(this);
+    Service::HandleEvent(&service_event);
+  }
 }
 
 
diff --git a/runtime/vm/timeline.h b/runtime/vm/timeline.h
index 6dfc8d2..002f8c9 100644
--- a/runtime/vm/timeline.h
+++ b/runtime/vm/timeline.h
@@ -526,6 +526,8 @@
   }
 
  protected:
+  void PrintJSON(JSONStream* stream) const;
+
   TimelineEvent* StartEvent();
 
   TimelineEvent events_[kBlockSize];
@@ -545,6 +547,7 @@
   friend class TimelineEventRingRecorder;
   friend class TimelineEventEndlessRecorder;
   friend class TimelineTestHelper;
+  friend class JSONStream;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(TimelineEventBlock);
@@ -687,21 +690,22 @@
 };
 
 
-// An abstract recorder that calls |StreamEvent| whenever an event is complete.
-class TimelineEventStreamingRecorder : public TimelineEventRecorder {
+// An abstract recorder that calls |OnEvent| whenever an event is complete.
+// This should only be used for testing.
+class TimelineEventCallbackRecorder : public TimelineEventRecorder {
  public:
-  TimelineEventStreamingRecorder();
-  ~TimelineEventStreamingRecorder();
+  TimelineEventCallbackRecorder();
+  ~TimelineEventCallbackRecorder();
 
   void PrintJSON(JSONStream* js, TimelineEventFilter* filter);
   void PrintTraceEvent(JSONStream* js, TimelineEventFilter* filter);
 
-  // Called when |event| is ready to be streamed. It is unsafe to keep a
-  // reference to |event| as it may be freed as soon as this function returns.
-  virtual void StreamEvent(TimelineEvent* event) = 0;
+  // Called when |event| is completed. It is unsafe to keep a reference to
+  // |event| as it may be freed as soon as this function returns.
+  virtual void OnEvent(TimelineEvent* event) = 0;
 
   const char* name() const {
-    return "streaming";
+    return "callback";
   }
 
  protected:
diff --git a/runtime/vm/timeline_test.cc b/runtime/vm/timeline_test.cc
index 01d0c6a..db764ee 100644
--- a/runtime/vm/timeline_test.cc
+++ b/runtime/vm/timeline_test.cc
@@ -237,7 +237,7 @@
 
 
 // Count the number of each event type seen.
-class EventCounterRecorder : public TimelineEventStreamingRecorder {
+class EventCounterRecorder : public TimelineEventCallbackRecorder {
  public:
   EventCounterRecorder() {
     for (intptr_t i = 0; i < TimelineEvent::kNumEventTypes; i++) {
@@ -245,7 +245,7 @@
     }
   }
 
-  void StreamEvent(TimelineEvent* event) {
+  void OnEvent(TimelineEvent* event) {
     counts_[event->event_type()]++;
   }
 
@@ -258,7 +258,7 @@
 };
 
 
-TEST_CASE(TimelineEventStreamingRecorderBasic) {
+TEST_CASE(TimelineEventCallbackRecorderBasic) {
   EventCounterRecorder* recorder = new EventCounterRecorder();
   TimelineRecorderOverride override(recorder);
 
diff --git a/runtime/vm/verifier.cc b/runtime/vm/verifier.cc
index 18ad438..a9bbf01 100644
--- a/runtime/vm/verifier.cc
+++ b/runtime/vm/verifier.cc
@@ -17,9 +17,6 @@
 
 namespace dart {
 
-DEFINE_FLAG(bool, verify_on_transition, false, "Verify on dart <==> VM.");
-
-
 void VerifyObjectVisitor::VisitObject(RawObject* raw_obj) {
   if (raw_obj->IsHeapObject()) {
     uword raw_addr = RawObject::ToAddr(raw_obj);
diff --git a/runtime/vm/weak_code.cc b/runtime/vm/weak_code.cc
index eb04d1f..d68cfff 100644
--- a/runtime/vm/weak_code.cc
+++ b/runtime/vm/weak_code.cc
@@ -66,7 +66,7 @@
   if (code_objects.IsNull()) {
     return;
   }
-  ASSERT(!FLAG_precompiled_mode);
+  ASSERT(!FLAG_precompiled_runtime);
   UpdateArrayTo(Object::null_array());
   // Disable all code on stack.
   Code& code = Code::Handle();
diff --git a/samples/samples.status b/samples/samples.status
index d9739f4..ac35013 100644
--- a/samples/samples.status
+++ b/samples/samples.status
@@ -11,6 +11,10 @@
 [ $compiler == dart2js && $runtime == none ]
 *: Fail, Pass # TODO(ahe): Triage these tests.
 
+[ $compiler == dart2js && $cps_ir && $checked ]
+sample_extension: Crash # Unable to compile UnsupportedError.message.
+
+
 [ $compiler == dart2analyzer ]
 build_dart: Skip
 
diff --git a/sdk/lib/_blink/dartium/_blink_dartium.dart b/sdk/lib/_blink/dartium/_blink_dartium.dart
index 4f88a3d..37471b9 100644
--- a/sdk/lib/_blink/dartium/_blink_dartium.dart
+++ b/sdk/lib/_blink/dartium/_blink_dartium.dart
@@ -1,8 +1,10 @@
-// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
+/* 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.
+ *
+ * DO NOT EDIT
+ * Auto-generated _blink library.
+ */
 library dart.dom._blink;
 
 import 'dart:js' as js;
@@ -14,17 +16,22 @@
 
 dynamic resolver(String s) {
   if (s == "ANGLEInstancedArrays") return BlinkANGLEInstancedArrays.instance;
+  if (s == "AbstractWorker") return BlinkAbstractWorker.instance;
   if (s == "AnalyserNode") return BlinkAnalyserNode.instance;
   if (s == "Animation") return BlinkAnimation.instance;
-  if (s == "AnimationEffect") return BlinkAnimationEffect.instance;
-  if (s == "AnimationNode") return BlinkAnimationNode.instance;
-  if (s == "AnimationPlayer") return BlinkAnimationPlayer.instance;
+  if (s == "AnimationEffectReadOnly") return BlinkAnimationEffectReadOnly.instance;
+  if (s == "AnimationEffectTiming") return BlinkAnimationEffectTiming.instance;
+  if (s == "AnimationEvent") return BlinkAnimationEvent.instance;
   if (s == "AnimationPlayerEvent") return BlinkAnimationPlayerEvent.instance;
   if (s == "AnimationTimeline") return BlinkAnimationTimeline.instance;
+  if (s == "AppBannerPromptResult") return BlinkAppBannerPromptResult.instance;
   if (s == "ApplicationCache") return BlinkApplicationCache.instance;
   if (s == "ApplicationCacheErrorEvent") return BlinkApplicationCacheErrorEvent.instance;
+  if (s == "ArrayBuffer") return BlinkArrayBuffer.instance;
+  if (s == "ArrayBufferView") return BlinkArrayBufferView.instance;
   if (s == "Attr") return BlinkAttr.instance;
   if (s == "AudioBuffer") return BlinkAudioBuffer.instance;
+  if (s == "AudioBufferCallback") return BlinkAudioBufferCallback.instance;
   if (s == "AudioBufferSourceNode") return BlinkAudioBufferSourceNode.instance;
   if (s == "AudioContext") return BlinkAudioContext.instance;
   if (s == "AudioDestinationNode") return BlinkAudioDestinationNode.instance;
@@ -38,52 +45,66 @@
   if (s == "AutocompleteErrorEvent") return BlinkAutocompleteErrorEvent.instance;
   if (s == "BarProp") return BlinkBarProp.instance;
   if (s == "BatteryManager") return BlinkBatteryManager.instance;
+  if (s == "BeforeInstallPromptEvent") return BlinkBeforeInstallPromptEvent.instance;
   if (s == "BeforeUnloadEvent") return BlinkBeforeUnloadEvent.instance;
   if (s == "BiquadFilterNode") return BlinkBiquadFilterNode.instance;
   if (s == "Blob") return BlinkBlob.instance;
+  if (s == "Bluetooth") return BlinkBluetooth.instance;
+  if (s == "BluetoothDevice") return BlinkBluetoothDevice.instance;
+  if (s == "BluetoothGATTCharacteristic") return BlinkBluetoothGATTCharacteristic.instance;
+  if (s == "BluetoothGATTRemoteServer") return BlinkBluetoothGATTRemoteServer.instance;
+  if (s == "BluetoothGATTService") return BlinkBluetoothGATTService.instance;
+  if (s == "BluetoothUUID") return BlinkBluetoothUUID.instance;
   if (s == "Body") return BlinkBody.instance;
   if (s == "CDATASection") return BlinkCDATASection.instance;
+  if (s == "CHROMIUMSubscribeUniform") return BlinkCHROMIUMSubscribeUniform.instance;
+  if (s == "CHROMIUMValuebuffer") return BlinkCHROMIUMValuebuffer.instance;
   if (s == "CSS") return BlinkCSS.instance;
   if (s == "CSSCharsetRule") return BlinkCSSCharsetRule.instance;
   if (s == "CSSFontFaceRule") return BlinkCSSFontFaceRule.instance;
+  if (s == "CSSGroupingRule") return BlinkCSSGroupingRule.instance;
   if (s == "CSSImportRule") return BlinkCSSImportRule.instance;
   if (s == "CSSKeyframeRule") return BlinkCSSKeyframeRule.instance;
   if (s == "CSSKeyframesRule") return BlinkCSSKeyframesRule.instance;
   if (s == "CSSMediaRule") return BlinkCSSMediaRule.instance;
   if (s == "CSSPageRule") return BlinkCSSPageRule.instance;
-  if (s == "CSSPrimitiveValue") return BlinkCSSPrimitiveValue.instance;
   if (s == "CSSRule") return BlinkCSSRule.instance;
   if (s == "CSSRuleList") return BlinkCSSRuleList.instance;
   if (s == "CSSStyleDeclaration") return BlinkCSSStyleDeclaration.instance;
   if (s == "CSSStyleRule") return BlinkCSSStyleRule.instance;
   if (s == "CSSStyleSheet") return BlinkCSSStyleSheet.instance;
   if (s == "CSSSupportsRule") return BlinkCSSSupportsRule.instance;
-  if (s == "CSSUnknownRule") return BlinkCSSUnknownRule.instance;
-  if (s == "CSSValue") return BlinkCSSValue.instance;
-  if (s == "CSSValueList") return BlinkCSSValueList.instance;
   if (s == "CSSViewportRule") return BlinkCSSViewportRule.instance;
   if (s == "Cache") return BlinkCache.instance;
   if (s == "CacheStorage") return BlinkCacheStorage.instance;
-  if (s == "Canvas2DContextAttributes") return BlinkCanvas2DContextAttributes.instance;
   if (s == "CanvasGradient") return BlinkCanvasGradient.instance;
+  if (s == "CanvasPathMethods") return BlinkCanvasPathMethods.instance;
   if (s == "CanvasPattern") return BlinkCanvasPattern.instance;
   if (s == "CanvasRenderingContext2D") return BlinkCanvasRenderingContext2D.instance;
   if (s == "ChannelMergerNode") return BlinkChannelMergerNode.instance;
   if (s == "ChannelSplitterNode") return BlinkChannelSplitterNode.instance;
   if (s == "CharacterData") return BlinkCharacterData.instance;
+  if (s == "ChildNode") return BlinkChildNode.instance;
   if (s == "CircularGeofencingRegion") return BlinkCircularGeofencingRegion.instance;
+  if (s == "Client") return BlinkClient.instance;
   if (s == "ClientRect") return BlinkClientRect.instance;
   if (s == "ClientRectList") return BlinkClientRectList.instance;
+  if (s == "Clients") return BlinkClients.instance;
+  if (s == "ClipboardEvent") return BlinkClipboardEvent.instance;
   if (s == "CloseEvent") return BlinkCloseEvent.instance;
   if (s == "Comment") return BlinkComment.instance;
   if (s == "CompositionEvent") return BlinkCompositionEvent.instance;
+  if (s == "CompositorProxy") return BlinkCompositorProxy.instance;
+  if (s == "CompositorWorker") return BlinkCompositorWorker.instance;
+  if (s == "CompositorWorkerGlobalScope") return BlinkCompositorWorkerGlobalScope.instance;
   if (s == "Console") return BlinkConsole.instance;
   if (s == "ConsoleBase") return BlinkConsoleBase.instance;
   if (s == "ConvolverNode") return BlinkConvolverNode.instance;
   if (s == "Coordinates") return BlinkCoordinates.instance;
-  if (s == "Counter") return BlinkCounter.instance;
   if (s == "Credential") return BlinkCredential.instance;
   if (s == "CredentialsContainer") return BlinkCredentialsContainer.instance;
+  if (s == "CrossOriginConnectEvent") return BlinkCrossOriginConnectEvent.instance;
+  if (s == "CrossOriginServiceWorkerClient") return BlinkCrossOriginServiceWorkerClient.instance;
   if (s == "Crypto") return BlinkCrypto.instance;
   if (s == "CryptoKey") return BlinkCryptoKey.instance;
   if (s == "CustomEvent") return BlinkCustomEvent.instance;
@@ -106,8 +127,11 @@
   if (s == "DataTransfer") return BlinkDataTransfer.instance;
   if (s == "DataTransferItem") return BlinkDataTransferItem.instance;
   if (s == "DataTransferItemList") return BlinkDataTransferItemList.instance;
+  if (s == "DataView") return BlinkDataView.instance;
   if (s == "Database") return BlinkDatabase.instance;
+  if (s == "DatabaseCallback") return BlinkDatabaseCallback.instance;
   if (s == "DedicatedWorkerGlobalScope") return BlinkDedicatedWorkerGlobalScope.instance;
+  if (s == "DefaultSessionStartEvent") return BlinkDefaultSessionStartEvent.instance;
   if (s == "DelayNode") return BlinkDelayNode.instance;
   if (s == "DeprecatedStorageInfo") return BlinkDeprecatedStorageInfo.instance;
   if (s == "DeprecatedStorageQuota") return BlinkDeprecatedStorageQuota.instance;
@@ -128,39 +152,55 @@
   if (s == "EXTFragDepth") return BlinkEXTFragDepth.instance;
   if (s == "EXTShaderTextureLOD") return BlinkEXTShaderTextureLOD.instance;
   if (s == "EXTTextureFilterAnisotropic") return BlinkEXTTextureFilterAnisotropic.instance;
+  if (s == "EXTsRGB") return BlinkEXTsRGB.instance;
+  if (s == "EffectModel") return BlinkEffectModel.instance;
   if (s == "Element") return BlinkElement.instance;
+  if (s == "EntriesCallback") return BlinkEntriesCallback.instance;
   if (s == "Entry") return BlinkEntry.instance;
+  if (s == "EntryCallback") return BlinkEntryCallback.instance;
   if (s == "EntrySync") return BlinkEntrySync.instance;
+  if (s == "ErrorCallback") return BlinkErrorCallback.instance;
   if (s == "ErrorEvent") return BlinkErrorEvent.instance;
   if (s == "Event") return BlinkEvent.instance;
+  if (s == "EventListener") return BlinkEventListener.instance;
   if (s == "EventSource") return BlinkEventSource.instance;
   if (s == "EventTarget") return BlinkEventTarget.instance;
   if (s == "ExtendableEvent") return BlinkExtendableEvent.instance;
   if (s == "FederatedCredential") return BlinkFederatedCredential.instance;
   if (s == "FetchEvent") return BlinkFetchEvent.instance;
   if (s == "File") return BlinkFile.instance;
+  if (s == "FileCallback") return BlinkFileCallback.instance;
   if (s == "FileEntry") return BlinkFileEntry.instance;
   if (s == "FileEntrySync") return BlinkFileEntrySync.instance;
   if (s == "FileError") return BlinkFileError.instance;
   if (s == "FileList") return BlinkFileList.instance;
   if (s == "FileReader") return BlinkFileReader.instance;
   if (s == "FileReaderSync") return BlinkFileReaderSync.instance;
+  if (s == "FileSystemCallback") return BlinkFileSystemCallback.instance;
   if (s == "FileWriter") return BlinkFileWriter.instance;
+  if (s == "FileWriterCallback") return BlinkFileWriterCallback.instance;
   if (s == "FileWriterSync") return BlinkFileWriterSync.instance;
+  if (s == "Float32Array") return BlinkFloat32Array.instance;
+  if (s == "Float64Array") return BlinkFloat64Array.instance;
   if (s == "FocusEvent") return BlinkFocusEvent.instance;
   if (s == "FontFace") return BlinkFontFace.instance;
   if (s == "FontFaceSet") return BlinkFontFaceSet.instance;
+  if (s == "FontFaceSetForEachCallback") return BlinkFontFaceSetForEachCallback.instance;
   if (s == "FontFaceSetLoadEvent") return BlinkFontFaceSetLoadEvent.instance;
   if (s == "FormData") return BlinkFormData.instance;
+  if (s == "FrameRequestCallback") return BlinkFrameRequestCallback.instance;
   if (s == "GainNode") return BlinkGainNode.instance;
   if (s == "Gamepad") return BlinkGamepad.instance;
   if (s == "GamepadButton") return BlinkGamepadButton.instance;
   if (s == "GamepadEvent") return BlinkGamepadEvent.instance;
   if (s == "GamepadList") return BlinkGamepadList.instance;
   if (s == "Geofencing") return BlinkGeofencing.instance;
+  if (s == "GeofencingEvent") return BlinkGeofencingEvent.instance;
   if (s == "GeofencingRegion") return BlinkGeofencingRegion.instance;
   if (s == "Geolocation") return BlinkGeolocation.instance;
   if (s == "Geoposition") return BlinkGeoposition.instance;
+  if (s == "GlobalEventHandlers") return BlinkGlobalEventHandlers.instance;
+  if (s == "HMDVRDevice") return BlinkHMDVRDevice.instance;
   if (s == "HTMLAllCollection") return BlinkHTMLAllCollection.instance;
   if (s == "HTMLAnchorElement") return BlinkHTMLAnchorElement.instance;
   if (s == "HTMLAppletElement") return BlinkHTMLAppletElement.instance;
@@ -256,14 +296,13 @@
   if (s == "ImageBitmap") return BlinkImageBitmap.instance;
   if (s == "ImageData") return BlinkImageData.instance;
   if (s == "InjectedScriptHost") return BlinkInjectedScriptHost.instance;
-  if (s == "InputMethodContext") return BlinkInputMethodContext.instance;
-  if (s == "InspectorFrontendHost") return BlinkInspectorFrontendHost.instance;
-  if (s == "InspectorOverlayHost") return BlinkInspectorOverlayHost.instance;
-  if (s == "InstallEvent") return BlinkInstallEvent.instance;
+  if (s == "InputDevice") return BlinkInputDevice.instance;
+  if (s == "Int16Array") return BlinkInt16Array.instance;
+  if (s == "Int32Array") return BlinkInt32Array.instance;
+  if (s == "Int8Array") return BlinkInt8Array.instance;
   if (s == "Iterator") return BlinkIterator.instance;
-  if (s == "JavaScriptCallFrame") return BlinkJavaScriptCallFrame.instance;
   if (s == "KeyboardEvent") return BlinkKeyboardEvent.instance;
-  if (s == "LocalCredential") return BlinkLocalCredential.instance;
+  if (s == "KeyframeEffect") return BlinkKeyframeEffect.instance;
   if (s == "Location") return BlinkLocation.instance;
   if (s == "MIDIAccess") return BlinkMIDIAccess.instance;
   if (s == "MIDIConnectionEvent") return BlinkMIDIConnectionEvent.instance;
@@ -275,17 +314,21 @@
   if (s == "MIDIPort") return BlinkMIDIPort.instance;
   if (s == "MediaController") return BlinkMediaController.instance;
   if (s == "MediaDeviceInfo") return BlinkMediaDeviceInfo.instance;
+  if (s == "MediaDevices") return BlinkMediaDevices.instance;
   if (s == "MediaElementAudioSourceNode") return BlinkMediaElementAudioSourceNode.instance;
+  if (s == "MediaEncryptedEvent") return BlinkMediaEncryptedEvent.instance;
   if (s == "MediaError") return BlinkMediaError.instance;
   if (s == "MediaKeyError") return BlinkMediaKeyError.instance;
   if (s == "MediaKeyEvent") return BlinkMediaKeyEvent.instance;
   if (s == "MediaKeyMessageEvent") return BlinkMediaKeyMessageEvent.instance;
-  if (s == "MediaKeyNeededEvent") return BlinkMediaKeyNeededEvent.instance;
   if (s == "MediaKeySession") return BlinkMediaKeySession.instance;
+  if (s == "MediaKeyStatusMap") return BlinkMediaKeyStatusMap.instance;
+  if (s == "MediaKeySystemAccess") return BlinkMediaKeySystemAccess.instance;
   if (s == "MediaKeys") return BlinkMediaKeys.instance;
   if (s == "MediaList") return BlinkMediaList.instance;
   if (s == "MediaQueryList") return BlinkMediaQueryList.instance;
   if (s == "MediaQueryListEvent") return BlinkMediaQueryListEvent.instance;
+  if (s == "MediaSession") return BlinkMediaSession.instance;
   if (s == "MediaSource") return BlinkMediaSource.instance;
   if (s == "MediaStream") return BlinkMediaStream.instance;
   if (s == "MediaStreamAudioDestinationNode") return BlinkMediaStreamAudioDestinationNode.instance;
@@ -293,26 +336,40 @@
   if (s == "MediaStreamEvent") return BlinkMediaStreamEvent.instance;
   if (s == "MediaStreamTrack") return BlinkMediaStreamTrack.instance;
   if (s == "MediaStreamTrackEvent") return BlinkMediaStreamTrackEvent.instance;
+  if (s == "MediaStreamTrackSourcesCallback") return BlinkMediaStreamTrackSourcesCallback.instance;
   if (s == "MemoryInfo") return BlinkMemoryInfo.instance;
   if (s == "MessageChannel") return BlinkMessageChannel.instance;
   if (s == "MessageEvent") return BlinkMessageEvent.instance;
   if (s == "MessagePort") return BlinkMessagePort.instance;
   if (s == "Metadata") return BlinkMetadata.instance;
+  if (s == "MetadataCallback") return BlinkMetadataCallback.instance;
   if (s == "MimeType") return BlinkMimeType.instance;
   if (s == "MimeTypeArray") return BlinkMimeTypeArray.instance;
   if (s == "MouseEvent") return BlinkMouseEvent.instance;
+  if (s == "MutationCallback") return BlinkMutationCallback.instance;
   if (s == "MutationEvent") return BlinkMutationEvent.instance;
   if (s == "MutationObserver") return BlinkMutationObserver.instance;
   if (s == "MutationRecord") return BlinkMutationRecord.instance;
   if (s == "NamedNodeMap") return BlinkNamedNodeMap.instance;
   if (s == "Navigator") return BlinkNavigator.instance;
+  if (s == "NavigatorCPU") return BlinkNavigatorCPU.instance;
+  if (s == "NavigatorID") return BlinkNavigatorID.instance;
+  if (s == "NavigatorLanguage") return BlinkNavigatorLanguage.instance;
+  if (s == "NavigatorOnLine") return BlinkNavigatorOnLine.instance;
+  if (s == "NavigatorStorageUtils") return BlinkNavigatorStorageUtils.instance;
   if (s == "NavigatorUserMediaError") return BlinkNavigatorUserMediaError.instance;
+  if (s == "NavigatorUserMediaErrorCallback") return BlinkNavigatorUserMediaErrorCallback.instance;
+  if (s == "NavigatorUserMediaSuccessCallback") return BlinkNavigatorUserMediaSuccessCallback.instance;
   if (s == "NetworkInformation") return BlinkNetworkInformation.instance;
   if (s == "Node") return BlinkNode.instance;
   if (s == "NodeFilter") return BlinkNodeFilter.instance;
   if (s == "NodeIterator") return BlinkNodeIterator.instance;
   if (s == "NodeList") return BlinkNodeList.instance;
+  if (s == "NonDocumentTypeChildNode") return BlinkNonDocumentTypeChildNode.instance;
+  if (s == "NonElementParentNode") return BlinkNonElementParentNode.instance;
   if (s == "Notification") return BlinkNotification.instance;
+  if (s == "NotificationEvent") return BlinkNotificationEvent.instance;
+  if (s == "NotificationPermissionCallback") return BlinkNotificationPermissionCallback.instance;
   if (s == "OESElementIndexUint") return BlinkOESElementIndexUint.instance;
   if (s == "OESStandardDerivatives") return BlinkOESStandardDerivatives.instance;
   if (s == "OESTextureFloat") return BlinkOESTextureFloat.instance;
@@ -323,57 +380,79 @@
   if (s == "OfflineAudioCompletionEvent") return BlinkOfflineAudioCompletionEvent.instance;
   if (s == "OfflineAudioContext") return BlinkOfflineAudioContext.instance;
   if (s == "OscillatorNode") return BlinkOscillatorNode.instance;
-  if (s == "OverflowEvent") return BlinkOverflowEvent.instance;
   if (s == "PagePopupController") return BlinkPagePopupController.instance;
   if (s == "PageTransitionEvent") return BlinkPageTransitionEvent.instance;
   if (s == "PannerNode") return BlinkPannerNode.instance;
+  if (s == "ParentNode") return BlinkParentNode.instance;
+  if (s == "PasswordCredential") return BlinkPasswordCredential.instance;
   if (s == "Path2D") return BlinkPath2D.instance;
   if (s == "Performance") return BlinkPerformance.instance;
+  if (s == "PerformanceCompositeTiming") return BlinkPerformanceCompositeTiming.instance;
   if (s == "PerformanceEntry") return BlinkPerformanceEntry.instance;
   if (s == "PerformanceMark") return BlinkPerformanceMark.instance;
   if (s == "PerformanceMeasure") return BlinkPerformanceMeasure.instance;
   if (s == "PerformanceNavigation") return BlinkPerformanceNavigation.instance;
+  if (s == "PerformanceRenderTiming") return BlinkPerformanceRenderTiming.instance;
   if (s == "PerformanceResourceTiming") return BlinkPerformanceResourceTiming.instance;
   if (s == "PerformanceTiming") return BlinkPerformanceTiming.instance;
+  if (s == "PeriodicSyncEvent") return BlinkPeriodicSyncEvent.instance;
+  if (s == "PeriodicSyncManager") return BlinkPeriodicSyncManager.instance;
+  if (s == "PeriodicSyncRegistration") return BlinkPeriodicSyncRegistration.instance;
   if (s == "PeriodicWave") return BlinkPeriodicWave.instance;
+  if (s == "PermissionStatus") return BlinkPermissionStatus.instance;
+  if (s == "Permissions") return BlinkPermissions.instance;
   if (s == "Plugin") return BlinkPlugin.instance;
   if (s == "PluginArray") return BlinkPluginArray.instance;
   if (s == "PluginPlaceholderElement") return BlinkPluginPlaceholderElement.instance;
+  if (s == "PointerEvent") return BlinkPointerEvent.instance;
   if (s == "PopStateEvent") return BlinkPopStateEvent.instance;
+  if (s == "PositionCallback") return BlinkPositionCallback.instance;
   if (s == "PositionError") return BlinkPositionError.instance;
+  if (s == "PositionErrorCallback") return BlinkPositionErrorCallback.instance;
+  if (s == "PositionSensorVRDevice") return BlinkPositionSensorVRDevice.instance;
   if (s == "Presentation") return BlinkPresentation.instance;
+  if (s == "PresentationAvailability") return BlinkPresentationAvailability.instance;
+  if (s == "PresentationSession") return BlinkPresentationSession.instance;
   if (s == "ProcessingInstruction") return BlinkProcessingInstruction.instance;
   if (s == "ProgressEvent") return BlinkProgressEvent.instance;
+  if (s == "PromiseRejectionEvent") return BlinkPromiseRejectionEvent.instance;
   if (s == "PushEvent") return BlinkPushEvent.instance;
   if (s == "PushManager") return BlinkPushManager.instance;
-  if (s == "PushRegistration") return BlinkPushRegistration.instance;
-  if (s == "RGBColor") return BlinkRGBColor.instance;
+  if (s == "PushMessageData") return BlinkPushMessageData.instance;
+  if (s == "PushSubscription") return BlinkPushSubscription.instance;
   if (s == "RTCDTMFSender") return BlinkRTCDTMFSender.instance;
   if (s == "RTCDTMFToneChangeEvent") return BlinkRTCDTMFToneChangeEvent.instance;
   if (s == "RTCDataChannel") return BlinkRTCDataChannel.instance;
   if (s == "RTCDataChannelEvent") return BlinkRTCDataChannelEvent.instance;
+  if (s == "RTCErrorCallback") return BlinkRTCErrorCallback.instance;
   if (s == "RTCIceCandidate") return BlinkRTCIceCandidate.instance;
   if (s == "RTCIceCandidateEvent") return BlinkRTCIceCandidateEvent.instance;
   if (s == "RTCPeerConnection") return BlinkRTCPeerConnection.instance;
   if (s == "RTCSessionDescription") return BlinkRTCSessionDescription.instance;
+  if (s == "RTCSessionDescriptionCallback") return BlinkRTCSessionDescriptionCallback.instance;
+  if (s == "RTCStatsCallback") return BlinkRTCStatsCallback.instance;
   if (s == "RTCStatsReport") return BlinkRTCStatsReport.instance;
   if (s == "RTCStatsResponse") return BlinkRTCStatsResponse.instance;
   if (s == "RadioNodeList") return BlinkRadioNodeList.instance;
   if (s == "Range") return BlinkRange.instance;
+  if (s == "ReadableByteStream") return BlinkReadableByteStream.instance;
+  if (s == "ReadableByteStreamReader") return BlinkReadableByteStreamReader.instance;
   if (s == "ReadableStream") return BlinkReadableStream.instance;
-  if (s == "Rect") return BlinkRect.instance;
+  if (s == "ReadableStreamReader") return BlinkReadableStreamReader.instance;
   if (s == "RelatedEvent") return BlinkRelatedEvent.instance;
   if (s == "Request") return BlinkRequest.instance;
+  if (s == "RequestAnimationFrameCallback") return BlinkRequestAnimationFrameCallback.instance;
   if (s == "ResourceProgressEvent") return BlinkResourceProgressEvent.instance;
   if (s == "Response") return BlinkResponse.instance;
   if (s == "SQLError") return BlinkSQLError.instance;
   if (s == "SQLResultSet") return BlinkSQLResultSet.instance;
   if (s == "SQLResultSetRowList") return BlinkSQLResultSetRowList.instance;
+  if (s == "SQLStatementCallback") return BlinkSQLStatementCallback.instance;
+  if (s == "SQLStatementErrorCallback") return BlinkSQLStatementErrorCallback.instance;
   if (s == "SQLTransaction") return BlinkSQLTransaction.instance;
+  if (s == "SQLTransactionCallback") return BlinkSQLTransactionCallback.instance;
+  if (s == "SQLTransactionErrorCallback") return BlinkSQLTransactionErrorCallback.instance;
   if (s == "SVGAElement") return BlinkSVGAElement.instance;
-  if (s == "SVGAltGlyphDefElement") return BlinkSVGAltGlyphDefElement.instance;
-  if (s == "SVGAltGlyphElement") return BlinkSVGAltGlyphElement.instance;
-  if (s == "SVGAltGlyphItemElement") return BlinkSVGAltGlyphItemElement.instance;
   if (s == "SVGAngle") return BlinkSVGAngle.instance;
   if (s == "SVGAnimateElement") return BlinkSVGAnimateElement.instance;
   if (s == "SVGAnimateMotionElement") return BlinkSVGAnimateMotionElement.instance;
@@ -426,20 +505,13 @@
   if (s == "SVGFETileElement") return BlinkSVGFETileElement.instance;
   if (s == "SVGFETurbulenceElement") return BlinkSVGFETurbulenceElement.instance;
   if (s == "SVGFilterElement") return BlinkSVGFilterElement.instance;
-  if (s == "SVGFontElement") return BlinkSVGFontElement.instance;
-  if (s == "SVGFontFaceElement") return BlinkSVGFontFaceElement.instance;
-  if (s == "SVGFontFaceFormatElement") return BlinkSVGFontFaceFormatElement.instance;
-  if (s == "SVGFontFaceNameElement") return BlinkSVGFontFaceNameElement.instance;
-  if (s == "SVGFontFaceSrcElement") return BlinkSVGFontFaceSrcElement.instance;
-  if (s == "SVGFontFaceUriElement") return BlinkSVGFontFaceUriElement.instance;
+  if (s == "SVGFilterPrimitiveStandardAttributes") return BlinkSVGFilterPrimitiveStandardAttributes.instance;
+  if (s == "SVGFitToViewBox") return BlinkSVGFitToViewBox.instance;
   if (s == "SVGForeignObjectElement") return BlinkSVGForeignObjectElement.instance;
   if (s == "SVGGElement") return BlinkSVGGElement.instance;
   if (s == "SVGGeometryElement") return BlinkSVGGeometryElement.instance;
-  if (s == "SVGGlyphElement") return BlinkSVGGlyphElement.instance;
-  if (s == "SVGGlyphRefElement") return BlinkSVGGlyphRefElement.instance;
   if (s == "SVGGradientElement") return BlinkSVGGradientElement.instance;
   if (s == "SVGGraphicsElement") return BlinkSVGGraphicsElement.instance;
-  if (s == "SVGHKernElement") return BlinkSVGHKernElement.instance;
   if (s == "SVGImageElement") return BlinkSVGImageElement.instance;
   if (s == "SVGLength") return BlinkSVGLength.instance;
   if (s == "SVGLengthList") return BlinkSVGLengthList.instance;
@@ -450,7 +522,6 @@
   if (s == "SVGMaskElement") return BlinkSVGMaskElement.instance;
   if (s == "SVGMatrix") return BlinkSVGMatrix.instance;
   if (s == "SVGMetadataElement") return BlinkSVGMetadataElement.instance;
-  if (s == "SVGMissingGlyphElement") return BlinkSVGMissingGlyphElement.instance;
   if (s == "SVGNumber") return BlinkSVGNumber.instance;
   if (s == "SVGNumberList") return BlinkSVGNumberList.instance;
   if (s == "SVGPathElement") return BlinkSVGPathElement.instance;
@@ -484,7 +555,6 @@
   if (s == "SVGRadialGradientElement") return BlinkSVGRadialGradientElement.instance;
   if (s == "SVGRect") return BlinkSVGRect.instance;
   if (s == "SVGRectElement") return BlinkSVGRectElement.instance;
-  if (s == "SVGRenderingIntent") return BlinkSVGRenderingIntent.instance;
   if (s == "SVGSVGElement") return BlinkSVGSVGElement.instance;
   if (s == "SVGScriptElement") return BlinkSVGScriptElement.instance;
   if (s == "SVGSetElement") return BlinkSVGSetElement.instance;
@@ -494,6 +564,7 @@
   if (s == "SVGSwitchElement") return BlinkSVGSwitchElement.instance;
   if (s == "SVGSymbolElement") return BlinkSVGSymbolElement.instance;
   if (s == "SVGTSpanElement") return BlinkSVGTSpanElement.instance;
+  if (s == "SVGTests") return BlinkSVGTests.instance;
   if (s == "SVGTextContentElement") return BlinkSVGTextContentElement.instance;
   if (s == "SVGTextElement") return BlinkSVGTextElement.instance;
   if (s == "SVGTextPathElement") return BlinkSVGTextPathElement.instance;
@@ -501,24 +572,29 @@
   if (s == "SVGTitleElement") return BlinkSVGTitleElement.instance;
   if (s == "SVGTransform") return BlinkSVGTransform.instance;
   if (s == "SVGTransformList") return BlinkSVGTransformList.instance;
+  if (s == "SVGURIReference") return BlinkSVGURIReference.instance;
   if (s == "SVGUnitTypes") return BlinkSVGUnitTypes.instance;
   if (s == "SVGUseElement") return BlinkSVGUseElement.instance;
-  if (s == "SVGVKernElement") return BlinkSVGVKernElement.instance;
   if (s == "SVGViewElement") return BlinkSVGViewElement.instance;
   if (s == "SVGViewSpec") return BlinkSVGViewSpec.instance;
+  if (s == "SVGZoomAndPan") return BlinkSVGZoomAndPan.instance;
   if (s == "SVGZoomEvent") return BlinkSVGZoomEvent.instance;
   if (s == "Screen") return BlinkScreen.instance;
   if (s == "ScreenOrientation") return BlinkScreenOrientation.instance;
   if (s == "ScriptProcessorNode") return BlinkScriptProcessorNode.instance;
+  if (s == "ScrollState") return BlinkScrollState.instance;
   if (s == "SecurityPolicyViolationEvent") return BlinkSecurityPolicyViolationEvent.instance;
   if (s == "Selection") return BlinkSelection.instance;
+  if (s == "ServicePort") return BlinkServicePort.instance;
+  if (s == "ServicePortCollection") return BlinkServicePortCollection.instance;
+  if (s == "ServicePortConnectEvent") return BlinkServicePortConnectEvent.instance;
   if (s == "ServiceWorker") return BlinkServiceWorker.instance;
-  if (s == "ServiceWorkerClient") return BlinkServiceWorkerClient.instance;
-  if (s == "ServiceWorkerClients") return BlinkServiceWorkerClients.instance;
   if (s == "ServiceWorkerContainer") return BlinkServiceWorkerContainer.instance;
   if (s == "ServiceWorkerGlobalScope") return BlinkServiceWorkerGlobalScope.instance;
+  if (s == "ServiceWorkerMessageEvent") return BlinkServiceWorkerMessageEvent.instance;
   if (s == "ServiceWorkerRegistration") return BlinkServiceWorkerRegistration.instance;
   if (s == "ShadowRoot") return BlinkShadowRoot.instance;
+  if (s == "SharedArrayBuffer") return BlinkSharedArrayBuffer.instance;
   if (s == "SharedWorker") return BlinkSharedWorker.instance;
   if (s == "SharedWorkerGlobalScope") return BlinkSharedWorkerGlobalScope.instance;
   if (s == "SourceBuffer") return BlinkSourceBuffer.instance;
@@ -536,18 +612,26 @@
   if (s == "SpeechSynthesisEvent") return BlinkSpeechSynthesisEvent.instance;
   if (s == "SpeechSynthesisUtterance") return BlinkSpeechSynthesisUtterance.instance;
   if (s == "SpeechSynthesisVoice") return BlinkSpeechSynthesisVoice.instance;
+  if (s == "StashedMessagePort") return BlinkStashedMessagePort.instance;
+  if (s == "StashedPortCollection") return BlinkStashedPortCollection.instance;
+  if (s == "StereoPannerNode") return BlinkStereoPannerNode.instance;
   if (s == "Storage") return BlinkStorage.instance;
+  if (s == "StorageErrorCallback") return BlinkStorageErrorCallback.instance;
   if (s == "StorageEvent") return BlinkStorageEvent.instance;
   if (s == "StorageInfo") return BlinkStorageInfo.instance;
   if (s == "StorageQuota") return BlinkStorageQuota.instance;
+  if (s == "StorageQuotaCallback") return BlinkStorageQuotaCallback.instance;
+  if (s == "StorageUsageCallback") return BlinkStorageUsageCallback.instance;
   if (s == "Stream") return BlinkStream.instance;
+  if (s == "StringCallback") return BlinkStringCallback.instance;
   if (s == "StyleMedia") return BlinkStyleMedia.instance;
   if (s == "StyleSheet") return BlinkStyleSheet.instance;
   if (s == "StyleSheetList") return BlinkStyleSheetList.instance;
   if (s == "SubtleCrypto") return BlinkSubtleCrypto.instance;
+  if (s == "SyncEvent") return BlinkSyncEvent.instance;
+  if (s == "SyncManager") return BlinkSyncManager.instance;
+  if (s == "SyncRegistration") return BlinkSyncRegistration.instance;
   if (s == "Text") return BlinkText.instance;
-  if (s == "TextDecoder") return BlinkTextDecoder.instance;
-  if (s == "TextEncoder") return BlinkTextEncoder.instance;
   if (s == "TextEvent") return BlinkTextEvent.instance;
   if (s == "TextMetrics") return BlinkTextMetrics.instance;
   if (s == "TextTrack") return BlinkTextTrack.instance;
@@ -555,15 +639,27 @@
   if (s == "TextTrackCueList") return BlinkTextTrackCueList.instance;
   if (s == "TextTrackList") return BlinkTextTrackList.instance;
   if (s == "TimeRanges") return BlinkTimeRanges.instance;
-  if (s == "Timing") return BlinkTiming.instance;
+  if (s == "TimeoutHandler") return BlinkTimeoutHandler.instance;
   if (s == "Touch") return BlinkTouch.instance;
   if (s == "TouchEvent") return BlinkTouchEvent.instance;
   if (s == "TouchList") return BlinkTouchList.instance;
+  if (s == "TrackDefault") return BlinkTrackDefault.instance;
+  if (s == "TrackDefaultList") return BlinkTrackDefaultList.instance;
   if (s == "TrackEvent") return BlinkTrackEvent.instance;
   if (s == "TransitionEvent") return BlinkTransitionEvent.instance;
   if (s == "TreeWalker") return BlinkTreeWalker.instance;
   if (s == "UIEvent") return BlinkUIEvent.instance;
   if (s == "URL") return BlinkURL.instance;
+  if (s == "URLUtils") return BlinkURLUtils.instance;
+  if (s == "URLUtilsReadOnly") return BlinkURLUtilsReadOnly.instance;
+  if (s == "Uint16Array") return BlinkUint16Array.instance;
+  if (s == "Uint32Array") return BlinkUint32Array.instance;
+  if (s == "Uint8Array") return BlinkUint8Array.instance;
+  if (s == "Uint8ClampedArray") return BlinkUint8ClampedArray.instance;
+  if (s == "VRDevice") return BlinkVRDevice.instance;
+  if (s == "VREyeParameters") return BlinkVREyeParameters.instance;
+  if (s == "VRFieldOfView") return BlinkVRFieldOfView.instance;
+  if (s == "VRPositionState") return BlinkVRPositionState.instance;
   if (s == "VTTCue") return BlinkVTTCue.instance;
   if (s == "VTTRegion") return BlinkVTTRegion.instance;
   if (s == "VTTRegionList") return BlinkVTTRegionList.instance;
@@ -571,14 +667,16 @@
   if (s == "VideoPlaybackQuality") return BlinkVideoPlaybackQuality.instance;
   if (s == "VideoTrack") return BlinkVideoTrack.instance;
   if (s == "VideoTrackList") return BlinkVideoTrackList.instance;
+  if (s == "VoidCallback") return BlinkVoidCallback.instance;
   if (s == "WaveShaperNode") return BlinkWaveShaperNode.instance;
+  if (s == "WebGL2RenderingContext") return BlinkWebGL2RenderingContext.instance;
+  if (s == "WebGL2RenderingContextBase") return BlinkWebGL2RenderingContextBase.instance;
   if (s == "WebGLActiveInfo") return BlinkWebGLActiveInfo.instance;
   if (s == "WebGLBuffer") return BlinkWebGLBuffer.instance;
   if (s == "WebGLCompressedTextureATC") return BlinkWebGLCompressedTextureATC.instance;
   if (s == "WebGLCompressedTextureETC1") return BlinkWebGLCompressedTextureETC1.instance;
   if (s == "WebGLCompressedTexturePVRTC") return BlinkWebGLCompressedTexturePVRTC.instance;
   if (s == "WebGLCompressedTextureS3TC") return BlinkWebGLCompressedTextureS3TC.instance;
-  if (s == "WebGLContextAttributes") return BlinkWebGLContextAttributes.instance;
   if (s == "WebGLContextEvent") return BlinkWebGLContextEvent.instance;
   if (s == "WebGLDebugRendererInfo") return BlinkWebGLDebugRendererInfo.instance;
   if (s == "WebGLDebugShaders") return BlinkWebGLDebugShaders.instance;
@@ -587,23 +685,27 @@
   if (s == "WebGLFramebuffer") return BlinkWebGLFramebuffer.instance;
   if (s == "WebGLLoseContext") return BlinkWebGLLoseContext.instance;
   if (s == "WebGLProgram") return BlinkWebGLProgram.instance;
+  if (s == "WebGLQuery") return BlinkWebGLQuery.instance;
   if (s == "WebGLRenderbuffer") return BlinkWebGLRenderbuffer.instance;
   if (s == "WebGLRenderingContext") return BlinkWebGLRenderingContext.instance;
+  if (s == "WebGLRenderingContextBase") return BlinkWebGLRenderingContextBase.instance;
+  if (s == "WebGLSampler") return BlinkWebGLSampler.instance;
   if (s == "WebGLShader") return BlinkWebGLShader.instance;
   if (s == "WebGLShaderPrecisionFormat") return BlinkWebGLShaderPrecisionFormat.instance;
+  if (s == "WebGLSync") return BlinkWebGLSync.instance;
   if (s == "WebGLTexture") return BlinkWebGLTexture.instance;
+  if (s == "WebGLTransformFeedback") return BlinkWebGLTransformFeedback.instance;
   if (s == "WebGLUniformLocation") return BlinkWebGLUniformLocation.instance;
+  if (s == "WebGLVertexArrayObject") return BlinkWebGLVertexArrayObject.instance;
   if (s == "WebGLVertexArrayObjectOES") return BlinkWebGLVertexArrayObjectOES.instance;
-  if (s == "WebKitAnimationEvent") return BlinkWebKitAnimationEvent.instance;
-  if (s == "WebKitCSSFilterRule") return BlinkWebKitCSSFilterRule.instance;
-  if (s == "WebKitCSSFilterValue") return BlinkWebKitCSSFilterValue.instance;
   if (s == "WebKitCSSMatrix") return BlinkWebKitCSSMatrix.instance;
-  if (s == "WebKitCSSTransformValue") return BlinkWebKitCSSTransformValue.instance;
-  if (s == "WebKitGamepad") return BlinkWebKitGamepad.instance;
-  if (s == "WebKitGamepadList") return BlinkWebKitGamepadList.instance;
   if (s == "WebSocket") return BlinkWebSocket.instance;
   if (s == "WheelEvent") return BlinkWheelEvent.instance;
   if (s == "Window") return BlinkWindow.instance;
+  if (s == "WindowBase64") return BlinkWindowBase64.instance;
+  if (s == "WindowClient") return BlinkWindowClient.instance;
+  if (s == "WindowEventHandlers") return BlinkWindowEventHandlers.instance;
+  if (s == "WindowTimers") return BlinkWindowTimers.instance;
   if (s == "Worker") return BlinkWorker.instance;
   if (s == "WorkerConsole") return BlinkWorkerConsole.instance;
   if (s == "WorkerGlobalScope") return BlinkWorkerGlobalScope.instance;
@@ -621,6 +723,7 @@
   if (s == "XPathNSResolver") return BlinkXPathNSResolver.instance;
   if (s == "XPathResult") return BlinkXPathResult.instance;
   if (s == "XSLTProcessor") return BlinkXSLTProcessor.instance;
+
   // Failed to find it, check for custom renames
   dynamic obj = resolverMap[s];
   if (obj != null) return obj;
@@ -650,6 +753,15 @@
 
 }
 
+class BlinkAbstractWorker {
+  static final instance = new BlinkAbstractWorker();
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+}
+
 class BlinkAnalyserNode extends BlinkAudioNode {
   static final instance = new BlinkAnalyserNode();
 
@@ -659,6 +771,18 @@
 
   frequencyBinCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frequencyBinCount");
 
+  maxDecibels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxDecibels");
+
+  maxDecibels_Setter_(mthis, __arg_0) => mthis["maxDecibels"] = __arg_0;
+
+  minDecibels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minDecibels");
+
+  minDecibels_Setter_(mthis, __arg_0) => mthis["minDecibels"] = __arg_0;
+
+  smoothingTimeConstant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "smoothingTimeConstant");
+
+  smoothingTimeConstant_Setter_(mthis, __arg_0) => mthis["smoothingTimeConstant"] = __arg_0;
+
   getByteFrequencyData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getByteFrequencyData", []);
 
   getByteFrequencyData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getByteFrequencyData", [__arg_0]);
@@ -675,99 +799,129 @@
 
   getFloatTimeDomainData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFloatTimeDomainData", [__arg_0]);
 
-  maxDecibels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxDecibels");
-
-  maxDecibels_Setter_(mthis, __arg_0) => mthis["maxDecibels"] = __arg_0;
-
-  minDecibels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minDecibels");
-
-  minDecibels_Setter_(mthis, __arg_0) => mthis["minDecibels"] = __arg_0;
-
-  smoothingTimeConstant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "smoothingTimeConstant");
-
-  smoothingTimeConstant_Setter_(mthis, __arg_0) => mthis["smoothingTimeConstant"] = __arg_0;
-
 }
 
-class BlinkAnimation extends BlinkAnimationNode {
+class BlinkAnimation extends BlinkEventTarget {
   static final instance = new BlinkAnimation();
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Animation"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Animation"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Animation"), [__arg_0, __arg_1]);
-
-  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Animation"), [__arg_0, __arg_1, __arg_2]);
-
-}
-
-class BlinkAnimationEffect {
-  static final instance = new BlinkAnimationEffect();
-
-}
-
-class BlinkAnimationNode {
-  static final instance = new BlinkAnimationNode();
-
-  activeDuration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeDuration");
-
-  currentIteration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentIteration");
-
-  duration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "duration");
-
-  endTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endTime");
-
-  localTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "localTime");
-
-  player_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "player");
-
-  startTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startTime");
-
-  timing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timing");
-
-}
-
-class BlinkAnimationPlayer extends BlinkEventTarget {
-  static final instance = new BlinkAnimationPlayer();
-
-  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
-
   currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
 
   currentTime_Setter_(mthis, __arg_0) => mthis["currentTime"] = __arg_0;
 
-  finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
+  effect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "effect");
+
+  effect_Setter_(mthis, __arg_0) => mthis["effect"] = __arg_0;
+
+  endClip_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endClip");
+
+  endClip_Setter_(mthis, __arg_0) => mthis["endClip"] = __arg_0;
+
+  finished_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "finished");
 
   onfinish_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfinish");
 
   onfinish_Setter_(mthis, __arg_0) => mthis["onfinish"] = __arg_0;
 
-  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
-
   playState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playState");
 
-  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
-
   playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
 
   playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
 
-  reverse_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reverse", []);
+  ready_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ready");
 
-  source_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "source");
+  startClip_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startClip");
 
-  source_Setter_(mthis, __arg_0) => mthis["source"] = __arg_0;
+  startClip_Setter_(mthis, __arg_0) => mthis["startClip"] = __arg_0;
 
   startTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startTime");
 
   startTime_Setter_(mthis, __arg_0) => mthis["startTime"] = __arg_0;
 
+  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
+
+  finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
+
+  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
+
+  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
+
+  reverse_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reverse", []);
+
+}
+
+class BlinkAnimationEffectReadOnly {
+  static final instance = new BlinkAnimationEffectReadOnly();
+
+  computedTiming_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "computedTiming");
+
+  timing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timing");
+
+}
+
+class BlinkAnimationEffectTiming {
+  static final instance = new BlinkAnimationEffectTiming();
+
+  delay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "delay");
+
+  delay_Setter_(mthis, __arg_0) => mthis["delay"] = __arg_0;
+
+  direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
+
+  direction_Setter_(mthis, __arg_0) => mthis["direction"] = __arg_0;
+
+  duration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "duration");
+
+  duration_Setter_(mthis, __arg_0) => mthis["duration"] = __arg_0;
+
+  easing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "easing");
+
+  easing_Setter_(mthis, __arg_0) => mthis["easing"] = __arg_0;
+
+  endDelay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endDelay");
+
+  endDelay_Setter_(mthis, __arg_0) => mthis["endDelay"] = __arg_0;
+
+  fill_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fill");
+
+  fill_Setter_(mthis, __arg_0) => mthis["fill"] = __arg_0;
+
+  iterationStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iterationStart");
+
+  iterationStart_Setter_(mthis, __arg_0) => mthis["iterationStart"] = __arg_0;
+
+  iterations_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iterations");
+
+  iterations_Setter_(mthis, __arg_0) => mthis["iterations"] = __arg_0;
+
+  playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
+
+  playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
+
+}
+
+class BlinkAnimationEvent extends BlinkEvent {
+  static final instance = new BlinkAnimationEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationEvent"), [__arg_0, __arg_1]);
+
+  animationName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "animationName");
+
+  elapsedTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "elapsedTime");
+
 }
 
 class BlinkAnimationPlayerEvent extends BlinkEvent {
   static final instance = new BlinkAnimationPlayerEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationPlayerEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationPlayerEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AnimationPlayerEvent"), [__arg_0, __arg_1]);
 
   currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
@@ -781,7 +935,13 @@
 
   currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
 
-  getAnimationPlayers_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAnimationPlayers", []);
+  currentTime_Setter_(mthis, __arg_0) => mthis["currentTime"] = __arg_0;
+
+  playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
+
+  playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
+
+  getAnimations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAnimations", []);
 
   play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
 
@@ -789,11 +949,18 @@
 
 }
 
+class BlinkAppBannerPromptResult {
+  static final instance = new BlinkAppBannerPromptResult();
+
+  outcome_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outcome");
+
+  platform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platform");
+
+}
+
 class BlinkApplicationCache extends BlinkEventTarget {
   static final instance = new BlinkApplicationCache();
 
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
   oncached_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncached");
 
   oncached_Setter_(mthis, __arg_0) => mthis["oncached"] = __arg_0;
@@ -828,6 +995,8 @@
 
   status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
 
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
   swapCache_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "swapCache", []);
 
   update_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "update", []);
@@ -837,6 +1006,10 @@
 class BlinkApplicationCacheErrorEvent extends BlinkEvent {
   static final instance = new BlinkApplicationCacheErrorEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ApplicationCacheErrorEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ApplicationCacheErrorEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ApplicationCacheErrorEvent"), [__arg_0, __arg_1]);
 
   message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
@@ -849,6 +1022,24 @@
 
 }
 
+class BlinkArrayBuffer {
+  static final instance = new BlinkArrayBuffer();
+
+  byteLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "byteLength");
+
+}
+
+class BlinkArrayBufferView {
+  static final instance = new BlinkArrayBufferView();
+
+  buffer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buffer");
+
+  byteLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "byteLength");
+
+  byteOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "byteOffset");
+
+}
+
 class BlinkAttr extends BlinkNode {
   static final instance = new BlinkAttr();
 
@@ -883,16 +1074,41 @@
 
   duration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "duration");
 
-  getChannelData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getChannelData", []);
-
-  getChannelData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getChannelData", [__arg_0]);
-
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   numberOfChannels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfChannels");
 
   sampleRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sampleRate");
 
+  copyFromChannel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyFromChannel", []);
+
+  copyFromChannel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyFromChannel", [__arg_0]);
+
+  copyFromChannel_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyFromChannel", [__arg_0, __arg_1]);
+
+  copyFromChannel_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyFromChannel", [__arg_0, __arg_1, __arg_2]);
+
+  copyToChannel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyToChannel", []);
+
+  copyToChannel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyToChannel", [__arg_0]);
+
+  copyToChannel_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyToChannel", [__arg_0, __arg_1]);
+
+  copyToChannel_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyToChannel", [__arg_0, __arg_1, __arg_2]);
+
+  getChannelData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getChannelData", []);
+
+  getChannelData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getChannelData", [__arg_0]);
+
+}
+
+class BlinkAudioBufferCallback {
+  static final instance = new BlinkAudioBufferCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
 }
 
 class BlinkAudioBufferSourceNode extends BlinkAudioSourceNode {
@@ -902,6 +1118,12 @@
 
   buffer_Setter_(mthis, __arg_0) => mthis["buffer"] = __arg_0;
 
+  detune_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "detune");
+
+  loop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loop");
+
+  loop_Setter_(mthis, __arg_0) => mthis["loop"] = __arg_0;
+
   loopEnd_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loopEnd");
 
   loopEnd_Setter_(mthis, __arg_0) => mthis["loopEnd"] = __arg_0;
@@ -910,10 +1132,6 @@
 
   loopStart_Setter_(mthis, __arg_0) => mthis["loopStart"] = __arg_0;
 
-  loop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loop");
-
-  loop_Setter_(mthis, __arg_0) => mthis["loop"] = __arg_0;
-
   onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
 
   onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
@@ -939,18 +1157,34 @@
 
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AudioContext"), []);
 
+  currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
+
+  destination_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "destination");
+
+  listener_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "listener");
+
+  onstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstatechange");
+
+  onstatechange_Setter_(mthis, __arg_0) => mthis["onstatechange"] = __arg_0;
+
+  sampleRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sampleRate");
+
+  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
   createAnalyser_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createAnalyser", []);
 
   createBiquadFilter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBiquadFilter", []);
 
-  createBufferSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBufferSource", []);
-
   createBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", [__arg_0]);
 
   createBuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", [__arg_0, __arg_1]);
 
   createBuffer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", [__arg_0, __arg_1, __arg_2]);
 
+  createBufferSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBufferSource", []);
+
   createChannelMerger_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createChannelMerger", []);
 
   createChannelMerger_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createChannelMerger", [__arg_0]);
@@ -997,9 +1231,9 @@
 
   createScriptProcessor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createScriptProcessor", [__arg_0, __arg_1, __arg_2]);
 
-  createWaveShaper_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWaveShaper", []);
+  createStereoPanner_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createStereoPanner", []);
 
-  currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
+  createWaveShaper_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWaveShaper", []);
 
   decodeAudioData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "decodeAudioData", []);
 
@@ -1009,17 +1243,9 @@
 
   decodeAudioData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "decodeAudioData", [__arg_0, __arg_1, __arg_2]);
 
-  destination_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "destination");
+  resume_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resume", []);
 
-  listener_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "listener");
-
-  oncomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncomplete");
-
-  oncomplete_Setter_(mthis, __arg_0) => mthis["oncomplete"] = __arg_0;
-
-  sampleRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sampleRate");
-
-  startRendering_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "startRendering", []);
+  suspend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "suspend", []);
 
 }
 
@@ -1037,6 +1263,10 @@
 
   dopplerFactor_Setter_(mthis, __arg_0) => mthis["dopplerFactor"] = __arg_0;
 
+  speedOfSound_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speedOfSound");
+
+  speedOfSound_Setter_(mthis, __arg_0) => mthis["speedOfSound"] = __arg_0;
+
   setOrientation_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "setOrientation", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   setOrientation_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "setOrientation", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
@@ -1055,27 +1285,29 @@
 
   setVelocity_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setVelocity", [__arg_0, __arg_1, __arg_2]);
 
-  speedOfSound_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speedOfSound");
-
-  speedOfSound_Setter_(mthis, __arg_0) => mthis["speedOfSound"] = __arg_0;
-
 }
 
 class BlinkAudioNode extends BlinkEventTarget {
   static final instance = new BlinkAudioNode();
 
-  channelCountMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "channelCountMode");
-
-  channelCountMode_Setter_(mthis, __arg_0) => mthis["channelCountMode"] = __arg_0;
-
   channelCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "channelCount");
 
   channelCount_Setter_(mthis, __arg_0) => mthis["channelCount"] = __arg_0;
 
+  channelCountMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "channelCountMode");
+
+  channelCountMode_Setter_(mthis, __arg_0) => mthis["channelCountMode"] = __arg_0;
+
   channelInterpretation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "channelInterpretation");
 
   channelInterpretation_Setter_(mthis, __arg_0) => mthis["channelInterpretation"] = __arg_0;
 
+  context_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "context");
+
+  numberOfInputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfInputs");
+
+  numberOfOutputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfOutputs");
+
   connect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "connect", []);
 
   connect_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "connect", [__arg_0]);
@@ -1084,27 +1316,29 @@
 
   connect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "connect", [__arg_0, __arg_1, __arg_2]);
 
-  context_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "context");
-
   disconnect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disconnect", []);
 
   disconnect_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disconnect", [__arg_0]);
 
-  numberOfInputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfInputs");
+  disconnect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "disconnect", [__arg_0, __arg_1]);
 
-  numberOfOutputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfOutputs");
+  disconnect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "disconnect", [__arg_0, __arg_1, __arg_2]);
 
 }
 
 class BlinkAudioParam {
   static final instance = new BlinkAudioParam();
 
+  defaultValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultValue");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
   cancelScheduledValues_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancelScheduledValues", []);
 
   cancelScheduledValues_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancelScheduledValues", [__arg_0]);
 
-  defaultValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultValue");
-
   exponentialRampToValueAtTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "exponentialRampToValueAtTime", []);
 
   exponentialRampToValueAtTime_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "exponentialRampToValueAtTime", [__arg_0]);
@@ -1135,10 +1369,6 @@
 
   setValueCurveAtTime_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setValueCurveAtTime", [__arg_0, __arg_1, __arg_2]);
 
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
 }
 
 class BlinkAudioProcessingEvent extends BlinkEvent {
@@ -1177,12 +1407,6 @@
 class BlinkAudioTrackList extends BlinkEventTarget {
   static final instance = new BlinkAudioTrackList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
-
-  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
-
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   onaddtrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddtrack");
@@ -1197,11 +1421,21 @@
 
   onremovetrack_Setter_(mthis, __arg_0) => mthis["onremovetrack"] = __arg_0;
 
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
+
+  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
+
 }
 
 class BlinkAutocompleteErrorEvent extends BlinkEvent {
   static final instance = new BlinkAutocompleteErrorEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AutocompleteErrorEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AutocompleteErrorEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "AutocompleteErrorEvent"), [__arg_0, __arg_1]);
 
   reason_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "reason");
@@ -1218,10 +1452,10 @@
 class BlinkBatteryManager extends BlinkEventTarget {
   static final instance = new BlinkBatteryManager();
 
-  chargingTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chargingTime");
-
   charging_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charging");
 
+  chargingTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chargingTime");
+
   dischargingTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dischargingTime");
 
   level_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "level");
@@ -1244,6 +1478,23 @@
 
 }
 
+class BlinkBeforeInstallPromptEvent extends BlinkEvent {
+  static final instance = new BlinkBeforeInstallPromptEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "BeforeInstallPromptEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "BeforeInstallPromptEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "BeforeInstallPromptEvent"), [__arg_0, __arg_1]);
+
+  platforms_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platforms");
+
+  userChoice_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "userChoice");
+
+  prompt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prompt", []);
+
+}
+
 class BlinkBeforeUnloadEvent extends BlinkEvent {
   static final instance = new BlinkBeforeUnloadEvent();
 
@@ -1264,31 +1515,35 @@
 
   gain_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gain");
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
   getFrequencyResponse_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFrequencyResponse", [__arg_0]);
 
   getFrequencyResponse_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFrequencyResponse", [__arg_0, __arg_1]);
 
   getFrequencyResponse_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getFrequencyResponse", [__arg_0, __arg_1, __arg_2]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
-
 }
 
 class BlinkBlob {
   static final instance = new BlinkBlob();
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Blob"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Blob"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Blob"), [__arg_0, __arg_1]);
 
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Blob"), [__arg_0, __arg_1, __arg_2]);
+
   size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
   slice_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "slice", []);
 
   slice_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "slice", [__arg_0]);
@@ -1297,19 +1552,107 @@
 
   slice_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "slice", [__arg_0, __arg_1, __arg_2]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+}
+
+class BlinkBluetooth {
+  static final instance = new BlinkBluetooth();
+
+  requestDevice_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestDevice", []);
+
+  requestDevice_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestDevice", [__arg_0]);
+
+}
+
+class BlinkBluetoothDevice {
+  static final instance = new BlinkBluetoothDevice();
+
+  deviceClass_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deviceClass");
+
+  instanceID_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "instanceID");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  paired_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "paired");
+
+  productID_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "productID");
+
+  productVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "productVersion");
+
+  vendorID_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendorID");
+
+  vendorIDSource_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendorIDSource");
+
+  connectGATT_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "connectGATT", []);
+
+}
+
+class BlinkBluetoothGATTCharacteristic {
+  static final instance = new BlinkBluetoothGATTCharacteristic();
+
+  uuid_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "uuid");
+
+  readValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readValue", []);
+
+  writeValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "writeValue", []);
+
+  writeValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "writeValue", [__arg_0]);
+
+}
+
+class BlinkBluetoothGATTRemoteServer {
+  static final instance = new BlinkBluetoothGATTRemoteServer();
+
+  connected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connected");
+
+  getPrimaryService_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getPrimaryService", []);
+
+  getPrimaryService_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getPrimaryService", [__arg_0]);
+
+}
+
+class BlinkBluetoothGATTService {
+  static final instance = new BlinkBluetoothGATTService();
+
+  isPrimary_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isPrimary");
+
+  uuid_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "uuid");
+
+  getCharacteristic_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCharacteristic", []);
+
+  getCharacteristic_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getCharacteristic", [__arg_0]);
+
+}
+
+class BlinkBluetoothUUID {
+  static final instance = new BlinkBluetoothUUID();
+
+  canonicalUUID_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "canonicalUUID", []);
+
+  canonicalUUID_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "canonicalUUID", [__arg_0]);
+
+  getCharacteristic_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getCharacteristic", []);
+
+  getCharacteristic_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getCharacteristic", [__arg_0]);
+
+  getDescriptor_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getDescriptor", []);
+
+  getDescriptor_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getDescriptor", [__arg_0]);
+
+  getService_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getService", []);
+
+  getService_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "BluetoothUUID"), "getService", [__arg_0]);
 
 }
 
 class BlinkBody {
   static final instance = new BlinkBody();
 
+  bodyUsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bodyUsed");
+
   arrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "arrayBuffer", []);
 
   blob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blob", []);
 
-  bodyUsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bodyUsed");
-
   json_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "json", []);
 
   text_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "text", []);
@@ -1321,14 +1664,56 @@
 
 }
 
+class BlinkCHROMIUMSubscribeUniform {
+  static final instance = new BlinkCHROMIUMSubscribeUniform();
+
+  bindValuebufferCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindValuebufferCHROMIUM", []);
+
+  bindValuebufferCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindValuebufferCHROMIUM", [__arg_0]);
+
+  bindValuebufferCHROMIUM_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindValuebufferCHROMIUM", [__arg_0, __arg_1]);
+
+  createValuebufferCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createValuebufferCHROMIUM", []);
+
+  deleteValuebufferCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteValuebufferCHROMIUM", []);
+
+  deleteValuebufferCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteValuebufferCHROMIUM", [__arg_0]);
+
+  isValuebufferCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isValuebufferCHROMIUM", []);
+
+  isValuebufferCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isValuebufferCHROMIUM", [__arg_0]);
+
+  populateSubscribedValuesCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "populateSubscribedValuesCHROMIUM", []);
+
+  populateSubscribedValuesCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "populateSubscribedValuesCHROMIUM", [__arg_0]);
+
+  subscribeValueCHROMIUM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "subscribeValueCHROMIUM", []);
+
+  subscribeValueCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "subscribeValueCHROMIUM", [__arg_0]);
+
+  subscribeValueCHROMIUM_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "subscribeValueCHROMIUM", [__arg_0, __arg_1]);
+
+  uniformValuebufferCHROMIUM_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformValuebufferCHROMIUM", [__arg_0]);
+
+  uniformValuebufferCHROMIUM_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformValuebufferCHROMIUM", [__arg_0, __arg_1]);
+
+  uniformValuebufferCHROMIUM_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformValuebufferCHROMIUM", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkCHROMIUMValuebuffer {
+  static final instance = new BlinkCHROMIUMValuebuffer();
+
+}
+
 class BlinkCSS {
   static final instance = new BlinkCSS();
 
-  supports_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "supports", []);
+  supports_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "CSS"), "supports", []);
 
-  supports_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "supports", [__arg_0]);
+  supports_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "CSS"), "supports", [__arg_0]);
 
-  supports_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "supports", [__arg_0, __arg_1]);
+  supports_Callback_2_(__arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "CSS"), "supports", [__arg_0, __arg_1]);
 
 }
 
@@ -1348,6 +1733,23 @@
 
 }
 
+class BlinkCSSGroupingRule extends BlinkCSSRule {
+  static final instance = new BlinkCSSGroupingRule();
+
+  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
+
+  deleteRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", []);
+
+  deleteRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", [__arg_0]);
+
+  insertRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", []);
+
+  insertRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0]);
+
+  insertRule_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0, __arg_1]);
+
+}
+
 class BlinkCSSImportRule extends BlinkCSSRule {
   static final instance = new BlinkCSSImportRule();
 
@@ -1373,9 +1775,17 @@
 class BlinkCSSKeyframesRule extends BlinkCSSRule {
   static final instance = new BlinkCSSKeyframesRule();
 
+  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
-  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
+  appendRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendRule", []);
+
+  appendRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendRule", [__arg_0]);
 
   deleteRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", []);
 
@@ -1385,31 +1795,11 @@
 
   findRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "findRule", [__arg_0]);
 
-  insertRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", []);
-
-  insertRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0]);
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
-
 }
 
-class BlinkCSSMediaRule extends BlinkCSSRule {
+class BlinkCSSMediaRule extends BlinkCSSGroupingRule {
   static final instance = new BlinkCSSMediaRule();
 
-  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
-
-  deleteRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", []);
-
-  deleteRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", [__arg_0]);
-
-  insertRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", []);
-
-  insertRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0]);
-
-  insertRule_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0, __arg_1]);
-
   media_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "media");
 
 }
@@ -1425,37 +1815,6 @@
 
 }
 
-class BlinkCSSPrimitiveValue extends BlinkCSSValue {
-  static final instance = new BlinkCSSPrimitiveValue();
-
-  getCounterValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCounterValue", []);
-
-  getFloatValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getFloatValue", []);
-
-  getFloatValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFloatValue", [__arg_0]);
-
-  getRGBColorValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRGBColorValue", []);
-
-  getRectValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRectValue", []);
-
-  getStringValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStringValue", []);
-
-  primitiveType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "primitiveType");
-
-  setFloatValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setFloatValue", []);
-
-  setFloatValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setFloatValue", [__arg_0]);
-
-  setFloatValue_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setFloatValue", [__arg_0, __arg_1]);
-
-  setStringValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStringValue", []);
-
-  setStringValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setStringValue", [__arg_0]);
-
-  setStringValue_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setStringValue", [__arg_0, __arg_1]);
-
-}
-
 class BlinkCSSRule {
   static final instance = new BlinkCSSRule();
 
@@ -1474,29 +1833,31 @@
 class BlinkCSSRuleList {
   static final instance = new BlinkCSSRuleList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkCSSStyleDeclaration {
   static final instance = new BlinkCSSStyleDeclaration();
 
+  cssText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssText");
+
+  cssText_Setter_(mthis, __arg_0) => mthis["cssText"] = __arg_0;
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  parentRule_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "parentRule");
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
   $__propertyQuery___Callback_1_(mthis, __arg_0) => mthis[__arg_0];
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
-  cssText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssText");
-
-  cssText_Setter_(mthis, __arg_0) => mthis["cssText"] = __arg_0;
-
   getPropertyPriority_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getPropertyPriority", []);
 
   getPropertyPriority_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getPropertyPriority", [__arg_0]);
@@ -1509,16 +1870,10 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  parentRule_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "parentRule");
-
   removeProperty_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeProperty", []);
 
   removeProperty_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeProperty", [__arg_0]);
 
-  setProperty_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setProperty", []);
-
   setProperty_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setProperty", [__arg_0]);
 
   setProperty_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setProperty", [__arg_0, __arg_1]);
@@ -1541,6 +1896,12 @@
 class BlinkCSSStyleSheet extends BlinkStyleSheet {
   static final instance = new BlinkCSSStyleSheet();
 
+  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
+
+  ownerRule_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ownerRule");
+
+  rules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rules");
+
   addRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addRule", []);
 
   addRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addRule", [__arg_0]);
@@ -1549,8 +1910,6 @@
 
   addRule_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "addRule", [__arg_0, __arg_1, __arg_2]);
 
-  cssRules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssRules");
-
   deleteRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", []);
 
   deleteRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRule", [__arg_0]);
@@ -1561,14 +1920,10 @@
 
   insertRule_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertRule", [__arg_0, __arg_1]);
 
-  ownerRule_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ownerRule");
-
   removeRule_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeRule", []);
 
   removeRule_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeRule", [__arg_0]);
 
-  rules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rules");
-
 }
 
 class BlinkCSSSupportsRule extends BlinkCSSRule {
@@ -1590,35 +1945,6 @@
 
 }
 
-class BlinkCSSUnknownRule extends BlinkCSSRule {
-  static final instance = new BlinkCSSUnknownRule();
-
-}
-
-class BlinkCSSValue {
-  static final instance = new BlinkCSSValue();
-
-  cssText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssText");
-
-  cssText_Setter_(mthis, __arg_0) => mthis["cssText"] = __arg_0;
-
-  cssValueType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cssValueType");
-
-}
-
-class BlinkCSSValueList extends BlinkCSSValue {
-  static final instance = new BlinkCSSValueList();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-}
-
 class BlinkCSSViewportRule extends BlinkCSSRule {
   static final instance = new BlinkCSSViewportRule();
 
@@ -1629,14 +1955,14 @@
 class BlinkCache {
   static final instance = new BlinkCache();
 
-  addAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addAll", []);
-
-  addAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addAll", [__arg_0]);
-
   add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
 
   add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
 
+  addAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addAll", []);
+
+  addAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addAll", [__arg_0]);
+
   delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
 
   delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
@@ -1649,12 +1975,6 @@
 
   keys_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "keys", [__arg_0, __arg_1]);
 
-  matchAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", []);
-
-  matchAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", [__arg_0]);
-
-  matchAll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", [__arg_0, __arg_1]);
-
   match_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "match", []);
 
   match_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "match", [__arg_0]);
@@ -1672,36 +1992,25 @@
 class BlinkCacheStorage {
   static final instance = new BlinkCacheStorage();
 
-  create_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "create", []);
-
-  create_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "create", [__arg_0]);
-
   delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
 
   delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
 
-  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
-
-  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
-
   has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
 
   has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
 
   keys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "keys", []);
 
-}
+  match_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "match", []);
 
-class BlinkCanvas2DContextAttributes {
-  static final instance = new BlinkCanvas2DContextAttributes();
+  match_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "match", [__arg_0]);
 
-  alpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alpha");
+  match_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "match", [__arg_0, __arg_1]);
 
-  alpha_Setter_(mthis, __arg_0) => mthis["alpha"] = __arg_0;
+  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
 
-  storage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "storage");
-
-  storage_Setter_(mthis, __arg_0) => mthis["storage"] = __arg_0;
+  open_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0]);
 
 }
 
@@ -1716,6 +2025,61 @@
 
 }
 
+class BlinkCanvasPathMethods {
+  static final instance = new BlinkCanvasPathMethods();
+
+  arc_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  arc_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  arc_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  arcTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2]);
+
+  arcTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  arcTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bezierCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bezierCurveTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bezierCurveTo_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  closePath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "closePath", []);
+
+  ellipse_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  ellipse_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  ellipse_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  lineTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", []);
+
+  lineTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0]);
+
+  lineTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0, __arg_1]);
+
+  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
+
+  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
+
+  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
+
+  quadraticCurveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1]);
+
+  quadraticCurveTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2]);
+
+  quadraticCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  rect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1]);
+
+  rect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2]);
+
+  rect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+}
+
 class BlinkCanvasPattern {
   static final instance = new BlinkCanvasPattern();
 
@@ -1728,34 +2092,98 @@
 class BlinkCanvasRenderingContext2D {
   static final instance = new BlinkCanvasRenderingContext2D();
 
+  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
+
+  currentTransform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTransform");
+
+  currentTransform_Setter_(mthis, __arg_0) => mthis["currentTransform"] = __arg_0;
+
+  direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
+
+  direction_Setter_(mthis, __arg_0) => mthis["direction"] = __arg_0;
+
+  fillStyle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fillStyle");
+
+  fillStyle_Setter_(mthis, __arg_0) => mthis["fillStyle"] = __arg_0;
+
+  filter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filter");
+
+  filter_Setter_(mthis, __arg_0) => mthis["filter"] = __arg_0;
+
+  font_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "font");
+
+  font_Setter_(mthis, __arg_0) => mthis["font"] = __arg_0;
+
+  globalAlpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "globalAlpha");
+
+  globalAlpha_Setter_(mthis, __arg_0) => mthis["globalAlpha"] = __arg_0;
+
+  globalCompositeOperation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "globalCompositeOperation");
+
+  globalCompositeOperation_Setter_(mthis, __arg_0) => mthis["globalCompositeOperation"] = __arg_0;
+
+  imageSmoothingEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "imageSmoothingEnabled");
+
+  imageSmoothingEnabled_Setter_(mthis, __arg_0) => mthis["imageSmoothingEnabled"] = __arg_0;
+
+  lineCap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineCap");
+
+  lineCap_Setter_(mthis, __arg_0) => mthis["lineCap"] = __arg_0;
+
+  lineDashOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineDashOffset");
+
+  lineDashOffset_Setter_(mthis, __arg_0) => mthis["lineDashOffset"] = __arg_0;
+
+  lineJoin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineJoin");
+
+  lineJoin_Setter_(mthis, __arg_0) => mthis["lineJoin"] = __arg_0;
+
+  lineWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineWidth");
+
+  lineWidth_Setter_(mthis, __arg_0) => mthis["lineWidth"] = __arg_0;
+
+  miterLimit_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "miterLimit");
+
+  miterLimit_Setter_(mthis, __arg_0) => mthis["miterLimit"] = __arg_0;
+
+  shadowBlur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowBlur");
+
+  shadowBlur_Setter_(mthis, __arg_0) => mthis["shadowBlur"] = __arg_0;
+
+  shadowColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowColor");
+
+  shadowColor_Setter_(mthis, __arg_0) => mthis["shadowColor"] = __arg_0;
+
+  shadowOffsetX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowOffsetX");
+
+  shadowOffsetX_Setter_(mthis, __arg_0) => mthis["shadowOffsetX"] = __arg_0;
+
+  shadowOffsetY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowOffsetY");
+
+  shadowOffsetY_Setter_(mthis, __arg_0) => mthis["shadowOffsetY"] = __arg_0;
+
+  strokeStyle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "strokeStyle");
+
+  strokeStyle_Setter_(mthis, __arg_0) => mthis["strokeStyle"] = __arg_0;
+
+  textAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textAlign");
+
+  textAlign_Setter_(mthis, __arg_0) => mthis["textAlign"] = __arg_0;
+
+  textBaseline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textBaseline");
+
+  textBaseline_Setter_(mthis, __arg_0) => mthis["textBaseline"] = __arg_0;
+
+  webkitImageSmoothingEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitImageSmoothingEnabled");
+
+  webkitImageSmoothingEnabled_Setter_(mthis, __arg_0) => mthis["webkitImageSmoothingEnabled"] = __arg_0;
+
   addHitRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addHitRegion", []);
 
   addHitRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addHitRegion", [__arg_0]);
 
-  arcTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2]);
-
-  arcTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  arcTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  arc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2]);
-
-  arc_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  arc_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  arc_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
   beginPath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginPath", []);
 
-  bezierCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  bezierCurveTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  bezierCurveTo_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
-
   clearHitRegions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearHitRegions", []);
 
   clearRect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearRect", [__arg_0, __arg_1]);
@@ -1770,8 +2198,6 @@
 
   clip_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clip", [__arg_0, __arg_1]);
 
-  closePath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "closePath", []);
-
   createImageData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createImageData", []);
 
   createImageData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createImageData", [__arg_0]);
@@ -1796,14 +2222,6 @@
 
   createRadialGradient_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "createRadialGradient", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
-  currentTransform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTransform");
-
-  currentTransform_Setter_(mthis, __arg_0) => mthis["currentTransform"] = __arg_0;
-
-  direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
-
-  direction_Setter_(mthis, __arg_0) => mthis["direction"] = __arg_0;
-
   drawFocusIfNeeded_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "drawFocusIfNeeded", []);
 
   drawFocusIfNeeded_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawFocusIfNeeded", [__arg_0]);
@@ -1820,19 +2238,19 @@
 
   drawImage_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "drawImage", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
+  drawImage_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "drawImage", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
   drawImage_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "drawImage", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
 
   drawImage_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "drawImage", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
 
   drawImage_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "drawImage", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
 
-  ellipse_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+  fill_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fill", []);
 
-  ellipse_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+  fill_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fill", [__arg_0]);
 
-  ellipse_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  ellipse_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+  fill_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fill", [__arg_0, __arg_1]);
 
   fillRect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fillRect", [__arg_0, __arg_1]);
 
@@ -1840,10 +2258,6 @@
 
   fillRect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "fillRect", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  fillStyle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fillStyle");
-
-  fillStyle_Setter_(mthis, __arg_0) => mthis["fillStyle"] = __arg_0;
-
   fillText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fillText", [__arg_0]);
 
   fillText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fillText", [__arg_0, __arg_1]);
@@ -1852,16 +2266,6 @@
 
   fillText_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "fillText", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  fill_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fill", []);
-
-  fill_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fill", [__arg_0]);
-
-  fill_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fill", [__arg_0, __arg_1]);
-
-  font_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "font");
-
-  font_Setter_(mthis, __arg_0) => mthis["font"] = __arg_0;
-
   getContextAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContextAttributes", []);
 
   getImageData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getImageData", [__arg_0, __arg_1]);
@@ -1872,18 +2276,6 @@
 
   getLineDash_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getLineDash", []);
 
-  globalAlpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "globalAlpha");
-
-  globalAlpha_Setter_(mthis, __arg_0) => mthis["globalAlpha"] = __arg_0;
-
-  globalCompositeOperation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "globalCompositeOperation");
-
-  globalCompositeOperation_Setter_(mthis, __arg_0) => mthis["globalCompositeOperation"] = __arg_0;
-
-  imageSmoothingEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "imageSmoothingEnabled");
-
-  imageSmoothingEnabled_Setter_(mthis, __arg_0) => mthis["imageSmoothingEnabled"] = __arg_0;
-
   isContextLost_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isContextLost", []);
 
   isPointInPath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isPointInPath", []);
@@ -1904,66 +2296,24 @@
 
   isPointInStroke_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "isPointInStroke", [__arg_0, __arg_1, __arg_2]);
 
-  lineCap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineCap");
-
-  lineCap_Setter_(mthis, __arg_0) => mthis["lineCap"] = __arg_0;
-
-  lineDashOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineDashOffset");
-
-  lineDashOffset_Setter_(mthis, __arg_0) => mthis["lineDashOffset"] = __arg_0;
-
-  lineJoin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineJoin");
-
-  lineJoin_Setter_(mthis, __arg_0) => mthis["lineJoin"] = __arg_0;
-
-  lineTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", []);
-
-  lineTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0]);
-
-  lineTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0, __arg_1]);
-
-  lineWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineWidth");
-
-  lineWidth_Setter_(mthis, __arg_0) => mthis["lineWidth"] = __arg_0;
-
   measureText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "measureText", []);
 
   measureText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "measureText", [__arg_0]);
 
-  miterLimit_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "miterLimit");
-
-  miterLimit_Setter_(mthis, __arg_0) => mthis["miterLimit"] = __arg_0;
-
-  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
-
-  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
-
-  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
-
   putImageData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0]);
 
   putImageData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1]);
 
   putImageData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1, __arg_2]);
 
+  putImageData_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
   putImageData_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
   putImageData_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
   putImageData_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "putImageData", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
 
-  quadraticCurveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1]);
-
-  quadraticCurveTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2]);
-
-  quadraticCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  rect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1]);
-
-  rect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2]);
-
-  rect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
   removeHitRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeHitRegion", []);
 
   removeHitRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeHitRegion", [__arg_0]);
@@ -1998,21 +2348,9 @@
 
   setTransform_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "setTransform", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
-  shadowBlur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowBlur");
+  stroke_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stroke", []);
 
-  shadowBlur_Setter_(mthis, __arg_0) => mthis["shadowBlur"] = __arg_0;
-
-  shadowColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowColor");
-
-  shadowColor_Setter_(mthis, __arg_0) => mthis["shadowColor"] = __arg_0;
-
-  shadowOffsetX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowOffsetX");
-
-  shadowOffsetX_Setter_(mthis, __arg_0) => mthis["shadowOffsetX"] = __arg_0;
-
-  shadowOffsetY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowOffsetY");
-
-  shadowOffsetY_Setter_(mthis, __arg_0) => mthis["shadowOffsetY"] = __arg_0;
+  stroke_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stroke", [__arg_0]);
 
   strokeRect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "strokeRect", [__arg_0, __arg_1]);
 
@@ -2020,10 +2358,6 @@
 
   strokeRect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "strokeRect", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  strokeStyle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "strokeStyle");
-
-  strokeStyle_Setter_(mthis, __arg_0) => mthis["strokeStyle"] = __arg_0;
-
   strokeText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "strokeText", [__arg_0]);
 
   strokeText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "strokeText", [__arg_0, __arg_1]);
@@ -2032,18 +2366,6 @@
 
   strokeText_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "strokeText", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  stroke_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stroke", []);
-
-  stroke_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stroke", [__arg_0]);
-
-  textAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textAlign");
-
-  textAlign_Setter_(mthis, __arg_0) => mthis["textAlign"] = __arg_0;
-
-  textBaseline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textBaseline");
-
-  textBaseline_Setter_(mthis, __arg_0) => mthis["textBaseline"] = __arg_0;
-
   transform_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "transform", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   transform_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "transform", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
@@ -2056,6 +2378,56 @@
 
   translate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "translate", [__arg_0, __arg_1]);
 
+  arc_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  arc_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  arc_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  arcTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2]);
+
+  arcTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  arcTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bezierCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bezierCurveTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bezierCurveTo_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  closePath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "closePath", []);
+
+  ellipse_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  ellipse_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  ellipse_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  lineTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", []);
+
+  lineTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0]);
+
+  lineTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "lineTo", [__arg_0, __arg_1]);
+
+  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
+
+  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
+
+  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
+
+  quadraticCurveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1]);
+
+  quadraticCurveTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2]);
+
+  quadraticCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "quadraticCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  rect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1]);
+
+  rect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2]);
+
+  rect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "rect", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
 }
 
 class BlinkChannelMergerNode extends BlinkAudioNode {
@@ -2071,14 +2443,16 @@
 class BlinkCharacterData extends BlinkNode {
   static final instance = new BlinkCharacterData();
 
-  appendData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendData", []);
-
-  appendData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendData", [__arg_0]);
-
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
 
   data_Setter_(mthis, __arg_0) => mthis["data"] = __arg_0;
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  appendData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendData", []);
+
+  appendData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendData", [__arg_0]);
+
   deleteData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteData", []);
 
   deleteData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteData", [__arg_0]);
@@ -2091,12 +2465,6 @@
 
   insertData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertData", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  nextElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nextElementSibling");
-
-  previousElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousElementSibling");
-
   replaceData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceData", [__arg_0]);
 
   replaceData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "replaceData", [__arg_0, __arg_1]);
@@ -2109,6 +2477,43 @@
 
   substringData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "substringData", [__arg_0, __arg_1]);
 
+  after_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "after", []);
+
+  after_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "after", [__arg_0]);
+
+  before_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "before", []);
+
+  before_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "before", [__arg_0]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  replaceWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", []);
+
+  replaceWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", [__arg_0]);
+
+  nextElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nextElementSibling");
+
+  previousElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousElementSibling");
+
+}
+
+class BlinkChildNode {
+  static final instance = new BlinkChildNode();
+
+  after_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "after", []);
+
+  after_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "after", [__arg_0]);
+
+  before_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "before", []);
+
+  before_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "before", [__arg_0]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  replaceWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", []);
+
+  replaceWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", [__arg_0]);
+
 }
 
 class BlinkCircularGeofencingRegion extends BlinkGeofencingRegion {
@@ -2126,6 +2531,23 @@
 
 }
 
+class BlinkClient {
+  static final instance = new BlinkClient();
+
+  frameType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frameType");
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+  url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
+}
+
 class BlinkClientRect {
   static final instance = new BlinkClientRect();
 
@@ -2146,23 +2568,49 @@
 class BlinkClientRectList {
   static final instance = new BlinkClientRectList();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+}
+
+class BlinkClients {
+  static final instance = new BlinkClients();
+
+  claim_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "claim", []);
+
+  matchAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", []);
+
+  matchAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", [__arg_0]);
+
+  openWindow_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "openWindow", []);
+
+  openWindow_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "openWindow", [__arg_0]);
+
+}
+
+class BlinkClipboardEvent extends BlinkEvent {
+  static final instance = new BlinkClipboardEvent();
+
+  clipboardData_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clipboardData");
 
 }
 
 class BlinkCloseEvent extends BlinkEvent {
   static final instance = new BlinkCloseEvent();
 
-  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CloseEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CloseEvent"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CloseEvent"), [__arg_0, __arg_1]);
 
+  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+
   reason_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "reason");
 
   wasClean_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wasClean");
@@ -2181,22 +2629,14 @@
 class BlinkCompositionEvent extends BlinkUIEvent {
   static final instance = new BlinkCompositionEvent();
 
-  activeSegmentEnd_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeSegmentEnd");
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositionEvent"), []);
 
-  activeSegmentStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeSegmentStart");
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositionEvent"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositionEvent"), [__arg_0, __arg_1]);
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
 
-  getSegments_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSegments", []);
-
-  initCompositionEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initCompositionEvent", []);
-
-  initCompositionEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initCompositionEvent", [__arg_0]);
-
-  initCompositionEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initCompositionEvent", [__arg_0, __arg_1]);
-
   initCompositionEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initCompositionEvent", [__arg_0, __arg_1, __arg_2]);
 
   initCompositionEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initCompositionEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
@@ -2205,11 +2645,94 @@
 
 }
 
+class BlinkCompositorProxy {
+  static final instance = new BlinkCompositorProxy();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositorProxy"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositorProxy"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositorProxy"), [__arg_0, __arg_1]);
+
+  opacity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "opacity");
+
+  opacity_Setter_(mthis, __arg_0) => mthis["opacity"] = __arg_0;
+
+  scrollLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollLeft");
+
+  scrollLeft_Setter_(mthis, __arg_0) => mthis["scrollLeft"] = __arg_0;
+
+  scrollTop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollTop");
+
+  scrollTop_Setter_(mthis, __arg_0) => mthis["scrollTop"] = __arg_0;
+
+  transform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transform");
+
+  transform_Setter_(mthis, __arg_0) => mthis["transform"] = __arg_0;
+
+  disconnect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disconnect", []);
+
+  supports_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "supports", []);
+
+  supports_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "supports", [__arg_0]);
+
+}
+
+class BlinkCompositorWorker extends BlinkEventTarget {
+  static final instance = new BlinkCompositorWorker();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositorWorker"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CompositorWorker"), [__arg_0]);
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
+  terminate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "terminate", []);
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+}
+
+class BlinkCompositorWorkerGlobalScope extends BlinkWorkerGlobalScope {
+  static final instance = new BlinkCompositorWorkerGlobalScope();
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  cancelAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", []);
+
+  cancelAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", [__arg_0]);
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
+  requestAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", []);
+
+  requestAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", [__arg_0]);
+
+}
+
 class BlinkConsole extends BlinkConsoleBase {
   static final instance = new BlinkConsole();
 
   memory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "memory");
 
+  memory_Setter_(mthis, __arg_0) => mthis["memory"] = __arg_0;
+
 }
 
 class BlinkConsoleBase {
@@ -2219,6 +2742,8 @@
 
   assert_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "assert", [__arg_0]);
 
+  assert_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "assert", [__arg_0, __arg_1]);
+
   clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
 
   clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
@@ -2243,16 +2768,16 @@
 
   error_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "error", [__arg_0]);
 
+  group_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "group", []);
+
+  group_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "group", [__arg_0]);
+
   groupCollapsed_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "groupCollapsed", []);
 
   groupCollapsed_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "groupCollapsed", [__arg_0]);
 
   groupEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "groupEnd", []);
 
-  group_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "group", []);
-
-  group_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "group", [__arg_0]);
-
   info_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "info", []);
 
   info_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "info", [__arg_0]);
@@ -2265,18 +2790,22 @@
 
   markTimeline_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "markTimeline", [__arg_0]);
 
-  profileEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "profileEnd", []);
-
-  profileEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "profileEnd", [__arg_0]);
-
   profile_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "profile", []);
 
   profile_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "profile", [__arg_0]);
 
+  profileEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "profileEnd", []);
+
+  profileEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "profileEnd", [__arg_0]);
+
   table_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "table", []);
 
   table_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "table", [__arg_0]);
 
+  time_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "time", []);
+
+  time_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "time", [__arg_0]);
+
   timeEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "timeEnd", []);
 
   timeEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "timeEnd", [__arg_0]);
@@ -2285,18 +2814,14 @@
 
   timeStamp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "timeStamp", [__arg_0]);
 
-  time_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "time", []);
+  timeline_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "timeline", []);
 
-  time_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "time", [__arg_0]);
+  timeline_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "timeline", [__arg_0]);
 
   timelineEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "timelineEnd", []);
 
   timelineEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "timelineEnd", [__arg_0]);
 
-  timeline_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "timeline", []);
-
-  timeline_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "timeline", [__arg_0]);
-
   trace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "trace", []);
 
   trace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "trace", [__arg_0]);
@@ -2325,10 +2850,10 @@
 
   accuracy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "accuracy");
 
-  altitudeAccuracy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altitudeAccuracy");
-
   altitude_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altitude");
 
+  altitudeAccuracy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altitudeAccuracy");
+
   heading_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "heading");
 
   latitude_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "latitude");
@@ -2339,56 +2864,69 @@
 
 }
 
-class BlinkCounter {
-  static final instance = new BlinkCounter();
-
-  identifier_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "identifier");
-
-  listStyle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "listStyle");
-
-  separator_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "separator");
-
-}
-
 class BlinkCredential {
   static final instance = new BlinkCredential();
 
-  avatarURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "avatarURL");
+  iconURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iconURL");
 
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
 }
 
 class BlinkCredentialsContainer {
   static final instance = new BlinkCredentialsContainer();
 
-  notifyFailedSignIn_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "notifyFailedSignIn", []);
-
-  notifyFailedSignIn_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "notifyFailedSignIn", [__arg_0]);
-
   notifySignedIn_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "notifySignedIn", []);
 
   notifySignedIn_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "notifySignedIn", [__arg_0]);
 
-  notifySignedOut_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "notifySignedOut", []);
-
   request_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "request", []);
 
   request_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "request", [__arg_0]);
 
+  requireUserMediation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requireUserMediation", []);
+
+}
+
+class BlinkCrossOriginConnectEvent extends BlinkEvent {
+  static final instance = new BlinkCrossOriginConnectEvent();
+
+  client_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "client");
+
+  acceptConnection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "acceptConnection", []);
+
+  acceptConnection_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "acceptConnection", [__arg_0]);
+
+}
+
+class BlinkCrossOriginServiceWorkerClient extends BlinkEventTarget {
+  static final instance = new BlinkCrossOriginServiceWorkerClient();
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  targetUrl_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetUrl");
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
 }
 
 class BlinkCrypto {
   static final instance = new BlinkCrypto();
 
+  subtle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "subtle");
+
   getRandomValues_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRandomValues", []);
 
   getRandomValues_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRandomValues", [__arg_0]);
 
-  subtle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "subtle");
-
 }
 
 class BlinkCryptoKey {
@@ -2407,14 +2945,14 @@
 class BlinkCustomEvent extends BlinkEvent {
   static final instance = new BlinkCustomEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CustomEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CustomEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "CustomEvent"), [__arg_0, __arg_1]);
 
   detail_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "detail");
 
-  initCustomEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initCustomEvent", []);
-
-  initCustomEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initCustomEvent", [__arg_0]);
-
   initCustomEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initCustomEvent", [__arg_0, __arg_1]);
 
   initCustomEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initCustomEvent", [__arg_0, __arg_1, __arg_2]);
@@ -2441,6 +2979,8 @@
 class BlinkDOMException {
   static final instance = new BlinkDOMException();
 
+  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+
   message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
@@ -2470,35 +3010,33 @@
 class BlinkDOMImplementation {
   static final instance = new BlinkDOMImplementation();
 
-  createDocumentType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0]);
-
-  createDocumentType_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0, __arg_1]);
-
-  createDocumentType_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0, __arg_1, __arg_2]);
-
-  createDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createDocument", []);
-
   createDocument_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createDocument", [__arg_0]);
 
   createDocument_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createDocument", [__arg_0, __arg_1]);
 
   createDocument_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createDocument", [__arg_0, __arg_1, __arg_2]);
 
+  createDocumentType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0]);
+
+  createDocumentType_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0, __arg_1]);
+
+  createDocumentType_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentType", [__arg_0, __arg_1, __arg_2]);
+
   createHTMLDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createHTMLDocument", []);
 
   createHTMLDocument_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createHTMLDocument", [__arg_0]);
 
   hasFeature_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasFeature", []);
 
-  hasFeature_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasFeature", [__arg_0]);
-
-  hasFeature_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hasFeature", [__arg_0, __arg_1]);
-
 }
 
 class BlinkDOMMatrix extends BlinkDOMMatrixReadOnly {
   static final instance = new BlinkDOMMatrix();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMMatrix"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMMatrix"), [__arg_0]);
+
   a_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "a");
 
   a_Setter_(mthis, __arg_0) => mthis["a"] = __arg_0;
@@ -2511,10 +3049,6 @@
 
   c_Setter_(mthis, __arg_0) => mthis["c"] = __arg_0;
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMMatrix"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMMatrix"), [__arg_0]);
-
   d_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "d");
 
   d_Setter_(mthis, __arg_0) => mthis["d"] = __arg_0;
@@ -2696,6 +3230,14 @@
 
   multiply_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "multiply", [__arg_0]);
 
+  scale_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale", []);
+
+  scale_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0]);
+
+  scale_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0, __arg_1]);
+
+  scale_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0, __arg_1, __arg_2]);
+
   scale3d_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale3d", []);
 
   scale3d_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale3d", [__arg_0]);
@@ -2720,14 +3262,6 @@
 
   scaleNonUniform_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "scaleNonUniform", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
-  scale_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale", []);
-
-  scale_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0]);
-
-  scale_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0, __arg_1]);
-
-  scale_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0, __arg_1, __arg_2]);
-
   toFloat32Array_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toFloat32Array", []);
 
   toFloat64Array_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toFloat64Array", []);
@@ -2839,14 +3373,14 @@
 class BlinkDOMRectReadOnly {
   static final instance = new BlinkDOMRectReadOnly();
 
-  bottom_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bottom");
-
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMRectReadOnly"), [__arg_0, __arg_1]);
 
   constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMRectReadOnly"), [__arg_0, __arg_1, __arg_2]);
 
   constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DOMRectReadOnly"), [__arg_0, __arg_1, __arg_2, __arg_3]);
 
+  bottom_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bottom");
+
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   left_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "left");
@@ -2866,17 +3400,21 @@
 class BlinkDOMSettableTokenList extends BlinkDOMTokenList {
   static final instance = new BlinkDOMSettableTokenList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
 
   value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
 
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
 }
 
 class BlinkDOMStringList {
   static final instance = new BlinkDOMStringList();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
   contains_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "contains", []);
@@ -2887,8 +3425,6 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkDOMStringMap {
@@ -2900,12 +3436,16 @@
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
 }
 
 class BlinkDOMTokenList {
   static final instance = new BlinkDOMTokenList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
 
@@ -2919,8 +3459,6 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
   remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
 
   remove_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0]);
@@ -2936,10 +3474,6 @@
 class BlinkDataTransfer {
   static final instance = new BlinkDataTransfer();
 
-  clearData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearData", []);
-
-  clearData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearData", [__arg_0]);
-
   dropEffect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dropEffect");
 
   dropEffect_Setter_(mthis, __arg_0) => mthis["dropEffect"] = __arg_0;
@@ -2950,12 +3484,18 @@
 
   files_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "files");
 
+  items_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "items");
+
+  types_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "types");
+
+  clearData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearData", []);
+
+  clearData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearData", [__arg_0]);
+
   getData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getData", []);
 
   getData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getData", [__arg_0]);
 
-  items_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "items");
-
   setData_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setData", []);
 
   setData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setData", [__arg_0]);
@@ -2968,23 +3508,21 @@
 
   setDragImage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setDragImage", [__arg_0, __arg_1, __arg_2]);
 
-  types_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "types");
-
 }
 
 class BlinkDataTransferItem {
   static final instance = new BlinkDataTransferItem();
 
+  kind_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kind");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
   getAsFile_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAsFile", []);
 
   getAsString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAsString", []);
 
   getAsString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAsString", [__arg_0]);
 
-  kind_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kind");
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
   webkitGetAsEntry_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitGetAsEntry", []);
 
 }
@@ -2992,7 +3530,7 @@
 class BlinkDataTransferItemList {
   static final instance = new BlinkDataTransferItemList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
 
@@ -3002,7 +3540,9 @@
 
   clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
   remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
 
@@ -3010,9 +3550,16 @@
 
 }
 
+class BlinkDataView extends BlinkArrayBufferView {
+  static final instance = new BlinkDataView();
+
+}
+
 class BlinkDatabase {
   static final instance = new BlinkDatabase();
 
+  version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
+
   changeVersion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "changeVersion", []);
 
   changeVersion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "changeVersion", [__arg_0]);
@@ -3041,7 +3588,14 @@
 
   transaction_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "transaction", [__arg_0, __arg_1, __arg_2]);
 
-  version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
+}
+
+class BlinkDatabaseCallback {
+  static final instance = new BlinkDatabaseCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
 
 }
 
@@ -3060,6 +3614,19 @@
 
 }
 
+class BlinkDefaultSessionStartEvent extends BlinkEvent {
+  static final instance = new BlinkDefaultSessionStartEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DefaultSessionStartEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DefaultSessionStartEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DefaultSessionStartEvent"), [__arg_0, __arg_1]);
+
+  session_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "session");
+
+}
+
 class BlinkDelayNode extends BlinkAudioNode {
   static final instance = new BlinkDelayNode();
 
@@ -3123,6 +3690,10 @@
 class BlinkDeviceLightEvent extends BlinkEvent {
   static final instance = new BlinkDeviceLightEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DeviceLightEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DeviceLightEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DeviceLightEvent"), [__arg_0, __arg_1]);
 
   value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
@@ -3132,19 +3703,13 @@
 class BlinkDeviceMotionEvent extends BlinkEvent {
   static final instance = new BlinkDeviceMotionEvent();
 
-  accelerationIncludingGravity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "accelerationIncludingGravity");
-
   acceleration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "acceleration");
 
-  initDeviceMotionEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", []);
+  accelerationIncludingGravity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "accelerationIncludingGravity");
 
-  initDeviceMotionEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0]);
+  interval_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "interval");
 
-  initDeviceMotionEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0, __arg_1]);
-
-  initDeviceMotionEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initDeviceMotionEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
+  rotationRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rotationRate");
 
   initDeviceMotionEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
@@ -3152,10 +3717,6 @@
 
   initDeviceMotionEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceMotionEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
 
-  interval_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "interval");
-
-  rotationRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rotationRate");
-
 }
 
 class BlinkDeviceOrientationEvent extends BlinkEvent {
@@ -3169,16 +3730,6 @@
 
   gamma_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gamma");
 
-  initDeviceOrientationEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", []);
-
-  initDeviceOrientationEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0]);
-
-  initDeviceOrientationEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0, __arg_1]);
-
-  initDeviceOrientationEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initDeviceOrientationEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
   initDeviceOrientationEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
   initDeviceOrientationEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initDeviceOrientationEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
@@ -3277,32 +3828,18 @@
 
   activeElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeElement");
 
-  adoptNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "adoptNode", []);
-
-  adoptNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "adoptNode", [__arg_0]);
-
   anchors_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "anchors");
 
+  applets_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "applets");
+
   body_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "body");
 
   body_Setter_(mthis, __arg_0) => mthis["body"] = __arg_0;
 
-  caretRangeFromPoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", []);
-
-  caretRangeFromPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", [__arg_0]);
-
-  caretRangeFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", [__arg_0, __arg_1]);
-
   characterSet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "characterSet");
 
   charset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charset");
 
-  charset_Setter_(mthis, __arg_0) => mthis["charset"] = __arg_0;
-
-  childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
-
-  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
-
   compatMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compatMode");
 
   contentType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentType");
@@ -3311,86 +3848,20 @@
 
   cookie_Setter_(mthis, __arg_0) => mthis["cookie"] = __arg_0;
 
-  createCDATASection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createCDATASection", []);
-
-  createCDATASection_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createCDATASection", [__arg_0]);
-
-  createDocumentFragment_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentFragment", []);
-
-  createElementNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", []);
-
-  createElementNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0]);
-
-  createElementNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0, __arg_1]);
-
-  createElementNS_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0, __arg_1, __arg_2]);
-
-  createElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createElement", []);
-
-  createElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createElement", [__arg_0]);
-
-  createElement_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createElement", [__arg_0, __arg_1]);
-
-  createEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createEvent", []);
-
-  createEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createEvent", [__arg_0]);
-
-  createNodeIterator_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", []);
-
-  createNodeIterator_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0]);
-
-  createNodeIterator_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0, __arg_1]);
-
-  createNodeIterator_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0, __arg_1, __arg_2]);
-
-  createRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createRange", []);
-
-  createTextNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTextNode", []);
-
-  createTextNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTextNode", [__arg_0]);
-
-  createTouchList_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTouchList", []);
-
-  createTouchList_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTouchList", [__arg_0]);
-
-  createTouch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", []);
-
-  createTouch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0]);
-
-  createTouch_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
-
-  createTouch_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
-
-  createTouch_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1]);
-
-  createTouch_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2]);
-
-  createTouch_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  createTouch_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  createTouch_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  createTouch_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  createTouch_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
-
-  createTouch_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
-
-  createTreeWalker_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", []);
-
-  createTreeWalker_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0]);
-
-  createTreeWalker_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0, __arg_1]);
-
-  createTreeWalker_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0, __arg_1, __arg_2]);
-
   currentScript_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentScript");
 
   defaultCharset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultCharset");
 
   defaultView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultView");
 
+  designMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "designMode");
+
+  designMode_Setter_(mthis, __arg_0) => mthis["designMode"] = __arg_0;
+
+  dir_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dir");
+
+  dir_Setter_(mthis, __arg_0) => mthis["dir"] = __arg_0;
+
   doctype_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "doctype");
 
   documentElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "documentElement");
@@ -3401,13 +3872,293 @@
 
   domain_Setter_(mthis, __arg_0) => mthis["domain"] = __arg_0;
 
+  embeds_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "embeds");
+
+  fonts_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fonts");
+
+  forms_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "forms");
+
+  fullscreenElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullscreenElement");
+
+  fullscreenEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullscreenEnabled");
+
+  head_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "head");
+
+  hidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hidden");
+
+  images_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "images");
+
+  implementation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "implementation");
+
+  inputEncoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "inputEncoding");
+
+  lastModified_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModified");
+
+  links_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "links");
+
+  location_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "location");
+
+  onbeforecopy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforecopy");
+
+  onbeforecopy_Setter_(mthis, __arg_0) => mthis["onbeforecopy"] = __arg_0;
+
+  onbeforecut_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforecut");
+
+  onbeforecut_Setter_(mthis, __arg_0) => mthis["onbeforecut"] = __arg_0;
+
+  onbeforepaste_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforepaste");
+
+  onbeforepaste_Setter_(mthis, __arg_0) => mthis["onbeforepaste"] = __arg_0;
+
+  oncopy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncopy");
+
+  oncopy_Setter_(mthis, __arg_0) => mthis["oncopy"] = __arg_0;
+
+  oncut_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncut");
+
+  oncut_Setter_(mthis, __arg_0) => mthis["oncut"] = __arg_0;
+
+  onfullscreenchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfullscreenchange");
+
+  onfullscreenchange_Setter_(mthis, __arg_0) => mthis["onfullscreenchange"] = __arg_0;
+
+  onfullscreenerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfullscreenerror");
+
+  onfullscreenerror_Setter_(mthis, __arg_0) => mthis["onfullscreenerror"] = __arg_0;
+
+  onpaste_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpaste");
+
+  onpaste_Setter_(mthis, __arg_0) => mthis["onpaste"] = __arg_0;
+
+  onpointerlockchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerlockchange");
+
+  onpointerlockchange_Setter_(mthis, __arg_0) => mthis["onpointerlockchange"] = __arg_0;
+
+  onpointerlockerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerlockerror");
+
+  onpointerlockerror_Setter_(mthis, __arg_0) => mthis["onpointerlockerror"] = __arg_0;
+
+  onreadystatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreadystatechange");
+
+  onreadystatechange_Setter_(mthis, __arg_0) => mthis["onreadystatechange"] = __arg_0;
+
+  onsearch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsearch");
+
+  onsearch_Setter_(mthis, __arg_0) => mthis["onsearch"] = __arg_0;
+
+  onsecuritypolicyviolation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsecuritypolicyviolation");
+
+  onsecuritypolicyviolation_Setter_(mthis, __arg_0) => mthis["onsecuritypolicyviolation"] = __arg_0;
+
+  onselectionchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselectionchange");
+
+  onselectionchange_Setter_(mthis, __arg_0) => mthis["onselectionchange"] = __arg_0;
+
+  onselectstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselectstart");
+
+  onselectstart_Setter_(mthis, __arg_0) => mthis["onselectstart"] = __arg_0;
+
+  ontouchcancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchcancel");
+
+  ontouchcancel_Setter_(mthis, __arg_0) => mthis["ontouchcancel"] = __arg_0;
+
+  ontouchend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchend");
+
+  ontouchend_Setter_(mthis, __arg_0) => mthis["ontouchend"] = __arg_0;
+
+  ontouchmove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchmove");
+
+  ontouchmove_Setter_(mthis, __arg_0) => mthis["ontouchmove"] = __arg_0;
+
+  ontouchstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchstart");
+
+  ontouchstart_Setter_(mthis, __arg_0) => mthis["ontouchstart"] = __arg_0;
+
+  onwebkitfullscreenchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitfullscreenchange");
+
+  onwebkitfullscreenchange_Setter_(mthis, __arg_0) => mthis["onwebkitfullscreenchange"] = __arg_0;
+
+  onwebkitfullscreenerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitfullscreenerror");
+
+  onwebkitfullscreenerror_Setter_(mthis, __arg_0) => mthis["onwebkitfullscreenerror"] = __arg_0;
+
+  onwheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwheel");
+
+  onwheel_Setter_(mthis, __arg_0) => mthis["onwheel"] = __arg_0;
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  plugins_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "plugins");
+
+  pointerLockElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pointerLockElement");
+
+  preferredStylesheetSet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preferredStylesheetSet");
+
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  referrer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "referrer");
+
+  rootElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rootElement");
+
+  scripts_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scripts");
+
+  scrollingElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollingElement");
+
+  selectedStylesheetSet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectedStylesheetSet");
+
+  selectedStylesheetSet_Setter_(mthis, __arg_0) => mthis["selectedStylesheetSet"] = __arg_0;
+
+  styleSheets_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleSheets");
+
+  timeline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeline");
+
+  title_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "title");
+
+  title_Setter_(mthis, __arg_0) => mthis["title"] = __arg_0;
+
+  visibilityState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "visibilityState");
+
+  webkitCurrentFullScreenElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitCurrentFullScreenElement");
+
+  webkitFullscreenElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitFullscreenElement");
+
+  webkitFullscreenEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitFullscreenEnabled");
+
+  webkitHidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitHidden");
+
+  webkitIsFullScreen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitIsFullScreen");
+
+  webkitVisibilityState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitVisibilityState");
+
+  xmlEncoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlEncoding");
+
+  xmlStandalone_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlStandalone");
+
+  xmlStandalone_Setter_(mthis, __arg_0) => mthis["xmlStandalone"] = __arg_0;
+
+  xmlVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlVersion");
+
+  xmlVersion_Setter_(mthis, __arg_0) => mthis["xmlVersion"] = __arg_0;
+
+  adoptNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "adoptNode", []);
+
+  adoptNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "adoptNode", [__arg_0]);
+
+  caretRangeFromPoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", []);
+
+  caretRangeFromPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", [__arg_0]);
+
+  caretRangeFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "caretRangeFromPoint", [__arg_0, __arg_1]);
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  createAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createAttribute", []);
+
+  createAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createAttribute", [__arg_0]);
+
+  createAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createAttributeNS", []);
+
+  createAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createAttributeNS", [__arg_0]);
+
+  createAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createAttributeNS", [__arg_0, __arg_1]);
+
+  createCDATASection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createCDATASection", []);
+
+  createCDATASection_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createCDATASection", [__arg_0]);
+
+  createComment_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createComment", []);
+
+  createComment_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createComment", [__arg_0]);
+
+  createDocumentFragment_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createDocumentFragment", []);
+
+  createElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createElement", []);
+
+  createElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createElement", [__arg_0]);
+
+  createElement_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createElement", [__arg_0, __arg_1]);
+
+  createElementNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", []);
+
+  createElementNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0]);
+
+  createElementNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0, __arg_1]);
+
+  createElementNS_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createElementNS", [__arg_0, __arg_1, __arg_2]);
+
+  createEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createEvent", []);
+
+  createEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createEvent", [__arg_0]);
+
+  createExpression_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createExpression", []);
+
+  createExpression_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createExpression", [__arg_0]);
+
+  createExpression_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createExpression", [__arg_0, __arg_1]);
+
+  createNSResolver_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createNSResolver", []);
+
+  createNSResolver_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createNSResolver", [__arg_0]);
+
+  createNodeIterator_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", []);
+
+  createNodeIterator_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0]);
+
+  createNodeIterator_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0, __arg_1]);
+
+  createNodeIterator_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createNodeIterator", [__arg_0, __arg_1, __arg_2]);
+
+  createProcessingInstruction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createProcessingInstruction", []);
+
+  createProcessingInstruction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createProcessingInstruction", [__arg_0]);
+
+  createProcessingInstruction_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createProcessingInstruction", [__arg_0, __arg_1]);
+
+  createRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createRange", []);
+
+  createTextNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTextNode", []);
+
+  createTextNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTextNode", [__arg_0]);
+
+  createTouch_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  createTouch_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  createTouch_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "createTouch", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
+
+  createTouchList_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTouchList", []);
+
+  createTouchList_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTouchList", [__arg_0]);
+
+  createTreeWalker_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", []);
+
+  createTreeWalker_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0]);
+
+  createTreeWalker_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0, __arg_1]);
+
+  createTreeWalker_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createTreeWalker", [__arg_0, __arg_1, __arg_2]);
+
   elementFromPoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "elementFromPoint", []);
 
   elementFromPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "elementFromPoint", [__arg_0]);
 
   elementFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "elementFromPoint", [__arg_0, __arg_1]);
 
-  embeds_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "embeds");
+  elementsFromPoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", []);
+
+  elementsFromPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", [__arg_0]);
+
+  elementsFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", [__arg_0, __arg_1]);
+
+  evaluate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0]);
+
+  evaluate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0, __arg_1]);
+
+  evaluate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0, __arg_1, __arg_2]);
+
+  evaluate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  evaluate_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
   execCommand_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "execCommand", []);
 
@@ -3421,26 +4172,12 @@
 
   exitPointerLock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "exitPointerLock", []);
 
-  firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
-
-  fonts_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fonts");
-
-  forms_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "forms");
-
-  fullscreenElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullscreenElement");
-
-  fullscreenEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullscreenEnabled");
-
   getCSSCanvasContext_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getCSSCanvasContext", [__arg_0, __arg_1]);
 
   getCSSCanvasContext_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getCSSCanvasContext", [__arg_0, __arg_1, __arg_2]);
 
   getCSSCanvasContext_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "getCSSCanvasContext", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
-
-  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
-
   getElementsByClassName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", []);
 
   getElementsByClassName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", [__arg_0]);
@@ -3453,11 +4190,15 @@
 
   getElementsByTagName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", [__arg_0]);
 
-  head_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "head");
+  getElementsByTagNameNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", []);
 
-  hidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hidden");
+  getElementsByTagNameNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", [__arg_0]);
 
-  implementation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "implementation");
+  getElementsByTagNameNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", [__arg_0, __arg_1]);
+
+  getSelection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelection", []);
+
+  hasFocus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasFocus", []);
 
   importNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "importNode", []);
 
@@ -3465,13 +4206,43 @@
 
   importNode_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "importNode", [__arg_0, __arg_1]);
 
-  inputEncoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "inputEncoding");
+  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
 
-  lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
+  queryCommandEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandEnabled", []);
 
-  lastModified_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModified");
+  queryCommandEnabled_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandEnabled", [__arg_0]);
 
-  links_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "links");
+  queryCommandIndeterm_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandIndeterm", []);
+
+  queryCommandIndeterm_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandIndeterm", [__arg_0]);
+
+  queryCommandState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandState", []);
+
+  queryCommandState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandState", [__arg_0]);
+
+  queryCommandSupported_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandSupported", []);
+
+  queryCommandSupported_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandSupported", [__arg_0]);
+
+  queryCommandValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandValue", []);
+
+  queryCommandValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandValue", [__arg_0]);
+
+  transformDocumentToTreeView_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "transformDocumentToTreeView", []);
+
+  transformDocumentToTreeView_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "transformDocumentToTreeView", [__arg_0]);
+
+  webkitCancelFullScreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelFullScreen", []);
+
+  webkitExitFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitExitFullscreen", []);
+
+  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
+
+  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
+
+  writeln_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "writeln", []);
+
+  writeln_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "writeln", [__arg_0]);
 
   onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
 
@@ -3485,18 +4256,6 @@
 
   onautocompleteerror_Setter_(mthis, __arg_0) => mthis["onautocompleteerror"] = __arg_0;
 
-  onbeforecopy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforecopy");
-
-  onbeforecopy_Setter_(mthis, __arg_0) => mthis["onbeforecopy"] = __arg_0;
-
-  onbeforecut_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforecut");
-
-  onbeforecut_Setter_(mthis, __arg_0) => mthis["onbeforecut"] = __arg_0;
-
-  onbeforepaste_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforepaste");
-
-  onbeforepaste_Setter_(mthis, __arg_0) => mthis["onbeforepaste"] = __arg_0;
-
   onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
 
   onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
@@ -3529,18 +4288,10 @@
 
   oncontextmenu_Setter_(mthis, __arg_0) => mthis["oncontextmenu"] = __arg_0;
 
-  oncopy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncopy");
-
-  oncopy_Setter_(mthis, __arg_0) => mthis["oncopy"] = __arg_0;
-
   oncuechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncuechange");
 
   oncuechange_Setter_(mthis, __arg_0) => mthis["oncuechange"] = __arg_0;
 
-  oncut_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncut");
-
-  oncut_Setter_(mthis, __arg_0) => mthis["oncut"] = __arg_0;
-
   ondblclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondblclick");
 
   ondblclick_Setter_(mthis, __arg_0) => mthis["ondblclick"] = __arg_0;
@@ -3593,14 +4344,6 @@
 
   onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
 
-  onfullscreenchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfullscreenchange");
-
-  onfullscreenchange_Setter_(mthis, __arg_0) => mthis["onfullscreenchange"] = __arg_0;
-
-  onfullscreenerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfullscreenerror");
-
-  onfullscreenerror_Setter_(mthis, __arg_0) => mthis["onfullscreenerror"] = __arg_0;
-
   oninput_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninput");
 
   oninput_Setter_(mthis, __arg_0) => mthis["oninput"] = __arg_0;
@@ -3669,10 +4412,6 @@
 
   onmousewheel_Setter_(mthis, __arg_0) => mthis["onmousewheel"] = __arg_0;
 
-  onpaste_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpaste");
-
-  onpaste_Setter_(mthis, __arg_0) => mthis["onpaste"] = __arg_0;
-
   onpause_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpause");
 
   onpause_Setter_(mthis, __arg_0) => mthis["onpause"] = __arg_0;
@@ -3685,13 +4424,37 @@
 
   onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
 
-  onpointerlockchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerlockchange");
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
 
-  onpointerlockchange_Setter_(mthis, __arg_0) => mthis["onpointerlockchange"] = __arg_0;
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
 
-  onpointerlockerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerlockerror");
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
 
-  onpointerlockerror_Setter_(mthis, __arg_0) => mthis["onpointerlockerror"] = __arg_0;
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
 
   onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
 
@@ -3701,10 +4464,6 @@
 
   onratechange_Setter_(mthis, __arg_0) => mthis["onratechange"] = __arg_0;
 
-  onreadystatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreadystatechange");
-
-  onreadystatechange_Setter_(mthis, __arg_0) => mthis["onreadystatechange"] = __arg_0;
-
   onreset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreset");
 
   onreset_Setter_(mthis, __arg_0) => mthis["onreset"] = __arg_0;
@@ -3717,14 +4476,6 @@
 
   onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
 
-  onsearch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsearch");
-
-  onsearch_Setter_(mthis, __arg_0) => mthis["onsearch"] = __arg_0;
-
-  onsecuritypolicyviolation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsecuritypolicyviolation");
-
-  onsecuritypolicyviolation_Setter_(mthis, __arg_0) => mthis["onsecuritypolicyviolation"] = __arg_0;
-
   onseeked_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeked");
 
   onseeked_Setter_(mthis, __arg_0) => mthis["onseeked"] = __arg_0;
@@ -3737,14 +4488,6 @@
 
   onselect_Setter_(mthis, __arg_0) => mthis["onselect"] = __arg_0;
 
-  onselectionchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselectionchange");
-
-  onselectionchange_Setter_(mthis, __arg_0) => mthis["onselectionchange"] = __arg_0;
-
-  onselectstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselectstart");
-
-  onselectstart_Setter_(mthis, __arg_0) => mthis["onselectstart"] = __arg_0;
-
   onshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onshow");
 
   onshow_Setter_(mthis, __arg_0) => mthis["onshow"] = __arg_0;
@@ -3769,22 +4512,6 @@
 
   ontoggle_Setter_(mthis, __arg_0) => mthis["ontoggle"] = __arg_0;
 
-  ontouchcancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchcancel");
-
-  ontouchcancel_Setter_(mthis, __arg_0) => mthis["ontouchcancel"] = __arg_0;
-
-  ontouchend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchend");
-
-  ontouchend_Setter_(mthis, __arg_0) => mthis["ontouchend"] = __arg_0;
-
-  ontouchmove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchmove");
-
-  ontouchmove_Setter_(mthis, __arg_0) => mthis["ontouchmove"] = __arg_0;
-
-  ontouchstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchstart");
-
-  ontouchstart_Setter_(mthis, __arg_0) => mthis["ontouchstart"] = __arg_0;
-
   onvolumechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onvolumechange");
 
   onvolumechange_Setter_(mthis, __arg_0) => mthis["onvolumechange"] = __arg_0;
@@ -3793,130 +4520,94 @@
 
   onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
 
-  onwebkitfullscreenchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitfullscreenchange");
+  childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
 
-  onwebkitfullscreenchange_Setter_(mthis, __arg_0) => mthis["onwebkitfullscreenchange"] = __arg_0;
+  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
 
-  onwebkitfullscreenerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitfullscreenerror");
+  firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
 
-  onwebkitfullscreenerror_Setter_(mthis, __arg_0) => mthis["onwebkitfullscreenerror"] = __arg_0;
+  lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
 
-  onwheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwheel");
+  append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
 
-  onwheel_Setter_(mthis, __arg_0) => mthis["onwheel"] = __arg_0;
+  append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
 
-  plugins_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "plugins");
+  prepend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prepend", []);
 
-  pointerLockElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pointerLockElement");
-
-  preferredStylesheetSet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preferredStylesheetSet");
-
-  queryCommandEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandEnabled", []);
-
-  queryCommandEnabled_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandEnabled", [__arg_0]);
-
-  queryCommandIndeterm_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandIndeterm", []);
-
-  queryCommandIndeterm_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandIndeterm", [__arg_0]);
-
-  queryCommandState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandState", []);
-
-  queryCommandState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandState", [__arg_0]);
-
-  queryCommandSupported_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandSupported", []);
-
-  queryCommandSupported_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandSupported", [__arg_0]);
-
-  queryCommandValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandValue", []);
-
-  queryCommandValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryCommandValue", [__arg_0]);
-
-  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
-
-  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
+  prepend_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "prepend", [__arg_0]);
 
   querySelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", []);
 
   querySelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", [__arg_0]);
 
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
 
-  referrer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "referrer");
+  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
 
-  registerElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "registerElement", []);
+  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
 
-  registerElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "registerElement", [__arg_0]);
-
-  registerElement_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "registerElement", [__arg_0, __arg_1]);
-
-  rootElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rootElement");
-
-  scripts_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scripts");
-
-  selectedStylesheetSet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectedStylesheetSet");
-
-  selectedStylesheetSet_Setter_(mthis, __arg_0) => mthis["selectedStylesheetSet"] = __arg_0;
-
-  styleSheets_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleSheets");
-
-  timeline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeline");
-
-  title_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "title");
-
-  title_Setter_(mthis, __arg_0) => mthis["title"] = __arg_0;
-
-  transformDocumentToTreeView_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "transformDocumentToTreeView", []);
-
-  transformDocumentToTreeView_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "transformDocumentToTreeView", [__arg_0]);
-
-  visibilityState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "visibilityState");
-
-  webkitCancelFullScreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelFullScreen", []);
-
-  webkitExitFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitExitFullscreen", []);
-
-  webkitFullscreenElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitFullscreenElement");
-
-  webkitFullscreenEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitFullscreenEnabled");
-
-  webkitHidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitHidden");
-
-  webkitIsFullScreen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitIsFullScreen");
-
-  webkitVisibilityState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitVisibilityState");
-
-  xmlEncoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlEncoding");
+  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
 
 }
 
 class BlinkDocumentFragment extends BlinkNode {
   static final instance = new BlinkDocumentFragment();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DocumentFragment"), []);
+
   childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "DocumentFragment"), []);
+  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
 
   firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
 
-  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
-
-  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
-
   lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
 
-  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
+  append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
 
-  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
+  append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
+
+  prepend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prepend", []);
+
+  prepend_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "prepend", [__arg_0]);
 
   querySelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", []);
 
   querySelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", [__arg_0]);
 
+  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
+
+  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
+
+  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
+
+  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
+
 }
 
 class BlinkDocumentType extends BlinkNode {
   static final instance = new BlinkDocumentType();
 
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  publicId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "publicId");
+
+  systemId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemId");
+
+  after_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "after", []);
+
+  after_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "after", [__arg_0]);
+
+  before_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "before", []);
+
+  before_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "before", [__arg_0]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  replaceWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", []);
+
+  replaceWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", [__arg_0]);
+
 }
 
 class BlinkDynamicsCompressorNode extends BlinkAudioNode {
@@ -3956,23 +4647,21 @@
 
 }
 
+class BlinkEXTsRGB {
+  static final instance = new BlinkEXTsRGB();
+
+}
+
+class BlinkEffectModel {
+  static final instance = new BlinkEffectModel();
+
+}
+
 class BlinkElement extends BlinkNode {
   static final instance = new BlinkElement();
 
-  animate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "animate", []);
-
-  animate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "animate", [__arg_0]);
-
-  animate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "animate", [__arg_0, __arg_1]);
-
   attributes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "attributes");
 
-  blur_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blur", []);
-
-  childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
-
-  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
-
   classList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "classList");
 
   className_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "className");
@@ -3987,49 +4676,9 @@
 
   clientWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clientWidth");
 
-  createShadowRoot_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createShadowRoot", []);
+  computedName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "computedName");
 
-  firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
-
-  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
-
-  getAnimationPlayers_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAnimationPlayers", []);
-
-  getAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", []);
-
-  getAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", [__arg_0]);
-
-  getAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", [__arg_0, __arg_1]);
-
-  getAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttribute", []);
-
-  getAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttribute", [__arg_0]);
-
-  getBoundingClientRect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBoundingClientRect", []);
-
-  getClientRects_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getClientRects", []);
-
-  getDestinationInsertionPoints_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getDestinationInsertionPoints", []);
-
-  getElementsByClassName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", []);
-
-  getElementsByClassName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", [__arg_0]);
-
-  getElementsByTagName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", []);
-
-  getElementsByTagName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", [__arg_0]);
-
-  hasAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", []);
-
-  hasAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", [__arg_0]);
-
-  hasAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", [__arg_0, __arg_1]);
-
-  hasAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttribute", []);
-
-  hasAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasAttribute", [__arg_0]);
-
-  hasAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributes", []);
+  computedRole_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "computedRole");
 
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
@@ -4039,36 +4688,10 @@
 
   innerHTML_Setter_(mthis, __arg_0) => mthis["innerHTML"] = __arg_0;
 
-  insertAdjacentElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", []);
-
-  insertAdjacentElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", [__arg_0]);
-
-  insertAdjacentElement_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", [__arg_0, __arg_1]);
-
-  insertAdjacentHTML_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", []);
-
-  insertAdjacentHTML_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", [__arg_0]);
-
-  insertAdjacentHTML_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", [__arg_0, __arg_1]);
-
-  insertAdjacentText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", []);
-
-  insertAdjacentText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", [__arg_0]);
-
-  insertAdjacentText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", [__arg_0, __arg_1]);
-
-  lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
-
   localName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "localName");
 
-  matches_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matches", []);
-
-  matches_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matches", [__arg_0]);
-
   namespaceURI_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "namespaceURI");
 
-  nextElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nextElementSibling");
-
   offsetHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetHeight");
 
   offsetLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetLeft");
@@ -4145,44 +4768,8 @@
 
   prefix_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "prefix");
 
-  prefix_Setter_(mthis, __arg_0) => mthis["prefix"] = __arg_0;
-
-  previousElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousElementSibling");
-
-  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
-
-  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
-
-  querySelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", []);
-
-  querySelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", [__arg_0]);
-
-  removeAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", []);
-
-  removeAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", [__arg_0]);
-
-  removeAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", [__arg_0, __arg_1]);
-
-  removeAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAttribute", []);
-
-  removeAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeAttribute", [__arg_0]);
-
-  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
-
-  requestFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestFullscreen", []);
-
-  requestPointerLock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestPointerLock", []);
-
   scrollHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollHeight");
 
-  scrollIntoViewIfNeeded_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoViewIfNeeded", []);
-
-  scrollIntoViewIfNeeded_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoViewIfNeeded", [__arg_0]);
-
-  scrollIntoView_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoView", []);
-
-  scrollIntoView_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoView", [__arg_0]);
-
   scrollLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollLeft");
 
   scrollLeft_Setter_(mthis, __arg_0) => mthis["scrollLeft"] = __arg_0;
@@ -4193,11 +4780,143 @@
 
   scrollWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollWidth");
 
-  setAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0]);
+  shadowRoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowRoot");
 
-  setAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0, __arg_1]);
+  tagName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tagName");
 
-  setAttributeNS_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0, __arg_1, __arg_2]);
+  animate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "animate", []);
+
+  animate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "animate", [__arg_0]);
+
+  animate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "animate", [__arg_0, __arg_1]);
+
+  closest_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "closest", []);
+
+  closest_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "closest", [__arg_0]);
+
+  createShadowRoot_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createShadowRoot", []);
+
+  createShadowRoot_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createShadowRoot", [__arg_0]);
+
+  getAnimations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAnimations", []);
+
+  getAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttribute", []);
+
+  getAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttribute", [__arg_0]);
+
+  getAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", []);
+
+  getAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", [__arg_0]);
+
+  getAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNS", [__arg_0, __arg_1]);
+
+  getAttributeNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNode", []);
+
+  getAttributeNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNode", [__arg_0]);
+
+  getAttributeNodeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNodeNS", []);
+
+  getAttributeNodeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNodeNS", [__arg_0]);
+
+  getAttributeNodeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttributeNodeNS", [__arg_0, __arg_1]);
+
+  getBoundingClientRect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBoundingClientRect", []);
+
+  getClientRects_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getClientRects", []);
+
+  getDestinationInsertionPoints_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getDestinationInsertionPoints", []);
+
+  getElementsByClassName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", []);
+
+  getElementsByClassName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", [__arg_0]);
+
+  getElementsByTagName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", []);
+
+  getElementsByTagName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", [__arg_0]);
+
+  getElementsByTagNameNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", []);
+
+  getElementsByTagNameNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", [__arg_0]);
+
+  getElementsByTagNameNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagNameNS", [__arg_0, __arg_1]);
+
+  hasAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttribute", []);
+
+  hasAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasAttribute", [__arg_0]);
+
+  hasAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", []);
+
+  hasAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", [__arg_0]);
+
+  hasAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributeNS", [__arg_0, __arg_1]);
+
+  hasAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasAttributes", []);
+
+  insertAdjacentElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", []);
+
+  insertAdjacentElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", [__arg_0]);
+
+  insertAdjacentElement_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentElement", [__arg_0, __arg_1]);
+
+  insertAdjacentHTML_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", []);
+
+  insertAdjacentHTML_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", [__arg_0]);
+
+  insertAdjacentHTML_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentHTML", [__arg_0, __arg_1]);
+
+  insertAdjacentText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", []);
+
+  insertAdjacentText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", [__arg_0]);
+
+  insertAdjacentText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertAdjacentText", [__arg_0, __arg_1]);
+
+  matches_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matches", []);
+
+  matches_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matches", [__arg_0]);
+
+  removeAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAttribute", []);
+
+  removeAttribute_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeAttribute", [__arg_0]);
+
+  removeAttributeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", []);
+
+  removeAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", [__arg_0]);
+
+  removeAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNS", [__arg_0, __arg_1]);
+
+  removeAttributeNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNode", []);
+
+  removeAttributeNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeAttributeNode", [__arg_0]);
+
+  requestFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestFullscreen", []);
+
+  requestPointerLock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestPointerLock", []);
+
+  scroll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scroll", []);
+
+  scroll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0]);
+
+  scroll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0, __arg_1]);
+
+  scrollBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", []);
+
+  scrollBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0]);
+
+  scrollBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0, __arg_1]);
+
+  scrollIntoView_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoView", []);
+
+  scrollIntoView_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoView", [__arg_0]);
+
+  scrollIntoViewIfNeeded_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoViewIfNeeded", []);
+
+  scrollIntoViewIfNeeded_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollIntoViewIfNeeded", [__arg_0]);
+
+  scrollTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", []);
+
+  scrollTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0]);
+
+  scrollTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0, __arg_1]);
 
   setAttribute_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setAttribute", []);
 
@@ -4205,1257 +4924,67 @@
 
   setAttribute_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setAttribute", [__arg_0, __arg_1]);
 
-  shadowRoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shadowRoot");
+  setAttributeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0]);
 
-  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
+  setAttributeNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0, __arg_1]);
 
-  tagName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tagName");
+  setAttributeNS_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNS", [__arg_0, __arg_1, __arg_2]);
+
+  setAttributeNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNode", []);
+
+  setAttributeNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNode", [__arg_0]);
+
+  setAttributeNodeNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNodeNS", []);
+
+  setAttributeNodeNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setAttributeNodeNS", [__arg_0]);
+
+  webkitMatchesSelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitMatchesSelector", []);
+
+  webkitMatchesSelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitMatchesSelector", [__arg_0]);
 
   webkitRequestFullScreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFullScreen", []);
 
-  webkitRequestFullScreen_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFullScreen", [__arg_0]);
+  childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
 
-  webkitRequestFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFullscreen", []);
+  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
 
-}
+  firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
 
-class BlinkEntry {
-  static final instance = new BlinkEntry();
-
-  copyTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", []);
-
-  copyTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0]);
-
-  copyTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1]);
-
-  copyTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1, __arg_2]);
-
-  copyTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  filesystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filesystem");
-
-  fullPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullPath");
-
-  getMetadata_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", []);
-
-  getMetadata_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", [__arg_0]);
-
-  getMetadata_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", [__arg_0, __arg_1]);
-
-  getParent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParent", []);
-
-  getParent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParent", [__arg_0]);
-
-  getParent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getParent", [__arg_0, __arg_1]);
-
-  isDirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isDirectory");
-
-  isFile_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isFile");
-
-  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
-
-  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
-
-  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
-
-  moveTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1, __arg_2]);
-
-  moveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
-
-  remove_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0]);
-
-  remove_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0, __arg_1]);
-
-  toURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toURL", []);
-
-}
-
-class BlinkEntrySync {
-  static final instance = new BlinkEntrySync();
-
-  copyTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", []);
-
-  copyTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0]);
-
-  copyTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1]);
-
-  filesystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filesystem");
-
-  fullPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullPath");
-
-  getMetadata_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", []);
-
-  getParent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParent", []);
-
-  isDirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isDirectory");
-
-  isFile_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isFile");
-
-  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
-
-  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
-
-  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
-
-  toURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toURL", []);
-
-}
-
-class BlinkErrorEvent extends BlinkEvent {
-  static final instance = new BlinkErrorEvent();
-
-  colno_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "colno");
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ErrorEvent"), [__arg_0, __arg_1]);
-
-  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
-
-  filename_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filename");
-
-  lineno_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineno");
-
-  message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
-
-}
-
-class BlinkEvent {
-  static final instance = new BlinkEvent();
-
-  bubbles_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bubbles");
-
-  cancelBubble_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cancelBubble");
-
-  cancelBubble_Setter_(mthis, __arg_0) => mthis["cancelBubble"] = __arg_0;
-
-  cancelable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cancelable");
-
-  clipboardData_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clipboardData");
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Event"), [__arg_0, __arg_1]);
-
-  currentTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTarget");
-
-  defaultPrevented_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultPrevented");
-
-  eventPhase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "eventPhase");
-
-  initEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", []);
-
-  initEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0]);
-
-  initEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0, __arg_1]);
-
-  initEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0, __arg_1, __arg_2]);
-
-  path_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "path");
-
-  preventDefault_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "preventDefault", []);
-
-  returnValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "returnValue");
-
-  returnValue_Setter_(mthis, __arg_0) => mthis["returnValue"] = __arg_0;
-
-  stopImmediatePropagation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stopImmediatePropagation", []);
-
-  stopPropagation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stopPropagation", []);
-
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
-
-  timeStamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeStamp");
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-}
-
-class BlinkEventSource extends BlinkEventTarget {
-  static final instance = new BlinkEventSource();
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), [__arg_0, __arg_1]);
-
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
-  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
-
-  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
-
-  onopen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onopen");
-
-  onopen_Setter_(mthis, __arg_0) => mthis["onopen"] = __arg_0;
-
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
-
-  url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
-
-  withCredentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "withCredentials");
-
-}
-
-class BlinkEventTarget {
-  static final instance = new BlinkEventTarget();
-
-  addEventListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", []);
-
-  addEventListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0]);
-
-  addEventListener_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0, __arg_1]);
-
-  addEventListener_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0, __arg_1, __arg_2]);
-
-  dispatchEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "dispatchEvent", []);
-
-  dispatchEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "dispatchEvent", [__arg_0]);
-
-  removeEventListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", []);
-
-  removeEventListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0]);
-
-  removeEventListener_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0, __arg_1]);
-
-  removeEventListener_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0, __arg_1, __arg_2]);
-
-}
-
-class BlinkExtendableEvent extends BlinkEvent {
-  static final instance = new BlinkExtendableEvent();
-
-  waitUntil_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "waitUntil", []);
-
-  waitUntil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "waitUntil", [__arg_0]);
-
-}
-
-class BlinkFederatedCredential extends BlinkCredential {
-  static final instance = new BlinkFederatedCredential();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FederatedCredential"), [__arg_0, __arg_1]);
-
-  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FederatedCredential"), [__arg_0, __arg_1, __arg_2]);
-
-  constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FederatedCredential"), [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  federation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "federation");
-
-}
-
-class BlinkFetchEvent extends BlinkEvent {
-  static final instance = new BlinkFetchEvent();
-
-  isReload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isReload");
-
-  request_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "request");
-
-  respondWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", []);
-
-  respondWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", [__arg_0]);
-
-}
-
-class BlinkFile extends BlinkBlob {
-  static final instance = new BlinkFile();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0, __arg_1]);
-
-  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0, __arg_1, __arg_2]);
-
-  lastModifiedDate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModifiedDate");
-
-  lastModified_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModified");
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  webkitRelativePath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitRelativePath");
-
-}
-
-class BlinkFileEntry extends BlinkEntry {
-  static final instance = new BlinkFileEntry();
-
-  createWriter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", []);
-
-  createWriter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", [__arg_0]);
-
-  createWriter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", [__arg_0, __arg_1]);
-
-  file_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "file", []);
-
-  file_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "file", [__arg_0]);
-
-  file_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "file", [__arg_0, __arg_1]);
-
-}
-
-class BlinkFileEntrySync extends BlinkEntrySync {
-  static final instance = new BlinkFileEntrySync();
-
-  createWriter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", []);
-
-  file_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "file", []);
-
-}
-
-class BlinkFileError extends BlinkDOMError {
-  static final instance = new BlinkFileError();
-
-  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
-
-}
-
-class BlinkFileList {
-  static final instance = new BlinkFileList();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-}
-
-class BlinkFileReader extends BlinkEventTarget {
-  static final instance = new BlinkFileReader();
-
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FileReader"), []);
-
-  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
-
-  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
-
-  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
-
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
-  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
-
-  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
-
-  onloadend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadend");
-
-  onloadend_Setter_(mthis, __arg_0) => mthis["onloadend"] = __arg_0;
-
-  onloadstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadstart");
-
-  onloadstart_Setter_(mthis, __arg_0) => mthis["onloadstart"] = __arg_0;
-
-  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
-
-  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
-
-  readAsArrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", []);
-
-  readAsArrayBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", [__arg_0]);
-
-  readAsBinaryString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", []);
-
-  readAsBinaryString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", [__arg_0]);
-
-  readAsDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", []);
-
-  readAsDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", [__arg_0]);
-
-  readAsText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", []);
-
-  readAsText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0]);
-
-  readAsText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0, __arg_1]);
-
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
-
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
-}
-
-class BlinkFileReaderSync {
-  static final instance = new BlinkFileReaderSync();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FileReaderSync"), []);
-
-  readAsArrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", []);
-
-  readAsArrayBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", [__arg_0]);
-
-  readAsBinaryString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", []);
-
-  readAsBinaryString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", [__arg_0]);
-
-  readAsDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", []);
-
-  readAsDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", [__arg_0]);
-
-  readAsText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", []);
-
-  readAsText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0]);
-
-  readAsText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0, __arg_1]);
-
-}
-
-class BlinkFileWriter extends BlinkEventTarget {
-  static final instance = new BlinkFileWriter();
-
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
-  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
-
-  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
-
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
-  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
-
-  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
-
-  onwrite_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwrite");
-
-  onwrite_Setter_(mthis, __arg_0) => mthis["onwrite"] = __arg_0;
-
-  onwriteend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwriteend");
-
-  onwriteend_Setter_(mthis, __arg_0) => mthis["onwriteend"] = __arg_0;
-
-  onwritestart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwritestart");
-
-  onwritestart_Setter_(mthis, __arg_0) => mthis["onwritestart"] = __arg_0;
-
-  position_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "position");
-
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
-
-  seek_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "seek", []);
-
-  seek_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "seek", [__arg_0]);
-
-  truncate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "truncate", []);
-
-  truncate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "truncate", [__arg_0]);
-
-  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
-
-  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
-
-}
-
-class BlinkFileWriterSync {
-  static final instance = new BlinkFileWriterSync();
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  position_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "position");
-
-  seek_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "seek", []);
-
-  seek_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "seek", [__arg_0]);
-
-  truncate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "truncate", []);
-
-  truncate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "truncate", [__arg_0]);
-
-  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
-
-  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
-
-}
-
-class BlinkFocusEvent extends BlinkUIEvent {
-  static final instance = new BlinkFocusEvent();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FocusEvent"), [__arg_0, __arg_1]);
-
-  relatedTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedTarget");
-
-}
-
-class BlinkFontFace {
-  static final instance = new BlinkFontFace();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0, __arg_1]);
-
-  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0, __arg_1, __arg_2]);
-
-  family_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "family");
-
-  family_Setter_(mthis, __arg_0) => mthis["family"] = __arg_0;
-
-  featureSettings_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "featureSettings");
-
-  featureSettings_Setter_(mthis, __arg_0) => mthis["featureSettings"] = __arg_0;
-
-  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
-
-  loaded_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loaded");
-
-  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
-
-  stretch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stretch");
-
-  stretch_Setter_(mthis, __arg_0) => mthis["stretch"] = __arg_0;
-
-  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
-
-  style_Setter_(mthis, __arg_0) => mthis["style"] = __arg_0;
-
-  unicodeRange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unicodeRange");
-
-  unicodeRange_Setter_(mthis, __arg_0) => mthis["unicodeRange"] = __arg_0;
-
-  variant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "variant");
-
-  variant_Setter_(mthis, __arg_0) => mthis["variant"] = __arg_0;
-
-  weight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "weight");
-
-  weight_Setter_(mthis, __arg_0) => mthis["weight"] = __arg_0;
-
-}
-
-class BlinkFontFaceSet extends BlinkEventTarget {
-  static final instance = new BlinkFontFaceSet();
-
-  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
-
-  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
-
-  check_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "check", []);
-
-  check_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "check", [__arg_0]);
-
-  check_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "check", [__arg_0, __arg_1]);
-
-  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
-
-  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
-
-  delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
-
-  forEach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "forEach", []);
-
-  forEach_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0]);
-
-  forEach_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0, __arg_1]);
-
-  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
-
-  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
-
-  onloading_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloading");
-
-  onloading_Setter_(mthis, __arg_0) => mthis["onloading"] = __arg_0;
-
-  onloadingdone_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadingdone");
-
-  onloadingdone_Setter_(mthis, __arg_0) => mthis["onloadingdone"] = __arg_0;
-
-  onloadingerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadingerror");
-
-  onloadingerror_Setter_(mthis, __arg_0) => mthis["onloadingerror"] = __arg_0;
-
-  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
-
-  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
-
-}
-
-class BlinkFontFaceSetLoadEvent extends BlinkEvent {
-  static final instance = new BlinkFontFaceSetLoadEvent();
-
-  fontfaces_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fontfaces");
-
-}
-
-class BlinkFormData {
-  static final instance = new BlinkFormData();
+  lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
 
   append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
 
   append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
 
-  append_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0, __arg_1]);
+  prepend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prepend", []);
 
-  append_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0, __arg_1, __arg_2]);
+  prepend_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "prepend", [__arg_0]);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FormData"), []);
+  querySelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", []);
 
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FormData"), [__arg_0]);
+  querySelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", [__arg_0]);
 
-}
+  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
 
-class BlinkGainNode extends BlinkAudioNode {
-  static final instance = new BlinkGainNode();
+  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
 
-  gain_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gain");
+  after_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "after", []);
 
-}
+  after_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "after", [__arg_0]);
 
-class BlinkGamepad {
-  static final instance = new BlinkGamepad();
+  before_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "before", []);
 
-  axes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "axes");
+  before_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "before", [__arg_0]);
 
-  connected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connected");
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
 
-  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+  replaceWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", []);
 
-  index_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "index");
+  replaceWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceWith", [__arg_0]);
 
-  mapping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mapping");
+  nextElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nextElementSibling");
 
-  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
-
-}
-
-class BlinkGamepadButton {
-  static final instance = new BlinkGamepadButton();
-
-  pressed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pressed");
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-}
-
-class BlinkGamepadEvent extends BlinkEvent {
-  static final instance = new BlinkGamepadEvent();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "GamepadEvent"), [__arg_0, __arg_1]);
-
-  gamepad_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gamepad");
-
-}
-
-class BlinkGamepadList {
-  static final instance = new BlinkGamepadList();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-}
-
-class BlinkGeofencing {
-  static final instance = new BlinkGeofencing();
-
-  getRegisteredRegions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegisteredRegions", []);
-
-  registerRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "registerRegion", []);
-
-  registerRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "registerRegion", [__arg_0]);
-
-  unregisterRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregisterRegion", []);
-
-  unregisterRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "unregisterRegion", [__arg_0]);
-
-}
-
-class BlinkGeofencingRegion {
-  static final instance = new BlinkGeofencingRegion();
-
-  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
-
-}
-
-class BlinkGeolocation {
-  static final instance = new BlinkGeolocation();
-
-  clearWatch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearWatch", []);
-
-  clearWatch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearWatch", [__arg_0]);
-
-  getCurrentPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", []);
-
-  getCurrentPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0]);
-
-  getCurrentPosition_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0, __arg_1]);
-
-  getCurrentPosition_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0, __arg_1, __arg_2]);
-
-  watchPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", []);
-
-  watchPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0]);
-
-  watchPosition_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0, __arg_1]);
-
-  watchPosition_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0, __arg_1, __arg_2]);
-
-}
-
-class BlinkGeoposition {
-  static final instance = new BlinkGeoposition();
-
-  coords_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "coords");
-
-  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
-
-}
-
-class BlinkHTMLAllCollection {
-  static final instance = new BlinkHTMLAllCollection();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
-
-  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
-
-}
-
-class BlinkHTMLAnchorElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLAnchorElement();
-
-  download_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "download");
-
-  download_Setter_(mthis, __arg_0) => mthis["download"] = __arg_0;
-
-  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
-
-  hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
-
-  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
-
-  host_Setter_(mthis, __arg_0) => mthis["host"] = __arg_0;
-
-  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
-
-  hostname_Setter_(mthis, __arg_0) => mthis["hostname"] = __arg_0;
-
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
-  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
-
-  hreflang_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hreflang");
-
-  hreflang_Setter_(mthis, __arg_0) => mthis["hreflang"] = __arg_0;
-
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
-
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
-
-  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
-
-  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
-
-  password_Setter_(mthis, __arg_0) => mthis["password"] = __arg_0;
-
-  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
-
-  pathname_Setter_(mthis, __arg_0) => mthis["pathname"] = __arg_0;
-
-  ping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ping");
-
-  ping_Setter_(mthis, __arg_0) => mthis["ping"] = __arg_0;
-
-  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
-
-  port_Setter_(mthis, __arg_0) => mthis["port"] = __arg_0;
-
-  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
-
-  protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
-
-  rel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rel");
-
-  rel_Setter_(mthis, __arg_0) => mthis["rel"] = __arg_0;
-
-  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
-
-  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
-
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
-
-  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
-
-  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
-
-  username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
-
-  username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
-
-}
-
-class BlinkHTMLAppletElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLAppletElement();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
-
-}
-
-class BlinkHTMLAreaElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLAreaElement();
-
-  alt_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alt");
-
-  alt_Setter_(mthis, __arg_0) => mthis["alt"] = __arg_0;
-
-  coords_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "coords");
-
-  coords_Setter_(mthis, __arg_0) => mthis["coords"] = __arg_0;
-
-  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
-
-  hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
-
-  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
-
-  host_Setter_(mthis, __arg_0) => mthis["host"] = __arg_0;
-
-  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
-
-  hostname_Setter_(mthis, __arg_0) => mthis["hostname"] = __arg_0;
-
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
-  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
-
-  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
-
-  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
-
-  password_Setter_(mthis, __arg_0) => mthis["password"] = __arg_0;
-
-  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
-
-  pathname_Setter_(mthis, __arg_0) => mthis["pathname"] = __arg_0;
-
-  ping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ping");
-
-  ping_Setter_(mthis, __arg_0) => mthis["ping"] = __arg_0;
-
-  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
-
-  port_Setter_(mthis, __arg_0) => mthis["port"] = __arg_0;
-
-  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
-
-  protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
-
-  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
-
-  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
-
-  shape_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shape");
-
-  shape_Setter_(mthis, __arg_0) => mthis["shape"] = __arg_0;
-
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
-
-  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
-
-  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
-
-  username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
-
-  username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
-
-}
-
-class BlinkHTMLAudioElement extends BlinkHTMLMediaElement {
-  static final instance = new BlinkHTMLAudioElement();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Audio"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Audio"), [__arg_0]);
-
-}
-
-class BlinkHTMLBRElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLBRElement();
-
-}
-
-class BlinkHTMLBaseElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLBaseElement();
-
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
-  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
-
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
-
-  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
-
-}
-
-class BlinkHTMLBodyElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLBodyElement();
-
-  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
-
-  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
-
-  onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
-
-  onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
-
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
-  onfocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfocus");
-
-  onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
-
-  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
-
-  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
-
-  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
-
-  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
-
-  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
-
-  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
-
-  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
-
-  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
-
-  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
-
-  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
-
-  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
-
-  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
-
-  onorientationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onorientationchange");
-
-  onorientationchange_Setter_(mthis, __arg_0) => mthis["onorientationchange"] = __arg_0;
-
-  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
-
-  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
-
-  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
-
-  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
-
-  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
-
-  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
-
-  onresize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onresize");
-
-  onresize_Setter_(mthis, __arg_0) => mthis["onresize"] = __arg_0;
-
-  onscroll_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onscroll");
-
-  onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
-
-  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
-
-  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
-
-  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
-
-  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
-
-}
-
-class BlinkHTMLButtonElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLButtonElement();
-
-  autofocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autofocus");
-
-  autofocus_Setter_(mthis, __arg_0) => mthis["autofocus"] = __arg_0;
-
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
-  disabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "disabled");
-
-  disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
-
-  formAction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formAction");
-
-  formAction_Setter_(mthis, __arg_0) => mthis["formAction"] = __arg_0;
-
-  formEnctype_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formEnctype");
-
-  formEnctype_Setter_(mthis, __arg_0) => mthis["formEnctype"] = __arg_0;
-
-  formMethod_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formMethod");
-
-  formMethod_Setter_(mthis, __arg_0) => mthis["formMethod"] = __arg_0;
-
-  formNoValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formNoValidate");
-
-  formNoValidate_Setter_(mthis, __arg_0) => mthis["formNoValidate"] = __arg_0;
-
-  formTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formTarget");
-
-  formTarget_Setter_(mthis, __arg_0) => mthis["formTarget"] = __arg_0;
-
-  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
-
-  labels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "labels");
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
-  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
-
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
-
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
-
-  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
-
-  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
-  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
-
-}
-
-class BlinkHTMLCanvasElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLCanvasElement();
-
-  getContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContext", []);
-
-  getContext_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getContext", [__arg_0]);
-
-  getContext_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getContext", [__arg_0, __arg_1]);
-
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
-  height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
-
-  toDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", []);
-
-  toDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", [__arg_0]);
-
-  toDataURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", [__arg_0, __arg_1]);
-
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
-  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
-
-}
-
-class BlinkHTMLCollection {
-  static final instance = new BlinkHTMLCollection();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
-
-  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
-
-}
-
-class BlinkHTMLContentElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLContentElement();
-
-  getDistributedNodes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getDistributedNodes", []);
-
-  select_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "select");
-
-  select_Setter_(mthis, __arg_0) => mthis["select"] = __arg_0;
-
-}
-
-class BlinkHTMLDListElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDListElement();
-
-}
-
-class BlinkHTMLDataListElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDataListElement();
-
-  options_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "options");
-
-}
-
-class BlinkHTMLDetailsElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDetailsElement();
-
-  open_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "open");
-
-  open_Setter_(mthis, __arg_0) => mthis["open"] = __arg_0;
-
-}
-
-class BlinkHTMLDialogElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDialogElement();
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  close_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0]);
-
-  open_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "open");
-
-  open_Setter_(mthis, __arg_0) => mthis["open"] = __arg_0;
-
-  returnValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "returnValue");
-
-  returnValue_Setter_(mthis, __arg_0) => mthis["returnValue"] = __arg_0;
-
-  showModal_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "showModal", []);
-
-  show_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "show", []);
-
-}
-
-class BlinkHTMLDirectoryElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDirectoryElement();
-
-}
-
-class BlinkHTMLDivElement extends BlinkHTMLElement {
-  static final instance = new BlinkHTMLDivElement();
-
-}
-
-class BlinkHTMLDocument extends BlinkDocument {
-  static final instance = new BlinkHTMLDocument();
-
-  alinkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alinkColor");
-
-  alinkColor_Setter_(mthis, __arg_0) => mthis["alinkColor"] = __arg_0;
-
-  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
-
-  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
-
-  captureEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "captureEvents", []);
-
-  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  compatMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compatMode");
-
-  fgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fgColor");
-
-  fgColor_Setter_(mthis, __arg_0) => mthis["fgColor"] = __arg_0;
-
-  linkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "linkColor");
-
-  linkColor_Setter_(mthis, __arg_0) => mthis["linkColor"] = __arg_0;
-
-  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
-
-  releaseEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseEvents", []);
-
-  vlinkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vlinkColor");
-
-  vlinkColor_Setter_(mthis, __arg_0) => mthis["vlinkColor"] = __arg_0;
-
-  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
-
-  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
-
-  writeln_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "writeln", []);
-
-  writeln_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "writeln", [__arg_0]);
-
-}
-
-class BlinkHTMLElement extends BlinkElement {
-  static final instance = new BlinkHTMLElement();
-
-  accessKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "accessKey");
-
-  accessKey_Setter_(mthis, __arg_0) => mthis["accessKey"] = __arg_0;
-
-  click_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "click", []);
-
-  contentEditable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentEditable");
-
-  contentEditable_Setter_(mthis, __arg_0) => mthis["contentEditable"] = __arg_0;
-
-  contextMenu_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contextMenu");
-
-  contextMenu_Setter_(mthis, __arg_0) => mthis["contextMenu"] = __arg_0;
-
-  dir_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dir");
-
-  dir_Setter_(mthis, __arg_0) => mthis["dir"] = __arg_0;
-
-  draggable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "draggable");
-
-  draggable_Setter_(mthis, __arg_0) => mthis["draggable"] = __arg_0;
-
-  hidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hidden");
-
-  hidden_Setter_(mthis, __arg_0) => mthis["hidden"] = __arg_0;
-
-  innerText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "innerText");
-
-  innerText_Setter_(mthis, __arg_0) => mthis["innerText"] = __arg_0;
-
-  inputMethodContext_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "inputMethodContext");
-
-  isContentEditable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isContentEditable");
-
-  lang_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lang");
-
-  lang_Setter_(mthis, __arg_0) => mthis["lang"] = __arg_0;
+  previousElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousElementSibling");
 
   onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
 
@@ -5637,6 +5166,38 @@
 
   onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
 
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
+
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
+
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
+
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
+
   onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
 
   onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
@@ -5701,6 +5262,1806 @@
 
   onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
 
+}
+
+class BlinkEntriesCallback {
+  static final instance = new BlinkEntriesCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkEntry {
+  static final instance = new BlinkEntry();
+
+  filesystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filesystem");
+
+  fullPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullPath");
+
+  isDirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isDirectory");
+
+  isFile_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isFile");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  copyTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", []);
+
+  copyTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0]);
+
+  copyTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1]);
+
+  copyTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1, __arg_2]);
+
+  copyTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  getMetadata_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", []);
+
+  getMetadata_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", [__arg_0]);
+
+  getMetadata_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", [__arg_0, __arg_1]);
+
+  getParent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParent", []);
+
+  getParent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParent", [__arg_0]);
+
+  getParent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getParent", [__arg_0, __arg_1]);
+
+  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
+
+  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
+
+  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
+
+  moveTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1, __arg_2]);
+
+  moveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  remove_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0]);
+
+  remove_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0, __arg_1]);
+
+  toURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toURL", []);
+
+}
+
+class BlinkEntryCallback {
+  static final instance = new BlinkEntryCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkEntrySync {
+  static final instance = new BlinkEntrySync();
+
+  filesystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filesystem");
+
+  fullPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fullPath");
+
+  isDirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isDirectory");
+
+  isFile_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isFile");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  copyTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", []);
+
+  copyTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0]);
+
+  copyTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "copyTo", [__arg_0, __arg_1]);
+
+  getMetadata_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMetadata", []);
+
+  getParent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParent", []);
+
+  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
+
+  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
+
+  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  toURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toURL", []);
+
+}
+
+class BlinkErrorCallback {
+  static final instance = new BlinkErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkErrorEvent extends BlinkEvent {
+  static final instance = new BlinkErrorEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ErrorEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ErrorEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ErrorEvent"), [__arg_0, __arg_1]);
+
+  colno_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "colno");
+
+  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
+
+  filename_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filename");
+
+  lineno_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lineno");
+
+  message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
+
+}
+
+class BlinkEvent {
+  static final instance = new BlinkEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Event"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Event"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Event"), [__arg_0, __arg_1]);
+
+  bubbles_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bubbles");
+
+  cancelBubble_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cancelBubble");
+
+  cancelBubble_Setter_(mthis, __arg_0) => mthis["cancelBubble"] = __arg_0;
+
+  cancelable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cancelable");
+
+  currentTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTarget");
+
+  defaultPrevented_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultPrevented");
+
+  eventPhase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "eventPhase");
+
+  path_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "path");
+
+  returnValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "returnValue");
+
+  returnValue_Setter_(mthis, __arg_0) => mthis["returnValue"] = __arg_0;
+
+  srcElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "srcElement");
+
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  timeStamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeStamp");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  initEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0]);
+
+  initEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0, __arg_1]);
+
+  initEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initEvent", [__arg_0, __arg_1, __arg_2]);
+
+  preventDefault_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "preventDefault", []);
+
+  stopImmediatePropagation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stopImmediatePropagation", []);
+
+  stopPropagation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stopPropagation", []);
+
+}
+
+class BlinkEventListener {
+  static final instance = new BlinkEventListener();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkEventSource extends BlinkEventTarget {
+  static final instance = new BlinkEventSource();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "EventSource"), [__arg_0, __arg_1]);
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  onopen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onopen");
+
+  onopen_Setter_(mthis, __arg_0) => mthis["onopen"] = __arg_0;
+
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
+
+  withCredentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "withCredentials");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+}
+
+class BlinkEventTarget {
+  static final instance = new BlinkEventTarget();
+
+  addEventListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", []);
+
+  addEventListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0]);
+
+  addEventListener_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0, __arg_1]);
+
+  addEventListener_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "addEventListener", [__arg_0, __arg_1, __arg_2]);
+
+  dispatchEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "dispatchEvent", []);
+
+  dispatchEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "dispatchEvent", [__arg_0]);
+
+  removeEventListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", []);
+
+  removeEventListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0]);
+
+  removeEventListener_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0, __arg_1]);
+
+  removeEventListener_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "removeEventListener", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkExtendableEvent extends BlinkEvent {
+  static final instance = new BlinkExtendableEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ExtendableEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ExtendableEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ExtendableEvent"), [__arg_0, __arg_1]);
+
+  waitUntil_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "waitUntil", []);
+
+  waitUntil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "waitUntil", [__arg_0]);
+
+}
+
+class BlinkFederatedCredential extends BlinkCredential {
+  static final instance = new BlinkFederatedCredential();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FederatedCredential"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FederatedCredential"), [__arg_0]);
+
+  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
+
+  provider_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "provider");
+
+}
+
+class BlinkFetchEvent extends BlinkExtendableEvent {
+  static final instance = new BlinkFetchEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FetchEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FetchEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FetchEvent"), [__arg_0, __arg_1]);
+
+  isReload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isReload");
+
+  request_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "request");
+
+  respondWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", []);
+
+  respondWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", [__arg_0]);
+
+}
+
+class BlinkFile extends BlinkBlob {
+  static final instance = new BlinkFile();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0, __arg_1]);
+
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "File"), [__arg_0, __arg_1, __arg_2]);
+
+  lastModified_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModified");
+
+  lastModifiedDate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastModifiedDate");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  webkitRelativePath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitRelativePath");
+
+}
+
+class BlinkFileCallback {
+  static final instance = new BlinkFileCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkFileEntry extends BlinkEntry {
+  static final instance = new BlinkFileEntry();
+
+  createWriter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", []);
+
+  createWriter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", [__arg_0]);
+
+  createWriter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", [__arg_0, __arg_1]);
+
+  file_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "file", []);
+
+  file_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "file", [__arg_0]);
+
+  file_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "file", [__arg_0, __arg_1]);
+
+}
+
+class BlinkFileEntrySync extends BlinkEntrySync {
+  static final instance = new BlinkFileEntrySync();
+
+  createWriter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createWriter", []);
+
+  file_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "file", []);
+
+}
+
+class BlinkFileError extends BlinkDOMError {
+  static final instance = new BlinkFileError();
+
+  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+
+}
+
+class BlinkFileList {
+  static final instance = new BlinkFileList();
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+}
+
+class BlinkFileReader extends BlinkEventTarget {
+  static final instance = new BlinkFileReader();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FileReader"), []);
+
+  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
+
+  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
+
+  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
+
+  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
+
+  onloadend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadend");
+
+  onloadend_Setter_(mthis, __arg_0) => mthis["onloadend"] = __arg_0;
+
+  onloadstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadstart");
+
+  onloadstart_Setter_(mthis, __arg_0) => mthis["onloadstart"] = __arg_0;
+
+  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
+
+  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
+
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
+  readAsArrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", []);
+
+  readAsArrayBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", [__arg_0]);
+
+  readAsBinaryString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", []);
+
+  readAsBinaryString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", [__arg_0]);
+
+  readAsDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", []);
+
+  readAsDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", [__arg_0]);
+
+  readAsText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", []);
+
+  readAsText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0]);
+
+  readAsText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0, __arg_1]);
+
+}
+
+class BlinkFileReaderSync {
+  static final instance = new BlinkFileReaderSync();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FileReaderSync"), []);
+
+  readAsArrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", []);
+
+  readAsArrayBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsArrayBuffer", [__arg_0]);
+
+  readAsBinaryString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", []);
+
+  readAsBinaryString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsBinaryString", [__arg_0]);
+
+  readAsDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", []);
+
+  readAsDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsDataURL", [__arg_0]);
+
+  readAsText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", []);
+
+  readAsText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0]);
+
+  readAsText_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "readAsText", [__arg_0, __arg_1]);
+
+}
+
+class BlinkFileSystemCallback {
+  static final instance = new BlinkFileSystemCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkFileWriter extends BlinkEventTarget {
+  static final instance = new BlinkFileWriter();
+
+  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
+
+  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
+
+  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
+
+  onwrite_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwrite");
+
+  onwrite_Setter_(mthis, __arg_0) => mthis["onwrite"] = __arg_0;
+
+  onwriteend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwriteend");
+
+  onwriteend_Setter_(mthis, __arg_0) => mthis["onwriteend"] = __arg_0;
+
+  onwritestart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwritestart");
+
+  onwritestart_Setter_(mthis, __arg_0) => mthis["onwritestart"] = __arg_0;
+
+  position_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "position");
+
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
+  seek_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "seek", []);
+
+  seek_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "seek", [__arg_0]);
+
+  truncate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "truncate", []);
+
+  truncate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "truncate", [__arg_0]);
+
+  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
+
+  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
+
+}
+
+class BlinkFileWriterCallback {
+  static final instance = new BlinkFileWriterCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkFileWriterSync {
+  static final instance = new BlinkFileWriterSync();
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  position_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "position");
+
+  seek_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "seek", []);
+
+  seek_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "seek", [__arg_0]);
+
+  truncate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "truncate", []);
+
+  truncate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "truncate", [__arg_0]);
+
+  write_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "write", []);
+
+  write_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "write", [__arg_0]);
+
+}
+
+class BlinkFloat32Array extends BlinkArrayBufferView {
+  static final instance = new BlinkFloat32Array();
+
+}
+
+class BlinkFloat64Array extends BlinkArrayBufferView {
+  static final instance = new BlinkFloat64Array();
+
+}
+
+class BlinkFocusEvent extends BlinkUIEvent {
+  static final instance = new BlinkFocusEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FocusEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FocusEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FocusEvent"), [__arg_0, __arg_1]);
+
+  relatedTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedTarget");
+
+}
+
+class BlinkFontFace {
+  static final instance = new BlinkFontFace();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0, __arg_1]);
+
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FontFace"), [__arg_0, __arg_1, __arg_2]);
+
+  family_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "family");
+
+  family_Setter_(mthis, __arg_0) => mthis["family"] = __arg_0;
+
+  featureSettings_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "featureSettings");
+
+  featureSettings_Setter_(mthis, __arg_0) => mthis["featureSettings"] = __arg_0;
+
+  loaded_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loaded");
+
+  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+
+  stretch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stretch");
+
+  stretch_Setter_(mthis, __arg_0) => mthis["stretch"] = __arg_0;
+
+  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
+
+  style_Setter_(mthis, __arg_0) => mthis["style"] = __arg_0;
+
+  unicodeRange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unicodeRange");
+
+  unicodeRange_Setter_(mthis, __arg_0) => mthis["unicodeRange"] = __arg_0;
+
+  variant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "variant");
+
+  variant_Setter_(mthis, __arg_0) => mthis["variant"] = __arg_0;
+
+  weight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "weight");
+
+  weight_Setter_(mthis, __arg_0) => mthis["weight"] = __arg_0;
+
+  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
+
+}
+
+class BlinkFontFaceSet extends BlinkEventTarget {
+  static final instance = new BlinkFontFaceSet();
+
+  onloading_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloading");
+
+  onloading_Setter_(mthis, __arg_0) => mthis["onloading"] = __arg_0;
+
+  onloadingdone_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadingdone");
+
+  onloadingdone_Setter_(mthis, __arg_0) => mthis["onloadingdone"] = __arg_0;
+
+  onloadingerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadingerror");
+
+  onloadingerror_Setter_(mthis, __arg_0) => mthis["onloadingerror"] = __arg_0;
+
+  ready_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ready");
+
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+
+  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
+
+  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
+
+  check_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "check", []);
+
+  check_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "check", [__arg_0]);
+
+  check_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "check", [__arg_0, __arg_1]);
+
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
+
+  delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
+
+  forEach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "forEach", []);
+
+  forEach_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0]);
+
+  forEach_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0, __arg_1]);
+
+  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
+
+  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
+
+  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
+
+  load_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "load", [__arg_0]);
+
+  load_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "load", [__arg_0, __arg_1]);
+
+}
+
+class BlinkFontFaceSetForEachCallback {
+  static final instance = new BlinkFontFaceSetForEachCallback();
+
+  handleItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleItem", [__arg_0]);
+
+  handleItem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "handleItem", [__arg_0, __arg_1]);
+
+  handleItem_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "handleItem", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkFontFaceSetLoadEvent extends BlinkEvent {
+  static final instance = new BlinkFontFaceSetLoadEvent();
+
+  fontfaces_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fontfaces");
+
+}
+
+class BlinkFormData {
+  static final instance = new BlinkFormData();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FormData"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "FormData"), [__arg_0]);
+
+  append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
+
+  append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
+
+  append_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0, __arg_1]);
+
+  append_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0, __arg_1, __arg_2]);
+
+  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
+
+  delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
+
+  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
+
+  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
+
+  getAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAll", []);
+
+  getAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0]);
+
+  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
+
+  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
+
+  set_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "set", []);
+
+  set_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "set", [__arg_0]);
+
+  set_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "set", [__arg_0, __arg_1]);
+
+  set_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "set", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkFrameRequestCallback {
+  static final instance = new BlinkFrameRequestCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkGainNode extends BlinkAudioNode {
+  static final instance = new BlinkGainNode();
+
+  gain_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gain");
+
+}
+
+class BlinkGamepad {
+  static final instance = new BlinkGamepad();
+
+  axes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "axes");
+
+  buttons_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buttons");
+
+  connected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connected");
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+  index_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "index");
+
+  mapping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mapping");
+
+  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
+
+}
+
+class BlinkGamepadButton {
+  static final instance = new BlinkGamepadButton();
+
+  pressed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pressed");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+}
+
+class BlinkGamepadEvent extends BlinkEvent {
+  static final instance = new BlinkGamepadEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "GamepadEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "GamepadEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "GamepadEvent"), [__arg_0, __arg_1]);
+
+  gamepad_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gamepad");
+
+}
+
+class BlinkGamepadList {
+  static final instance = new BlinkGamepadList();
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+}
+
+class BlinkGeofencing {
+  static final instance = new BlinkGeofencing();
+
+  getRegisteredRegions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegisteredRegions", []);
+
+  registerRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "registerRegion", []);
+
+  registerRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "registerRegion", [__arg_0]);
+
+  unregisterRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregisterRegion", []);
+
+  unregisterRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "unregisterRegion", [__arg_0]);
+
+}
+
+class BlinkGeofencingEvent extends BlinkEvent {
+  static final instance = new BlinkGeofencingEvent();
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+  region_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "region");
+
+}
+
+class BlinkGeofencingRegion {
+  static final instance = new BlinkGeofencingRegion();
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+}
+
+class BlinkGeolocation {
+  static final instance = new BlinkGeolocation();
+
+  clearWatch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearWatch", []);
+
+  clearWatch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearWatch", [__arg_0]);
+
+  getCurrentPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", []);
+
+  getCurrentPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0]);
+
+  getCurrentPosition_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0, __arg_1]);
+
+  getCurrentPosition_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentPosition", [__arg_0, __arg_1, __arg_2]);
+
+  watchPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", []);
+
+  watchPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0]);
+
+  watchPosition_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0, __arg_1]);
+
+  watchPosition_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "watchPosition", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkGeoposition {
+  static final instance = new BlinkGeoposition();
+
+  coords_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "coords");
+
+  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
+
+}
+
+class BlinkGlobalEventHandlers {
+  static final instance = new BlinkGlobalEventHandlers();
+
+  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
+
+  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
+
+  onautocomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onautocomplete");
+
+  onautocomplete_Setter_(mthis, __arg_0) => mthis["onautocomplete"] = __arg_0;
+
+  onautocompleteerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onautocompleteerror");
+
+  onautocompleteerror_Setter_(mthis, __arg_0) => mthis["onautocompleteerror"] = __arg_0;
+
+  onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
+
+  onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
+
+  oncancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncancel");
+
+  oncancel_Setter_(mthis, __arg_0) => mthis["oncancel"] = __arg_0;
+
+  oncanplay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncanplay");
+
+  oncanplay_Setter_(mthis, __arg_0) => mthis["oncanplay"] = __arg_0;
+
+  oncanplaythrough_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncanplaythrough");
+
+  oncanplaythrough_Setter_(mthis, __arg_0) => mthis["oncanplaythrough"] = __arg_0;
+
+  onchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onchange");
+
+  onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
+
+  onclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclick");
+
+  onclick_Setter_(mthis, __arg_0) => mthis["onclick"] = __arg_0;
+
+  onclose_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclose");
+
+  onclose_Setter_(mthis, __arg_0) => mthis["onclose"] = __arg_0;
+
+  oncontextmenu_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncontextmenu");
+
+  oncontextmenu_Setter_(mthis, __arg_0) => mthis["oncontextmenu"] = __arg_0;
+
+  oncuechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncuechange");
+
+  oncuechange_Setter_(mthis, __arg_0) => mthis["oncuechange"] = __arg_0;
+
+  ondblclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondblclick");
+
+  ondblclick_Setter_(mthis, __arg_0) => mthis["ondblclick"] = __arg_0;
+
+  ondrag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondrag");
+
+  ondrag_Setter_(mthis, __arg_0) => mthis["ondrag"] = __arg_0;
+
+  ondragend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragend");
+
+  ondragend_Setter_(mthis, __arg_0) => mthis["ondragend"] = __arg_0;
+
+  ondragenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragenter");
+
+  ondragenter_Setter_(mthis, __arg_0) => mthis["ondragenter"] = __arg_0;
+
+  ondragleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragleave");
+
+  ondragleave_Setter_(mthis, __arg_0) => mthis["ondragleave"] = __arg_0;
+
+  ondragover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragover");
+
+  ondragover_Setter_(mthis, __arg_0) => mthis["ondragover"] = __arg_0;
+
+  ondragstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragstart");
+
+  ondragstart_Setter_(mthis, __arg_0) => mthis["ondragstart"] = __arg_0;
+
+  ondrop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondrop");
+
+  ondrop_Setter_(mthis, __arg_0) => mthis["ondrop"] = __arg_0;
+
+  ondurationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondurationchange");
+
+  ondurationchange_Setter_(mthis, __arg_0) => mthis["ondurationchange"] = __arg_0;
+
+  onemptied_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onemptied");
+
+  onemptied_Setter_(mthis, __arg_0) => mthis["onemptied"] = __arg_0;
+
+  onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
+
+  onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onfocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfocus");
+
+  onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
+
+  oninput_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninput");
+
+  oninput_Setter_(mthis, __arg_0) => mthis["oninput"] = __arg_0;
+
+  oninvalid_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninvalid");
+
+  oninvalid_Setter_(mthis, __arg_0) => mthis["oninvalid"] = __arg_0;
+
+  onkeydown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeydown");
+
+  onkeydown_Setter_(mthis, __arg_0) => mthis["onkeydown"] = __arg_0;
+
+  onkeypress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeypress");
+
+  onkeypress_Setter_(mthis, __arg_0) => mthis["onkeypress"] = __arg_0;
+
+  onkeyup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeyup");
+
+  onkeyup_Setter_(mthis, __arg_0) => mthis["onkeyup"] = __arg_0;
+
+  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
+
+  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
+
+  onloadeddata_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadeddata");
+
+  onloadeddata_Setter_(mthis, __arg_0) => mthis["onloadeddata"] = __arg_0;
+
+  onloadedmetadata_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadedmetadata");
+
+  onloadedmetadata_Setter_(mthis, __arg_0) => mthis["onloadedmetadata"] = __arg_0;
+
+  onloadstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadstart");
+
+  onloadstart_Setter_(mthis, __arg_0) => mthis["onloadstart"] = __arg_0;
+
+  onmousedown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousedown");
+
+  onmousedown_Setter_(mthis, __arg_0) => mthis["onmousedown"] = __arg_0;
+
+  onmouseenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseenter");
+
+  onmouseenter_Setter_(mthis, __arg_0) => mthis["onmouseenter"] = __arg_0;
+
+  onmouseleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseleave");
+
+  onmouseleave_Setter_(mthis, __arg_0) => mthis["onmouseleave"] = __arg_0;
+
+  onmousemove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousemove");
+
+  onmousemove_Setter_(mthis, __arg_0) => mthis["onmousemove"] = __arg_0;
+
+  onmouseout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseout");
+
+  onmouseout_Setter_(mthis, __arg_0) => mthis["onmouseout"] = __arg_0;
+
+  onmouseover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseover");
+
+  onmouseover_Setter_(mthis, __arg_0) => mthis["onmouseover"] = __arg_0;
+
+  onmouseup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseup");
+
+  onmouseup_Setter_(mthis, __arg_0) => mthis["onmouseup"] = __arg_0;
+
+  onmousewheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousewheel");
+
+  onmousewheel_Setter_(mthis, __arg_0) => mthis["onmousewheel"] = __arg_0;
+
+  onpause_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpause");
+
+  onpause_Setter_(mthis, __arg_0) => mthis["onpause"] = __arg_0;
+
+  onplay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onplay");
+
+  onplay_Setter_(mthis, __arg_0) => mthis["onplay"] = __arg_0;
+
+  onplaying_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onplaying");
+
+  onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
+
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
+
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
+
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
+
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
+
+  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
+
+  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
+
+  onratechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onratechange");
+
+  onratechange_Setter_(mthis, __arg_0) => mthis["onratechange"] = __arg_0;
+
+  onreset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreset");
+
+  onreset_Setter_(mthis, __arg_0) => mthis["onreset"] = __arg_0;
+
+  onresize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onresize");
+
+  onresize_Setter_(mthis, __arg_0) => mthis["onresize"] = __arg_0;
+
+  onscroll_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onscroll");
+
+  onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
+
+  onseeked_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeked");
+
+  onseeked_Setter_(mthis, __arg_0) => mthis["onseeked"] = __arg_0;
+
+  onseeking_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeking");
+
+  onseeking_Setter_(mthis, __arg_0) => mthis["onseeking"] = __arg_0;
+
+  onselect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselect");
+
+  onselect_Setter_(mthis, __arg_0) => mthis["onselect"] = __arg_0;
+
+  onshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onshow");
+
+  onshow_Setter_(mthis, __arg_0) => mthis["onshow"] = __arg_0;
+
+  onstalled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstalled");
+
+  onstalled_Setter_(mthis, __arg_0) => mthis["onstalled"] = __arg_0;
+
+  onsubmit_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsubmit");
+
+  onsubmit_Setter_(mthis, __arg_0) => mthis["onsubmit"] = __arg_0;
+
+  onsuspend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsuspend");
+
+  onsuspend_Setter_(mthis, __arg_0) => mthis["onsuspend"] = __arg_0;
+
+  ontimeupdate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontimeupdate");
+
+  ontimeupdate_Setter_(mthis, __arg_0) => mthis["ontimeupdate"] = __arg_0;
+
+  ontoggle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontoggle");
+
+  ontoggle_Setter_(mthis, __arg_0) => mthis["ontoggle"] = __arg_0;
+
+  onvolumechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onvolumechange");
+
+  onvolumechange_Setter_(mthis, __arg_0) => mthis["onvolumechange"] = __arg_0;
+
+  onwaiting_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwaiting");
+
+  onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
+
+}
+
+class BlinkHMDVRDevice extends BlinkVRDevice {
+  static final instance = new BlinkHMDVRDevice();
+
+  getEyeParameters_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEyeParameters", []);
+
+  getEyeParameters_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEyeParameters", [__arg_0]);
+
+  setFieldOfView_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setFieldOfView", []);
+
+  setFieldOfView_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setFieldOfView", [__arg_0]);
+
+  setFieldOfView_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setFieldOfView", [__arg_0, __arg_1]);
+
+}
+
+class BlinkHTMLAllCollection {
+  static final instance = new BlinkHTMLAllCollection();
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
+
+  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
+
+}
+
+class BlinkHTMLAnchorElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLAnchorElement();
+
+  charset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charset");
+
+  charset_Setter_(mthis, __arg_0) => mthis["charset"] = __arg_0;
+
+  coords_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "coords");
+
+  coords_Setter_(mthis, __arg_0) => mthis["coords"] = __arg_0;
+
+  download_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "download");
+
+  download_Setter_(mthis, __arg_0) => mthis["download"] = __arg_0;
+
+  hreflang_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hreflang");
+
+  hreflang_Setter_(mthis, __arg_0) => mthis["hreflang"] = __arg_0;
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
+  ping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ping");
+
+  ping_Setter_(mthis, __arg_0) => mthis["ping"] = __arg_0;
+
+  rel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rel");
+
+  rel_Setter_(mthis, __arg_0) => mthis["rel"] = __arg_0;
+
+  rev_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rev");
+
+  rev_Setter_(mthis, __arg_0) => mthis["rev"] = __arg_0;
+
+  shape_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shape");
+
+  shape_Setter_(mthis, __arg_0) => mthis["shape"] = __arg_0;
+
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
+
+  text_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "text");
+
+  text_Setter_(mthis, __arg_0) => mthis["text"] = __arg_0;
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
+  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
+
+  hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
+
+  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+
+  host_Setter_(mthis, __arg_0) => mthis["host"] = __arg_0;
+
+  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
+
+  hostname_Setter_(mthis, __arg_0) => mthis["hostname"] = __arg_0;
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
+
+  password_Setter_(mthis, __arg_0) => mthis["password"] = __arg_0;
+
+  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
+
+  pathname_Setter_(mthis, __arg_0) => mthis["pathname"] = __arg_0;
+
+  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
+
+  port_Setter_(mthis, __arg_0) => mthis["port"] = __arg_0;
+
+  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
+
+  protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
+
+  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
+
+  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
+
+  username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
+
+  username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
+
+  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
+
+}
+
+class BlinkHTMLAppletElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLAppletElement();
+
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  alt_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alt");
+
+  alt_Setter_(mthis, __arg_0) => mthis["alt"] = __arg_0;
+
+  archive_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "archive");
+
+  archive_Setter_(mthis, __arg_0) => mthis["archive"] = __arg_0;
+
+  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+
+  code_Setter_(mthis, __arg_0) => mthis["code"] = __arg_0;
+
+  codeBase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "codeBase");
+
+  codeBase_Setter_(mthis, __arg_0) => mthis["codeBase"] = __arg_0;
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
+
+  hspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hspace");
+
+  hspace_Setter_(mthis, __arg_0) => mthis["hspace"] = __arg_0;
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
+  object_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "object");
+
+  object_Setter_(mthis, __arg_0) => mthis["object"] = __arg_0;
+
+  vspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vspace");
+
+  vspace_Setter_(mthis, __arg_0) => mthis["vspace"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
+
+}
+
+class BlinkHTMLAreaElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLAreaElement();
+
+  alt_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alt");
+
+  alt_Setter_(mthis, __arg_0) => mthis["alt"] = __arg_0;
+
+  coords_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "coords");
+
+  coords_Setter_(mthis, __arg_0) => mthis["coords"] = __arg_0;
+
+  noHref_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "noHref");
+
+  noHref_Setter_(mthis, __arg_0) => mthis["noHref"] = __arg_0;
+
+  ping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ping");
+
+  ping_Setter_(mthis, __arg_0) => mthis["ping"] = __arg_0;
+
+  shape_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shape");
+
+  shape_Setter_(mthis, __arg_0) => mthis["shape"] = __arg_0;
+
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
+
+  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
+
+  hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
+
+  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+
+  host_Setter_(mthis, __arg_0) => mthis["host"] = __arg_0;
+
+  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
+
+  hostname_Setter_(mthis, __arg_0) => mthis["hostname"] = __arg_0;
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
+
+  password_Setter_(mthis, __arg_0) => mthis["password"] = __arg_0;
+
+  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
+
+  pathname_Setter_(mthis, __arg_0) => mthis["pathname"] = __arg_0;
+
+  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
+
+  port_Setter_(mthis, __arg_0) => mthis["port"] = __arg_0;
+
+  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
+
+  protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
+
+  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
+
+  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
+
+  username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
+
+  username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
+
+  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
+
+}
+
+class BlinkHTMLAudioElement extends BlinkHTMLMediaElement {
+  static final instance = new BlinkHTMLAudioElement();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Audio"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Audio"), [__arg_0]);
+
+}
+
+class BlinkHTMLBRElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLBRElement();
+
+  clear_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clear");
+
+  clear_Setter_(mthis, __arg_0) => mthis["clear"] = __arg_0;
+
+}
+
+class BlinkHTMLBaseElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLBaseElement();
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
+
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
+
+}
+
+class BlinkHTMLBodyElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLBodyElement();
+
+  aLink_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "aLink");
+
+  aLink_Setter_(mthis, __arg_0) => mthis["aLink"] = __arg_0;
+
+  background_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "background");
+
+  background_Setter_(mthis, __arg_0) => mthis["background"] = __arg_0;
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
+  link_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "link");
+
+  link_Setter_(mthis, __arg_0) => mthis["link"] = __arg_0;
+
+  onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
+
+  onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onfocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfocus");
+
+  onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
+
+  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
+
+  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
+
+  onorientationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onorientationchange");
+
+  onorientationchange_Setter_(mthis, __arg_0) => mthis["onorientationchange"] = __arg_0;
+
+  onresize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onresize");
+
+  onresize_Setter_(mthis, __arg_0) => mthis["onresize"] = __arg_0;
+
+  onscroll_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onscroll");
+
+  onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
+
+  text_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "text");
+
+  text_Setter_(mthis, __arg_0) => mthis["text"] = __arg_0;
+
+  vLink_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vLink");
+
+  vLink_Setter_(mthis, __arg_0) => mthis["vLink"] = __arg_0;
+
+  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
+
+  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
+
+  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
+
+  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
+
+  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
+
+  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
+
+  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
+
+  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
+
+  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
+
+  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
+
+  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
+
+  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
+
+  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
+
+  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
+
+  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
+
+  onrejectionhandled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onrejectionhandled");
+
+  onrejectionhandled_Setter_(mthis, __arg_0) => mthis["onrejectionhandled"] = __arg_0;
+
+  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
+
+  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
+
+  onunhandledrejection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunhandledrejection");
+
+  onunhandledrejection_Setter_(mthis, __arg_0) => mthis["onunhandledrejection"] = __arg_0;
+
+  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
+
+  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
+
+}
+
+class BlinkHTMLButtonElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLButtonElement();
+
+  autofocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autofocus");
+
+  autofocus_Setter_(mthis, __arg_0) => mthis["autofocus"] = __arg_0;
+
+  disabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "disabled");
+
+  disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
+
+  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
+
+  formAction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formAction");
+
+  formAction_Setter_(mthis, __arg_0) => mthis["formAction"] = __arg_0;
+
+  formEnctype_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formEnctype");
+
+  formEnctype_Setter_(mthis, __arg_0) => mthis["formEnctype"] = __arg_0;
+
+  formMethod_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formMethod");
+
+  formMethod_Setter_(mthis, __arg_0) => mthis["formMethod"] = __arg_0;
+
+  formNoValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formNoValidate");
+
+  formNoValidate_Setter_(mthis, __arg_0) => mthis["formNoValidate"] = __arg_0;
+
+  formTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formTarget");
+
+  formTarget_Setter_(mthis, __arg_0) => mthis["formTarget"] = __arg_0;
+
+  labels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "labels");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
+  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
+
+  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
+  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
+}
+
+class BlinkHTMLCanvasElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLCanvasElement();
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
+  getContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContext", []);
+
+  getContext_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getContext", [__arg_0]);
+
+  getContext_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getContext", [__arg_0, __arg_1]);
+
+  toDataURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", []);
+
+  toDataURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", [__arg_0]);
+
+  toDataURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "toDataURL", [__arg_0, __arg_1]);
+
+}
+
+class BlinkHTMLCollection {
+  static final instance = new BlinkHTMLCollection();
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
+
+  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
+
+}
+
+class BlinkHTMLContentElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLContentElement();
+
+  select_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "select");
+
+  select_Setter_(mthis, __arg_0) => mthis["select"] = __arg_0;
+
+  getDistributedNodes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getDistributedNodes", []);
+
+}
+
+class BlinkHTMLDListElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDListElement();
+
+  compact_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compact");
+
+  compact_Setter_(mthis, __arg_0) => mthis["compact"] = __arg_0;
+
+}
+
+class BlinkHTMLDataListElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDataListElement();
+
+  options_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "options");
+
+}
+
+class BlinkHTMLDetailsElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDetailsElement();
+
+  open_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "open");
+
+  open_Setter_(mthis, __arg_0) => mthis["open"] = __arg_0;
+
+}
+
+class BlinkHTMLDialogElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDialogElement();
+
+  open_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "open");
+
+  open_Setter_(mthis, __arg_0) => mthis["open"] = __arg_0;
+
+  returnValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "returnValue");
+
+  returnValue_Setter_(mthis, __arg_0) => mthis["returnValue"] = __arg_0;
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  close_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0]);
+
+  show_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "show", []);
+
+  showModal_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "showModal", []);
+
+}
+
+class BlinkHTMLDirectoryElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDirectoryElement();
+
+  compact_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compact");
+
+  compact_Setter_(mthis, __arg_0) => mthis["compact"] = __arg_0;
+
+}
+
+class BlinkHTMLDivElement extends BlinkHTMLElement {
+  static final instance = new BlinkHTMLDivElement();
+
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+}
+
+class BlinkHTMLDocument extends BlinkDocument {
+  static final instance = new BlinkHTMLDocument();
+
+  alinkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alinkColor");
+
+  alinkColor_Setter_(mthis, __arg_0) => mthis["alinkColor"] = __arg_0;
+
+  all_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "all");
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
+  fgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fgColor");
+
+  fgColor_Setter_(mthis, __arg_0) => mthis["fgColor"] = __arg_0;
+
+  linkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "linkColor");
+
+  linkColor_Setter_(mthis, __arg_0) => mthis["linkColor"] = __arg_0;
+
+  vlinkColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vlinkColor");
+
+  vlinkColor_Setter_(mthis, __arg_0) => mthis["vlinkColor"] = __arg_0;
+
+  captureEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "captureEvents", []);
+
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  releaseEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseEvents", []);
+
+}
+
+class BlinkHTMLElement extends BlinkElement {
+  static final instance = new BlinkHTMLElement();
+
+  accessKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "accessKey");
+
+  accessKey_Setter_(mthis, __arg_0) => mthis["accessKey"] = __arg_0;
+
+  contentEditable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentEditable");
+
+  contentEditable_Setter_(mthis, __arg_0) => mthis["contentEditable"] = __arg_0;
+
+  contextMenu_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contextMenu");
+
+  contextMenu_Setter_(mthis, __arg_0) => mthis["contextMenu"] = __arg_0;
+
+  dataset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dataset");
+
+  dir_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dir");
+
+  dir_Setter_(mthis, __arg_0) => mthis["dir"] = __arg_0;
+
+  draggable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "draggable");
+
+  draggable_Setter_(mthis, __arg_0) => mthis["draggable"] = __arg_0;
+
+  hidden_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hidden");
+
+  hidden_Setter_(mthis, __arg_0) => mthis["hidden"] = __arg_0;
+
+  innerText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "innerText");
+
+  innerText_Setter_(mthis, __arg_0) => mthis["innerText"] = __arg_0;
+
+  isContentEditable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isContentEditable");
+
+  lang_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lang");
+
+  lang_Setter_(mthis, __arg_0) => mthis["lang"] = __arg_0;
+
+  offsetHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetHeight");
+
+  offsetLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetLeft");
+
+  offsetParent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetParent");
+
+  offsetTop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetTop");
+
+  offsetWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetWidth");
+
   outerText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outerText");
 
   outerText_Setter_(mthis, __arg_0) => mthis["outerText"] = __arg_0;
@@ -5709,6 +7070,8 @@
 
   spellcheck_Setter_(mthis, __arg_0) => mthis["spellcheck"] = __arg_0;
 
+  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
+
   tabIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tabIndex");
 
   tabIndex_Setter_(mthis, __arg_0) => mthis["tabIndex"] = __arg_0;
@@ -5725,29 +7088,301 @@
 
   webkitdropzone_Setter_(mthis, __arg_0) => mthis["webkitdropzone"] = __arg_0;
 
+  blur_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blur", []);
+
+  click_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "click", []);
+
+  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
+
+  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
+
+  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
+
+  onautocomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onautocomplete");
+
+  onautocomplete_Setter_(mthis, __arg_0) => mthis["onautocomplete"] = __arg_0;
+
+  onautocompleteerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onautocompleteerror");
+
+  onautocompleteerror_Setter_(mthis, __arg_0) => mthis["onautocompleteerror"] = __arg_0;
+
+  onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
+
+  onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
+
+  oncancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncancel");
+
+  oncancel_Setter_(mthis, __arg_0) => mthis["oncancel"] = __arg_0;
+
+  oncanplay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncanplay");
+
+  oncanplay_Setter_(mthis, __arg_0) => mthis["oncanplay"] = __arg_0;
+
+  oncanplaythrough_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncanplaythrough");
+
+  oncanplaythrough_Setter_(mthis, __arg_0) => mthis["oncanplaythrough"] = __arg_0;
+
+  onchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onchange");
+
+  onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
+
+  onclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclick");
+
+  onclick_Setter_(mthis, __arg_0) => mthis["onclick"] = __arg_0;
+
+  onclose_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclose");
+
+  onclose_Setter_(mthis, __arg_0) => mthis["onclose"] = __arg_0;
+
+  oncontextmenu_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncontextmenu");
+
+  oncontextmenu_Setter_(mthis, __arg_0) => mthis["oncontextmenu"] = __arg_0;
+
+  oncuechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncuechange");
+
+  oncuechange_Setter_(mthis, __arg_0) => mthis["oncuechange"] = __arg_0;
+
+  ondblclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondblclick");
+
+  ondblclick_Setter_(mthis, __arg_0) => mthis["ondblclick"] = __arg_0;
+
+  ondrag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondrag");
+
+  ondrag_Setter_(mthis, __arg_0) => mthis["ondrag"] = __arg_0;
+
+  ondragend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragend");
+
+  ondragend_Setter_(mthis, __arg_0) => mthis["ondragend"] = __arg_0;
+
+  ondragenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragenter");
+
+  ondragenter_Setter_(mthis, __arg_0) => mthis["ondragenter"] = __arg_0;
+
+  ondragleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragleave");
+
+  ondragleave_Setter_(mthis, __arg_0) => mthis["ondragleave"] = __arg_0;
+
+  ondragover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragover");
+
+  ondragover_Setter_(mthis, __arg_0) => mthis["ondragover"] = __arg_0;
+
+  ondragstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondragstart");
+
+  ondragstart_Setter_(mthis, __arg_0) => mthis["ondragstart"] = __arg_0;
+
+  ondrop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondrop");
+
+  ondrop_Setter_(mthis, __arg_0) => mthis["ondrop"] = __arg_0;
+
+  ondurationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondurationchange");
+
+  ondurationchange_Setter_(mthis, __arg_0) => mthis["ondurationchange"] = __arg_0;
+
+  onemptied_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onemptied");
+
+  onemptied_Setter_(mthis, __arg_0) => mthis["onemptied"] = __arg_0;
+
+  onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
+
+  onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onfocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfocus");
+
+  onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
+
+  oninput_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninput");
+
+  oninput_Setter_(mthis, __arg_0) => mthis["oninput"] = __arg_0;
+
+  oninvalid_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninvalid");
+
+  oninvalid_Setter_(mthis, __arg_0) => mthis["oninvalid"] = __arg_0;
+
+  onkeydown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeydown");
+
+  onkeydown_Setter_(mthis, __arg_0) => mthis["onkeydown"] = __arg_0;
+
+  onkeypress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeypress");
+
+  onkeypress_Setter_(mthis, __arg_0) => mthis["onkeypress"] = __arg_0;
+
+  onkeyup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onkeyup");
+
+  onkeyup_Setter_(mthis, __arg_0) => mthis["onkeyup"] = __arg_0;
+
+  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
+
+  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
+
+  onloadeddata_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadeddata");
+
+  onloadeddata_Setter_(mthis, __arg_0) => mthis["onloadeddata"] = __arg_0;
+
+  onloadedmetadata_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadedmetadata");
+
+  onloadedmetadata_Setter_(mthis, __arg_0) => mthis["onloadedmetadata"] = __arg_0;
+
+  onloadstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onloadstart");
+
+  onloadstart_Setter_(mthis, __arg_0) => mthis["onloadstart"] = __arg_0;
+
+  onmousedown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousedown");
+
+  onmousedown_Setter_(mthis, __arg_0) => mthis["onmousedown"] = __arg_0;
+
+  onmouseenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseenter");
+
+  onmouseenter_Setter_(mthis, __arg_0) => mthis["onmouseenter"] = __arg_0;
+
+  onmouseleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseleave");
+
+  onmouseleave_Setter_(mthis, __arg_0) => mthis["onmouseleave"] = __arg_0;
+
+  onmousemove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousemove");
+
+  onmousemove_Setter_(mthis, __arg_0) => mthis["onmousemove"] = __arg_0;
+
+  onmouseout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseout");
+
+  onmouseout_Setter_(mthis, __arg_0) => mthis["onmouseout"] = __arg_0;
+
+  onmouseover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseover");
+
+  onmouseover_Setter_(mthis, __arg_0) => mthis["onmouseover"] = __arg_0;
+
+  onmouseup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmouseup");
+
+  onmouseup_Setter_(mthis, __arg_0) => mthis["onmouseup"] = __arg_0;
+
+  onmousewheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousewheel");
+
+  onmousewheel_Setter_(mthis, __arg_0) => mthis["onmousewheel"] = __arg_0;
+
+  onpause_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpause");
+
+  onpause_Setter_(mthis, __arg_0) => mthis["onpause"] = __arg_0;
+
+  onplay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onplay");
+
+  onplay_Setter_(mthis, __arg_0) => mthis["onplay"] = __arg_0;
+
+  onplaying_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onplaying");
+
+  onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
+
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
+
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
+
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
+
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
+
+  onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
+
+  onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
+
+  onratechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onratechange");
+
+  onratechange_Setter_(mthis, __arg_0) => mthis["onratechange"] = __arg_0;
+
+  onreset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreset");
+
+  onreset_Setter_(mthis, __arg_0) => mthis["onreset"] = __arg_0;
+
+  onresize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onresize");
+
+  onresize_Setter_(mthis, __arg_0) => mthis["onresize"] = __arg_0;
+
+  onscroll_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onscroll");
+
+  onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
+
+  onseeked_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeked");
+
+  onseeked_Setter_(mthis, __arg_0) => mthis["onseeked"] = __arg_0;
+
+  onseeking_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeking");
+
+  onseeking_Setter_(mthis, __arg_0) => mthis["onseeking"] = __arg_0;
+
+  onselect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onselect");
+
+  onselect_Setter_(mthis, __arg_0) => mthis["onselect"] = __arg_0;
+
+  onshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onshow");
+
+  onshow_Setter_(mthis, __arg_0) => mthis["onshow"] = __arg_0;
+
+  onstalled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstalled");
+
+  onstalled_Setter_(mthis, __arg_0) => mthis["onstalled"] = __arg_0;
+
+  onsubmit_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsubmit");
+
+  onsubmit_Setter_(mthis, __arg_0) => mthis["onsubmit"] = __arg_0;
+
+  onsuspend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsuspend");
+
+  onsuspend_Setter_(mthis, __arg_0) => mthis["onsuspend"] = __arg_0;
+
+  ontimeupdate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontimeupdate");
+
+  ontimeupdate_Setter_(mthis, __arg_0) => mthis["ontimeupdate"] = __arg_0;
+
+  ontoggle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontoggle");
+
+  ontoggle_Setter_(mthis, __arg_0) => mthis["ontoggle"] = __arg_0;
+
+  onvolumechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onvolumechange");
+
+  onvolumechange_Setter_(mthis, __arg_0) => mthis["onvolumechange"] = __arg_0;
+
+  onwaiting_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwaiting");
+
+  onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
+
 }
 
 class BlinkHTMLEmbedElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLEmbedElement();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
-
   align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
 
   align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
 
-  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
-
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
-
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
-
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
@@ -5764,13 +7399,17 @@
 
   width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
 
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
+
+  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+
 }
 
 class BlinkHTMLFieldSetElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLFieldSetElement();
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   disabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "disabled");
 
   disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
@@ -5783,10 +7422,6 @@
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
-
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
@@ -5795,17 +7430,39 @@
 
   willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
 
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
 }
 
 class BlinkHTMLFontElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLFontElement();
 
+  color_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "color");
+
+  color_Setter_(mthis, __arg_0) => mthis["color"] = __arg_0;
+
+  face_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "face");
+
+  face_Setter_(mthis, __arg_0) => mthis["face"] = __arg_0;
+
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+  size_Setter_(mthis, __arg_0) => mthis["size"] = __arg_0;
+
 }
 
 class BlinkHTMLFormControlsCollection extends BlinkHTMLCollection {
   static final instance = new BlinkHTMLFormControlsCollection();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
   namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
 
@@ -5816,8 +7473,6 @@
 class BlinkHTMLFormElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLFormElement();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   acceptCharset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "acceptCharset");
 
   acceptCharset_Setter_(mthis, __arg_0) => mthis["acceptCharset"] = __arg_0;
@@ -5830,8 +7485,6 @@
 
   autocomplete_Setter_(mthis, __arg_0) => mthis["autocomplete"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   elements_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "elements");
 
   encoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "encoding");
@@ -5856,37 +7509,191 @@
 
   noValidate_Setter_(mthis, __arg_0) => mthis["noValidate"] = __arg_0;
 
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
+
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
   requestAutocomplete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestAutocomplete", []);
 
+  requestAutocomplete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestAutocomplete", [__arg_0]);
+
   reset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reset", []);
 
   submit_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "submit", []);
 
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
-
-  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
-
 }
 
 class BlinkHTMLFrameElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLFrameElement();
 
+  contentDocument_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentDocument");
+
+  contentWindow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentWindow");
+
+  frameBorder_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frameBorder");
+
+  frameBorder_Setter_(mthis, __arg_0) => mthis["frameBorder"] = __arg_0;
+
+  longDesc_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "longDesc");
+
+  longDesc_Setter_(mthis, __arg_0) => mthis["longDesc"] = __arg_0;
+
+  marginHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "marginHeight");
+
+  marginHeight_Setter_(mthis, __arg_0) => mthis["marginHeight"] = __arg_0;
+
+  marginWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "marginWidth");
+
+  marginWidth_Setter_(mthis, __arg_0) => mthis["marginWidth"] = __arg_0;
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
+  noResize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "noResize");
+
+  noResize_Setter_(mthis, __arg_0) => mthis["noResize"] = __arg_0;
+
+  scrolling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrolling");
+
+  scrolling_Setter_(mthis, __arg_0) => mthis["scrolling"] = __arg_0;
+
+  src_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "src");
+
+  src_Setter_(mthis, __arg_0) => mthis["src"] = __arg_0;
+
+  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+
 }
 
 class BlinkHTMLFrameSetElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLFrameSetElement();
 
+  cols_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cols");
+
+  cols_Setter_(mthis, __arg_0) => mthis["cols"] = __arg_0;
+
+  onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
+
+  onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onfocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfocus");
+
+  onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
+
+  onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
+
+  onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
+
+  onorientationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onorientationchange");
+
+  onorientationchange_Setter_(mthis, __arg_0) => mthis["onorientationchange"] = __arg_0;
+
+  onresize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onresize");
+
+  onresize_Setter_(mthis, __arg_0) => mthis["onresize"] = __arg_0;
+
+  onscroll_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onscroll");
+
+  onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
+
+  rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
+
+  rows_Setter_(mthis, __arg_0) => mthis["rows"] = __arg_0;
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
+  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
+
+  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
+
+  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
+
+  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
+
+  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
+
+  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
+
+  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
+
+  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
+
+  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
+
+  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
+
+  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
+
+  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
+
+  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
+
+  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
+
+  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
+
+  onrejectionhandled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onrejectionhandled");
+
+  onrejectionhandled_Setter_(mthis, __arg_0) => mthis["onrejectionhandled"] = __arg_0;
+
+  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
+
+  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
+
+  onunhandledrejection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunhandledrejection");
+
+  onunhandledrejection_Setter_(mthis, __arg_0) => mthis["onunhandledrejection"] = __arg_0;
+
+  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
+
+  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
+
 }
 
 class BlinkHTMLHRElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLHRElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
   color_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "color");
 
   color_Setter_(mthis, __arg_0) => mthis["color"] = __arg_0;
 
+  noShade_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "noShade");
+
+  noShade_Setter_(mthis, __arg_0) => mthis["noShade"] = __arg_0;
+
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+  size_Setter_(mthis, __arg_0) => mthis["size"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
 }
 
 class BlinkHTMLHeadElement extends BlinkHTMLElement {
@@ -5897,16 +7704,28 @@
 class BlinkHTMLHeadingElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLHeadingElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
 }
 
 class BlinkHTMLHtmlElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLHtmlElement();
 
+  version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
+
+  version_Setter_(mthis, __arg_0) => mthis["version"] = __arg_0;
+
 }
 
 class BlinkHTMLIFrameElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLIFrameElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
   allowFullscreen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "allowFullscreen");
 
   allowFullscreen_Setter_(mthis, __arg_0) => mthis["allowFullscreen"] = __arg_0;
@@ -5915,15 +7734,25 @@
 
   contentWindow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentWindow");
 
-  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+  frameBorder_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frameBorder");
+
+  frameBorder_Setter_(mthis, __arg_0) => mthis["frameBorder"] = __arg_0;
 
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
+  longDesc_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "longDesc");
 
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
+  longDesc_Setter_(mthis, __arg_0) => mthis["longDesc"] = __arg_0;
+
+  marginHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "marginHeight");
+
+  marginHeight_Setter_(mthis, __arg_0) => mthis["marginHeight"] = __arg_0;
+
+  marginWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "marginWidth");
+
+  marginWidth_Setter_(mthis, __arg_0) => mthis["marginWidth"] = __arg_0;
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
@@ -5931,7 +7760,9 @@
 
   sandbox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sandbox");
 
-  sandbox_Setter_(mthis, __arg_0) => mthis["sandbox"] = __arg_0;
+  scrolling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrolling");
+
+  scrolling_Setter_(mthis, __arg_0) => mthis["scrolling"] = __arg_0;
 
   src_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "src");
 
@@ -5945,11 +7776,23 @@
 
   width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
 
+  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+
 }
 
 class BlinkHTMLImageElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLImageElement();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), [__arg_0, __arg_1]);
+
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
   alt_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alt");
 
   alt_Setter_(mthis, __arg_0) => mthis["alt"] = __arg_0;
@@ -5960,12 +7803,6 @@
 
   complete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "complete");
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Image"), [__arg_0, __arg_1]);
-
   crossOrigin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "crossOrigin");
 
   crossOrigin_Setter_(mthis, __arg_0) => mthis["crossOrigin"] = __arg_0;
@@ -5976,18 +7813,26 @@
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
+  hspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hspace");
 
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
+  hspace_Setter_(mthis, __arg_0) => mthis["hspace"] = __arg_0;
 
   isMap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isMap");
 
   isMap_Setter_(mthis, __arg_0) => mthis["isMap"] = __arg_0;
 
+  longDesc_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "longDesc");
+
+  longDesc_Setter_(mthis, __arg_0) => mthis["longDesc"] = __arg_0;
+
   lowsrc_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lowsrc");
 
   lowsrc_Setter_(mthis, __arg_0) => mthis["lowsrc"] = __arg_0;
 
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
+
   naturalHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "naturalHeight");
 
   naturalWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "naturalWidth");
@@ -6008,6 +7853,10 @@
 
   useMap_Setter_(mthis, __arg_0) => mthis["useMap"] = __arg_0;
 
+  vspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vspace");
+
+  vspace_Setter_(mthis, __arg_0) => mthis["vspace"] = __arg_0;
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
@@ -6025,10 +7874,18 @@
 
   accept_Setter_(mthis, __arg_0) => mthis["accept"] = __arg_0;
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
   alt_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alt");
 
   alt_Setter_(mthis, __arg_0) => mthis["alt"] = __arg_0;
 
+  autocapitalize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autocapitalize");
+
+  autocapitalize_Setter_(mthis, __arg_0) => mthis["autocapitalize"] = __arg_0;
+
   autocomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autocomplete");
 
   autocomplete_Setter_(mthis, __arg_0) => mthis["autocomplete"] = __arg_0;
@@ -6041,8 +7898,6 @@
 
   capture_Setter_(mthis, __arg_0) => mthis["capture"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   checked_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "checked");
 
   checked_Setter_(mthis, __arg_0) => mthis["checked"] = __arg_0;
@@ -6067,6 +7922,8 @@
 
   files_Setter_(mthis, __arg_0) => mthis["files"] = __arg_0;
 
+  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
+
   formAction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formAction");
 
   formAction_Setter_(mthis, __arg_0) => mthis["formAction"] = __arg_0;
@@ -6087,8 +7944,6 @@
 
   formTarget_Setter_(mthis, __arg_0) => mthis["formTarget"] = __arg_0;
 
-  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
-
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
@@ -6109,18 +7964,22 @@
 
   list_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "list");
 
-  maxLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxLength");
-
-  maxLength_Setter_(mthis, __arg_0) => mthis["maxLength"] = __arg_0;
-
   max_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "max");
 
   max_Setter_(mthis, __arg_0) => mthis["max"] = __arg_0;
 
+  maxLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxLength");
+
+  maxLength_Setter_(mthis, __arg_0) => mthis["maxLength"] = __arg_0;
+
   min_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "min");
 
   min_Setter_(mthis, __arg_0) => mthis["min"] = __arg_0;
 
+  minLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minLength");
+
+  minLength_Setter_(mthis, __arg_0) => mthis["minLength"] = __arg_0;
+
   multiple_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "multiple");
 
   multiple_Setter_(mthis, __arg_0) => mthis["multiple"] = __arg_0;
@@ -6145,8 +8004,6 @@
 
   required_Setter_(mthis, __arg_0) => mthis["required"] = __arg_0;
 
-  select_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "select", []);
-
   selectionDirection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectionDirection");
 
   selectionDirection_Setter_(mthis, __arg_0) => mthis["selectionDirection"] = __arg_0;
@@ -6159,6 +8016,60 @@
 
   selectionStart_Setter_(mthis, __arg_0) => mthis["selectionStart"] = __arg_0;
 
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+  size_Setter_(mthis, __arg_0) => mthis["size"] = __arg_0;
+
+  src_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "src");
+
+  src_Setter_(mthis, __arg_0) => mthis["src"] = __arg_0;
+
+  step_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "step");
+
+  step_Setter_(mthis, __arg_0) => mthis["step"] = __arg_0;
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
+  useMap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "useMap");
+
+  useMap_Setter_(mthis, __arg_0) => mthis["useMap"] = __arg_0;
+
+  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
+
+  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
+  valueAsDate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsDate");
+
+  valueAsDate_Setter_(mthis, __arg_0) => mthis["valueAsDate"] = __arg_0;
+
+  valueAsNumber_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsNumber");
+
+  valueAsNumber_Setter_(mthis, __arg_0) => mthis["valueAsNumber"] = __arg_0;
+
+  webkitEntries_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitEntries");
+
+  webkitdirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitdirectory");
+
+  webkitdirectory_Setter_(mthis, __arg_0) => mthis["webkitdirectory"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
+  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  select_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "select", []);
+
   setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
 
   setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
@@ -6181,14 +8092,6 @@
 
   setSelectionRange_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setSelectionRange", [__arg_0, __arg_1, __arg_2]);
 
-  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
-
-  size_Setter_(mthis, __arg_0) => mthis["size"] = __arg_0;
-
-  src_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "src");
-
-  src_Setter_(mthis, __arg_0) => mthis["src"] = __arg_0;
-
   stepDown_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stepDown", []);
 
   stepDown_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stepDown", [__arg_0]);
@@ -6197,46 +8100,6 @@
 
   stepUp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stepUp", [__arg_0]);
 
-  step_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "step");
-
-  step_Setter_(mthis, __arg_0) => mthis["step"] = __arg_0;
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
-
-  useMap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "useMap");
-
-  useMap_Setter_(mthis, __arg_0) => mthis["useMap"] = __arg_0;
-
-  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
-
-  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
-
-  valueAsDate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsDate");
-
-  valueAsDate_Setter_(mthis, __arg_0) => mthis["valueAsDate"] = __arg_0;
-
-  valueAsNumber_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsNumber");
-
-  valueAsNumber_Setter_(mthis, __arg_0) => mthis["valueAsNumber"] = __arg_0;
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
-  webkitEntries_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitEntries");
-
-  webkitdirectory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitdirectory");
-
-  webkitdirectory_Setter_(mthis, __arg_0) => mthis["webkitdirectory"] = __arg_0;
-
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
-  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
-
-  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
-
 }
 
 class BlinkHTMLKeygenElement extends BlinkHTMLElement {
@@ -6250,8 +8113,6 @@
 
   challenge_Setter_(mthis, __arg_0) => mthis["challenge"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   disabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "disabled");
 
   disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
@@ -6268,10 +8129,6 @@
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
-
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
@@ -6280,6 +8137,14 @@
 
   willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
 
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
 }
 
 class BlinkHTMLLIElement extends BlinkHTMLElement {
@@ -6311,6 +8176,10 @@
 class BlinkHTMLLegendElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLLegendElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
   form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
 
 }
@@ -6318,6 +8187,10 @@
 class BlinkHTMLLinkElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLLinkElement();
 
+  charset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charset");
+
+  charset_Setter_(mthis, __arg_0) => mthis["charset"] = __arg_0;
+
   crossOrigin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "crossOrigin");
 
   crossOrigin_Setter_(mthis, __arg_0) => mthis["crossOrigin"] = __arg_0;
@@ -6348,11 +8221,17 @@
 
   rel_Setter_(mthis, __arg_0) => mthis["rel"] = __arg_0;
 
+  rev_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rev");
+
+  rev_Setter_(mthis, __arg_0) => mthis["rev"] = __arg_0;
+
   sheet_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sheet");
 
   sizes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sizes");
 
-  sizes_Setter_(mthis, __arg_0) => mthis["sizes"] = __arg_0;
+  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+
+  target_Setter_(mthis, __arg_0) => mthis["target"] = __arg_0;
 
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
@@ -6374,19 +8253,71 @@
 class BlinkHTMLMarqueeElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLMarqueeElement();
 
+  behavior_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "behavior");
+
+  behavior_Setter_(mthis, __arg_0) => mthis["behavior"] = __arg_0;
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
+  direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
+
+  direction_Setter_(mthis, __arg_0) => mthis["direction"] = __arg_0;
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
+
+  hspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hspace");
+
+  hspace_Setter_(mthis, __arg_0) => mthis["hspace"] = __arg_0;
+
+  loop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loop");
+
+  loop_Setter_(mthis, __arg_0) => mthis["loop"] = __arg_0;
+
+  scrollAmount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollAmount");
+
+  scrollAmount_Setter_(mthis, __arg_0) => mthis["scrollAmount"] = __arg_0;
+
+  scrollDelay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollDelay");
+
+  scrollDelay_Setter_(mthis, __arg_0) => mthis["scrollDelay"] = __arg_0;
+
+  trueSpeed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "trueSpeed");
+
+  trueSpeed_Setter_(mthis, __arg_0) => mthis["trueSpeed"] = __arg_0;
+
+  vspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vspace");
+
+  vspace_Setter_(mthis, __arg_0) => mthis["vspace"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
+  attachedCallback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "attachedCallback", []);
+
+  attributeChangedCallback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "attributeChangedCallback", [__arg_0]);
+
+  attributeChangedCallback_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "attributeChangedCallback", [__arg_0, __arg_1]);
+
+  attributeChangedCallback_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "attributeChangedCallback", [__arg_0, __arg_1, __arg_2]);
+
+  createdCallback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createdCallback", []);
+
+  detachedCallback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detachedCallback", []);
+
+  start_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "start", []);
+
+  stop_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stop", []);
+
 }
 
 class BlinkHTMLMediaElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLMediaElement();
 
-  addTextTrack_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", []);
-
-  addTextTrack_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0]);
-
-  addTextTrack_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0, __arg_1]);
-
-  addTextTrack_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0, __arg_1, __arg_2]);
-
   audioTracks_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "audioTracks");
 
   autoplay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autoplay");
@@ -6395,12 +8326,6 @@
 
   buffered_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buffered");
 
-  canPlayType_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", []);
-
-  canPlayType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", [__arg_0]);
-
-  canPlayType_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", [__arg_0, __arg_1]);
-
   controller_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "controller");
 
   controller_Setter_(mthis, __arg_0) => mthis["controller"] = __arg_0;
@@ -6433,12 +8358,6 @@
 
   error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
-
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
-
-  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
-
   loop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "loop");
 
   loop_Setter_(mthis, __arg_0) => mthis["loop"] = __arg_0;
@@ -6455,9 +8374,9 @@
 
   networkState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "networkState");
 
-  onneedkey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onneedkey");
+  onencrypted_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onencrypted");
 
-  onneedkey_Setter_(mthis, __arg_0) => mthis["onneedkey"] = __arg_0;
+  onencrypted_Setter_(mthis, __arg_0) => mthis["onencrypted"] = __arg_0;
 
   onwebkitkeyadded_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitkeyadded");
 
@@ -6475,12 +8394,8 @@
 
   onwebkitneedkey_Setter_(mthis, __arg_0) => mthis["onwebkitneedkey"] = __arg_0;
 
-  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
-
   paused_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "paused");
 
-  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
-
   playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
 
   playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
@@ -6497,9 +8412,11 @@
 
   seeking_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "seeking");
 
-  setMediaKeys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setMediaKeys", []);
+  session_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "session");
 
-  setMediaKeys_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setMediaKeys", [__arg_0]);
+  session_Setter_(mthis, __arg_0) => mthis["session"] = __arg_0;
+
+  sinkId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sinkId");
 
   src_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "src");
 
@@ -6513,6 +8430,38 @@
 
   volume_Setter_(mthis, __arg_0) => mthis["volume"] = __arg_0;
 
+  webkitAudioDecodedByteCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitAudioDecodedByteCount");
+
+  webkitVideoDecodedByteCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitVideoDecodedByteCount");
+
+  addTextTrack_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", []);
+
+  addTextTrack_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0]);
+
+  addTextTrack_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0, __arg_1]);
+
+  addTextTrack_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "addTextTrack", [__arg_0, __arg_1, __arg_2]);
+
+  canPlayType_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", []);
+
+  canPlayType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", [__arg_0]);
+
+  canPlayType_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "canPlayType", [__arg_0, __arg_1]);
+
+  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
+
+  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
+
+  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
+
+  setMediaKeys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setMediaKeys", []);
+
+  setMediaKeys_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setMediaKeys", [__arg_0]);
+
+  setSinkId_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setSinkId", []);
+
+  setSinkId_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setSinkId", [__arg_0]);
+
   webkitAddKey_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitAddKey", []);
 
   webkitAddKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitAddKey", [__arg_0]);
@@ -6523,8 +8472,6 @@
 
   webkitAddKey_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "webkitAddKey", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  webkitAudioDecodedByteCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitAudioDecodedByteCount");
-
   webkitCancelKeyRequest_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelKeyRequest", []);
 
   webkitCancelKeyRequest_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelKeyRequest", [__arg_0]);
@@ -6537,13 +8484,15 @@
 
   webkitGenerateKeyRequest_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitGenerateKeyRequest", [__arg_0, __arg_1]);
 
-  webkitVideoDecodedByteCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitVideoDecodedByteCount");
-
 }
 
 class BlinkHTMLMenuElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLMenuElement();
 
+  compact_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compact");
+
+  compact_Setter_(mthis, __arg_0) => mthis["compact"] = __arg_0;
+
   label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
 
   label_Setter_(mthis, __arg_0) => mthis["label"] = __arg_0;
@@ -6569,10 +8518,18 @@
 
   disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
 
+  icon_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "icon");
+
+  icon_Setter_(mthis, __arg_0) => mthis["icon"] = __arg_0;
+
   label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
 
   label_Setter_(mthis, __arg_0) => mthis["label"] = __arg_0;
 
+  radiogroup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "radiogroup");
+
+  radiogroup_Setter_(mthis, __arg_0) => mthis["radiogroup"] = __arg_0;
+
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
@@ -6594,6 +8551,10 @@
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
+  scheme_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scheme");
+
+  scheme_Setter_(mthis, __arg_0) => mthis["scheme"] = __arg_0;
+
 }
 
 class BlinkHTMLMeterElement extends BlinkHTMLElement {
@@ -6643,6 +8604,10 @@
 class BlinkHTMLOListElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLOListElement();
 
+  compact_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compact");
+
+  compact_Setter_(mthis, __arg_0) => mthis["compact"] = __arg_0;
+
   reversed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "reversed");
 
   reversed_Setter_(mthis, __arg_0) => mthis["reversed"] = __arg_0;
@@ -6660,41 +8625,57 @@
 class BlinkHTMLObjectElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLObjectElement();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
 
-  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+  archive_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "archive");
+
+  archive_Setter_(mthis, __arg_0) => mthis["archive"] = __arg_0;
+
+  border_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "border");
+
+  border_Setter_(mthis, __arg_0) => mthis["border"] = __arg_0;
 
   code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
 
   code_Setter_(mthis, __arg_0) => mthis["code"] = __arg_0;
 
+  codeBase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "codeBase");
+
+  codeBase_Setter_(mthis, __arg_0) => mthis["codeBase"] = __arg_0;
+
+  codeType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "codeType");
+
+  codeType_Setter_(mthis, __arg_0) => mthis["codeType"] = __arg_0;
+
   contentDocument_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentDocument");
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
 
   data_Setter_(mthis, __arg_0) => mthis["data"] = __arg_0;
 
-  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
+  declare_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "declare");
 
-  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+  declare_Setter_(mthis, __arg_0) => mthis["declare"] = __arg_0;
+
+  form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
 
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
+  hspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hspace");
 
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
+  hspace_Setter_(mthis, __arg_0) => mthis["hspace"] = __arg_0;
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+  standby_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "standby");
 
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+  standby_Setter_(mthis, __arg_0) => mthis["standby"] = __arg_0;
 
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
@@ -6708,12 +8689,30 @@
 
   validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
 
+  vspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vspace");
+
+  vspace_Setter_(mthis, __arg_0) => mthis["vspace"] = __arg_0;
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
 
   willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
 
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  getSVGDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSVGDocument", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
 }
 
 class BlinkHTMLOptGroupElement extends BlinkHTMLElement {
@@ -6762,6 +8761,10 @@
 
   selected_Setter_(mthis, __arg_0) => mthis["selected"] = __arg_0;
 
+  text_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "text");
+
+  text_Setter_(mthis, __arg_0) => mthis["text"] = __arg_0;
+
   value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
 
   value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
@@ -6771,17 +8774,39 @@
 class BlinkHTMLOptionsCollection extends BlinkHTMLCollection {
   static final instance = new BlinkHTMLOptionsCollection();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  length_Setter_(mthis, __arg_0) => mthis["length"] = __arg_0;
+
+  selectedIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectedIndex");
+
+  selectedIndex_Setter_(mthis, __arg_0) => mthis["selectedIndex"] = __arg_0;
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
+  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
+
+  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
+
+  add_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0, __arg_1]);
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
+
+  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
+
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
+
+  remove_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0]);
+
 }
 
 class BlinkHTMLOutputElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLOutputElement();
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   defaultValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultValue");
 
   defaultValue_Setter_(mthis, __arg_0) => mthis["defaultValue"] = __arg_0;
@@ -6790,18 +8815,12 @@
 
   htmlFor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "htmlFor");
 
-  htmlFor_Setter_(mthis, __arg_0) => mthis["htmlFor"] = __arg_0;
-
   labels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "labels");
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
-
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
@@ -6814,11 +8833,23 @@
 
   willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
 
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
 }
 
 class BlinkHTMLParagraphElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLParagraphElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
 }
 
 class BlinkHTMLParamElement extends BlinkHTMLElement {
@@ -6828,10 +8859,18 @@
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
   value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
 
   value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
 
+  valueType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueType");
+
+  valueType_Setter_(mthis, __arg_0) => mthis["valueType"] = __arg_0;
+
 }
 
 class BlinkHTMLPictureElement extends BlinkHTMLElement {
@@ -6842,6 +8881,10 @@
 class BlinkHTMLPreElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLPreElement();
 
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
 }
 
 class BlinkHTMLProgressElement extends BlinkHTMLElement {
@@ -6909,6 +8952,10 @@
 
   src_Setter_(mthis, __arg_0) => mthis["src"] = __arg_0;
 
+  text_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "text");
+
+  text_Setter_(mthis, __arg_0) => mthis["text"] = __arg_0;
+
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
@@ -6918,32 +8965,16 @@
 class BlinkHTMLSelectElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLSelectElement();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
-
-  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
-
-  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
-
-  add_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0, __arg_1]);
-
   autofocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autofocus");
 
   autofocus_Setter_(mthis, __arg_0) => mthis["autofocus"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   disabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "disabled");
 
   disabled_Setter_(mthis, __arg_0) => mthis["disabled"] = __arg_0;
 
   form_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "form");
 
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
   labels_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "labels");
 
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
@@ -6958,9 +8989,7 @@
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
 
-  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
-
-  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
+  options_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "options");
 
   required_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "required");
 
@@ -6970,9 +8999,7 @@
 
   selectedIndex_Setter_(mthis, __arg_0) => mthis["selectedIndex"] = __arg_0;
 
-  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
-
-  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+  selectedOptions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectedOptions");
 
   size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
 
@@ -6990,6 +9017,30 @@
 
   willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
 
+  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
+
+  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
+
+  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
+
+  add_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0, __arg_1]);
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
+  namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
+
+  namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
+
+  setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
+
 }
 
 class BlinkHTMLShadowElement extends BlinkHTMLElement {
@@ -7002,10 +9053,6 @@
 class BlinkHTMLSourceElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLSourceElement();
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
-
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
-
   media_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "media");
 
   media_Setter_(mthis, __arg_0) => mthis["media"] = __arg_0;
@@ -7055,13 +9102,41 @@
 class BlinkHTMLTableCaptionElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableCaptionElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
 }
 
 class BlinkHTMLTableCellElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableCellElement();
 
+  abbr_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "abbr");
+
+  abbr_Setter_(mthis, __arg_0) => mthis["abbr"] = __arg_0;
+
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  axis_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "axis");
+
+  axis_Setter_(mthis, __arg_0) => mthis["axis"] = __arg_0;
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
   cellIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cellIndex");
 
+  ch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ch");
+
+  ch_Setter_(mthis, __arg_0) => mthis["ch"] = __arg_0;
+
+  chOff_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chOff");
+
+  chOff_Setter_(mthis, __arg_0) => mthis["chOff"] = __arg_0;
+
   colSpan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "colSpan");
 
   colSpan_Setter_(mthis, __arg_0) => mthis["colSpan"] = __arg_0;
@@ -7070,24 +9145,72 @@
 
   headers_Setter_(mthis, __arg_0) => mthis["headers"] = __arg_0;
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
+
+  noWrap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "noWrap");
+
+  noWrap_Setter_(mthis, __arg_0) => mthis["noWrap"] = __arg_0;
+
   rowSpan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rowSpan");
 
   rowSpan_Setter_(mthis, __arg_0) => mthis["rowSpan"] = __arg_0;
 
+  scope_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scope");
+
+  scope_Setter_(mthis, __arg_0) => mthis["scope"] = __arg_0;
+
+  vAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vAlign");
+
+  vAlign_Setter_(mthis, __arg_0) => mthis["vAlign"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
 }
 
 class BlinkHTMLTableColElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableColElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  ch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ch");
+
+  ch_Setter_(mthis, __arg_0) => mthis["ch"] = __arg_0;
+
+  chOff_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chOff");
+
+  chOff_Setter_(mthis, __arg_0) => mthis["chOff"] = __arg_0;
+
   span_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "span");
 
   span_Setter_(mthis, __arg_0) => mthis["span"] = __arg_0;
 
+  vAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vAlign");
+
+  vAlign_Setter_(mthis, __arg_0) => mthis["vAlign"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
 }
 
 class BlinkHTMLTableElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
   border_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "border");
 
   border_Setter_(mthis, __arg_0) => mthis["border"] = __arg_0;
@@ -7096,6 +9219,42 @@
 
   caption_Setter_(mthis, __arg_0) => mthis["caption"] = __arg_0;
 
+  cellPadding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cellPadding");
+
+  cellPadding_Setter_(mthis, __arg_0) => mthis["cellPadding"] = __arg_0;
+
+  cellSpacing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cellSpacing");
+
+  cellSpacing_Setter_(mthis, __arg_0) => mthis["cellSpacing"] = __arg_0;
+
+  frame_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frame");
+
+  frame_Setter_(mthis, __arg_0) => mthis["frame"] = __arg_0;
+
+  rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
+
+  rules_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rules");
+
+  rules_Setter_(mthis, __arg_0) => mthis["rules"] = __arg_0;
+
+  summary_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "summary");
+
+  summary_Setter_(mthis, __arg_0) => mthis["summary"] = __arg_0;
+
+  tBodies_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tBodies");
+
+  tFoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tFoot");
+
+  tFoot_Setter_(mthis, __arg_0) => mthis["tFoot"] = __arg_0;
+
+  tHead_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tHead");
+
+  tHead_Setter_(mthis, __arg_0) => mthis["tHead"] = __arg_0;
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
   createCaption_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createCaption", []);
 
   createTBody_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTBody", []);
@@ -7118,25 +9277,37 @@
 
   insertRow_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertRow", [__arg_0]);
 
-  rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
-
-  tBodies_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tBodies");
-
-  tFoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tFoot");
-
-  tFoot_Setter_(mthis, __arg_0) => mthis["tFoot"] = __arg_0;
-
-  tHead_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tHead");
-
-  tHead_Setter_(mthis, __arg_0) => mthis["tHead"] = __arg_0;
-
 }
 
 class BlinkHTMLTableRowElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableRowElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  bgColor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bgColor");
+
+  bgColor_Setter_(mthis, __arg_0) => mthis["bgColor"] = __arg_0;
+
   cells_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cells");
 
+  ch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ch");
+
+  ch_Setter_(mthis, __arg_0) => mthis["ch"] = __arg_0;
+
+  chOff_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chOff");
+
+  chOff_Setter_(mthis, __arg_0) => mthis["chOff"] = __arg_0;
+
+  rowIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rowIndex");
+
+  sectionRowIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sectionRowIndex");
+
+  vAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vAlign");
+
+  vAlign_Setter_(mthis, __arg_0) => mthis["vAlign"] = __arg_0;
+
   deleteCell_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteCell", []);
 
   deleteCell_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteCell", [__arg_0]);
@@ -7145,15 +9316,29 @@
 
   insertCell_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertCell", [__arg_0]);
 
-  rowIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rowIndex");
-
-  sectionRowIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sectionRowIndex");
-
 }
 
 class BlinkHTMLTableSectionElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTableSectionElement();
 
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
+
+  ch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ch");
+
+  ch_Setter_(mthis, __arg_0) => mthis["ch"] = __arg_0;
+
+  chOff_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "chOff");
+
+  chOff_Setter_(mthis, __arg_0) => mthis["chOff"] = __arg_0;
+
+  rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
+
+  vAlign_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vAlign");
+
+  vAlign_Setter_(mthis, __arg_0) => mthis["vAlign"] = __arg_0;
+
   deleteRow_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRow", []);
 
   deleteRow_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRow", [__arg_0]);
@@ -7162,8 +9347,6 @@
 
   insertRow_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertRow", [__arg_0]);
 
-  rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
-
 }
 
 class BlinkHTMLTemplateElement extends BlinkHTMLElement {
@@ -7176,12 +9359,14 @@
 class BlinkHTMLTextAreaElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTextAreaElement();
 
+  autocapitalize_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autocapitalize");
+
+  autocapitalize_Setter_(mthis, __arg_0) => mthis["autocapitalize"] = __arg_0;
+
   autofocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autofocus");
 
   autofocus_Setter_(mthis, __arg_0) => mthis["autofocus"] = __arg_0;
 
-  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
-
   cols_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cols");
 
   cols_Setter_(mthis, __arg_0) => mthis["cols"] = __arg_0;
@@ -7210,6 +9395,10 @@
 
   maxLength_Setter_(mthis, __arg_0) => mthis["maxLength"] = __arg_0;
 
+  minLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minLength");
+
+  minLength_Setter_(mthis, __arg_0) => mthis["minLength"] = __arg_0;
+
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
@@ -7230,8 +9419,6 @@
 
   rows_Setter_(mthis, __arg_0) => mthis["rows"] = __arg_0;
 
-  select_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "select", []);
-
   selectionDirection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectionDirection");
 
   selectionDirection_Setter_(mthis, __arg_0) => mthis["selectionDirection"] = __arg_0;
@@ -7244,6 +9431,30 @@
 
   selectionStart_Setter_(mthis, __arg_0) => mthis["selectionStart"] = __arg_0;
 
+  textLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textLength");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
+
+  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
+  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
+
+  wrap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wrap");
+
+  wrap_Setter_(mthis, __arg_0) => mthis["wrap"] = __arg_0;
+
+  checkValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkValidity", []);
+
+  reportValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reportValidity", []);
+
+  select_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "select", []);
+
   setCustomValidity_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", []);
 
   setCustomValidity_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCustomValidity", [__arg_0]);
@@ -7266,29 +9477,15 @@
 
   setSelectionRange_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setSelectionRange", [__arg_0, __arg_1, __arg_2]);
 
-  textLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textLength");
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  validationMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validationMessage");
-
-  validity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "validity");
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
-  willValidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "willValidate");
-
-  wrap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wrap");
-
-  wrap_Setter_(mthis, __arg_0) => mthis["wrap"] = __arg_0;
-
 }
 
 class BlinkHTMLTitleElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLTitleElement();
 
+  text_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "text");
+
+  text_Setter_(mthis, __arg_0) => mthis["text"] = __arg_0;
+
 }
 
 class BlinkHTMLTrackElement extends BlinkHTMLElement {
@@ -7298,10 +9495,6 @@
 
   default_Setter_(mthis, __arg_0) => mthis["default"] = __arg_0;
 
-  integrity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "integrity");
-
-  integrity_Setter_(mthis, __arg_0) => mthis["integrity"] = __arg_0;
-
   kind_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kind");
 
   kind_Setter_(mthis, __arg_0) => mthis["kind"] = __arg_0;
@@ -7327,6 +9520,14 @@
 class BlinkHTMLUListElement extends BlinkHTMLElement {
   static final instance = new BlinkHTMLUListElement();
 
+  compact_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compact");
+
+  compact_Setter_(mthis, __arg_0) => mthis["compact"] = __arg_0;
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
 }
 
 class BlinkHTMLUnknownElement extends BlinkHTMLElement {
@@ -7337,8 +9538,6 @@
 class BlinkHTMLVideoElement extends BlinkHTMLMediaElement {
   static final instance = new BlinkHTMLVideoElement();
 
-  getVideoPlaybackQuality_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVideoPlaybackQuality", []);
-
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   height_Setter_(mthis, __arg_0) => mthis["height"] = __arg_0;
@@ -7357,6 +9556,14 @@
 
   webkitDroppedFrameCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitDroppedFrameCount");
 
+  webkitSupportsFullscreen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitSupportsFullscreen");
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
+
+  getVideoPlaybackQuality_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVideoPlaybackQuality", []);
+
   webkitEnterFullScreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitEnterFullScreen", []);
 
   webkitEnterFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitEnterFullscreen", []);
@@ -7365,24 +9572,20 @@
 
   webkitExitFullscreen_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitExitFullscreen", []);
 
-  webkitSupportsFullscreen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitSupportsFullscreen");
-
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
-  width_Setter_(mthis, __arg_0) => mthis["width"] = __arg_0;
-
 }
 
 class BlinkHashChangeEvent extends BlinkEvent {
   static final instance = new BlinkHashChangeEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "HashChangeEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "HashChangeEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "HashChangeEvent"), [__arg_0, __arg_1]);
 
-  initHashChangeEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initHashChangeEvent", []);
+  newURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newURL");
 
-  initHashChangeEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initHashChangeEvent", [__arg_0]);
-
-  initHashChangeEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initHashChangeEvent", [__arg_0, __arg_1]);
+  oldURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oldURL");
 
   initHashChangeEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initHashChangeEvent", [__arg_0, __arg_1, __arg_2]);
 
@@ -7390,60 +9593,26 @@
 
   initHashChangeEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initHashChangeEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
-  newURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newURL");
-
-  oldURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oldURL");
-
 }
 
 class BlinkHeaders {
   static final instance = new BlinkHeaders();
 
-  append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
-
-  append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
-
-  append_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0, __arg_1]);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Headers"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Headers"), [__arg_0]);
 
-  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
-
-  delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
-
-  forEach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "forEach", []);
-
-  forEach_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0]);
-
-  forEach_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "forEach", [__arg_0, __arg_1]);
-
-  getAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAll", []);
-
-  getAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0]);
-
-  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
-
-  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
-
-  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
-
-  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
-
-  set_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "set", []);
-
-  set_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "set", [__arg_0]);
-
-  set_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "set", [__arg_0, __arg_1]);
-
-  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
-
 }
 
 class BlinkHistory {
   static final instance = new BlinkHistory();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  options_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "options");
+
+  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
+
   back_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "back", []);
 
   forward_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "forward", []);
@@ -7452,17 +9621,13 @@
 
   go_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "go", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  pushState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pushState", []);
-
   pushState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "pushState", [__arg_0]);
 
   pushState_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "pushState", [__arg_0, __arg_1]);
 
   pushState_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "pushState", [__arg_0, __arg_1, __arg_2]);
 
-  replaceState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceState", []);
+  pushState_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "pushState", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   replaceState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceState", [__arg_0]);
 
@@ -7470,29 +9635,13 @@
 
   replaceState_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "replaceState", [__arg_0, __arg_1, __arg_2]);
 
-  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
+  replaceState_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "replaceState", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
 }
 
 class BlinkIDBCursor {
   static final instance = new BlinkIDBCursor();
 
-  advance_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "advance", []);
-
-  advance_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "advance", [__arg_0]);
-
-  continuePrimaryKey_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", []);
-
-  continuePrimaryKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", [__arg_0]);
-
-  continuePrimaryKey_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", [__arg_0, __arg_1]);
-
-  continue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "continue", []);
-
-  continue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "continue", [__arg_0]);
-
-  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
-
   direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
 
   key_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "key");
@@ -7501,6 +9650,22 @@
 
   source_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "source");
 
+  advance_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "advance", []);
+
+  advance_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "advance", [__arg_0]);
+
+  continue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "continue", []);
+
+  continue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "continue", [__arg_0]);
+
+  continuePrimaryKey_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", []);
+
+  continuePrimaryKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", [__arg_0]);
+
+  continuePrimaryKey_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "continuePrimaryKey", [__arg_0, __arg_1]);
+
+  delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
+
   update_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "update", []);
 
   update_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "update", [__arg_0]);
@@ -7517,18 +9682,6 @@
 class BlinkIDBDatabase extends BlinkEventTarget {
   static final instance = new BlinkIDBDatabase();
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  createObjectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", []);
-
-  createObjectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", [__arg_0]);
-
-  createObjectStore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", [__arg_0, __arg_1]);
-
-  deleteObjectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteObjectStore", []);
-
-  deleteObjectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteObjectStore", [__arg_0]);
-
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   objectStoreNames_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "objectStoreNames");
@@ -7549,14 +9702,26 @@
 
   onversionchange_Setter_(mthis, __arg_0) => mthis["onversionchange"] = __arg_0;
 
+  version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  createObjectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", []);
+
+  createObjectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", [__arg_0]);
+
+  createObjectStore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createObjectStore", [__arg_0, __arg_1]);
+
+  deleteObjectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteObjectStore", []);
+
+  deleteObjectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteObjectStore", [__arg_0]);
+
   transaction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "transaction", []);
 
   transaction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "transaction", [__arg_0]);
 
   transaction_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "transaction", [__arg_0, __arg_1]);
 
-  version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
-
 }
 
 class BlinkIDBFactory {
@@ -7585,18 +9750,6 @@
 class BlinkIDBIndex {
   static final instance = new BlinkIDBIndex();
 
-  count_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "count", []);
-
-  count_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "count", [__arg_0]);
-
-  getKey_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getKey", []);
-
-  getKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getKey", [__arg_0]);
-
-  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
-
-  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
-
   keyPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyPath");
 
   multiEntry_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "multiEntry");
@@ -7605,6 +9758,32 @@
 
   objectStore_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "objectStore");
 
+  unique_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unique");
+
+  count_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "count", []);
+
+  count_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "count", [__arg_0]);
+
+  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
+
+  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
+
+  getAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAll", []);
+
+  getAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0]);
+
+  getAll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0, __arg_1]);
+
+  getAllKeys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", []);
+
+  getAllKeys_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", [__arg_0]);
+
+  getAllKeys_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", [__arg_0, __arg_1]);
+
+  getKey_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getKey", []);
+
+  getKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getKey", [__arg_0]);
+
   openCursor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "openCursor", []);
 
   openCursor_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "openCursor", [__arg_0]);
@@ -7617,13 +9796,19 @@
 
   openKeyCursor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "openKeyCursor", [__arg_0, __arg_1]);
 
-  unique_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unique");
-
 }
 
 class BlinkIDBKeyRange {
   static final instance = new BlinkIDBKeyRange();
 
+  lower_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lower");
+
+  lowerOpen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lowerOpen");
+
+  upper_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upper");
+
+  upperOpen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upperOpen");
+
   bound_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "bound", []);
 
   bound_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "bound", [__arg_0]);
@@ -7640,10 +9825,6 @@
 
   lowerBound_Callback_2_(__arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "lowerBound", [__arg_0, __arg_1]);
 
-  lowerOpen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lowerOpen");
-
-  lower_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lower");
-
   only_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "only", []);
 
   only_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "only", [__arg_0]);
@@ -7654,23 +9835,27 @@
 
   upperBound_Callback_2_(__arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "IDBKeyRange"), "upperBound", [__arg_0, __arg_1]);
 
-  upperOpen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upperOpen");
-
-  upper_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upper");
-
 }
 
 class BlinkIDBObjectStore {
   static final instance = new BlinkIDBObjectStore();
 
+  autoIncrement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autoIncrement");
+
+  indexNames_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "indexNames");
+
+  keyPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyPath");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  transaction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transaction");
+
   add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
 
   add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
 
   add_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0, __arg_1]);
 
-  autoIncrement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "autoIncrement");
-
   clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
 
   count_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "count", []);
@@ -7685,28 +9870,34 @@
 
   createIndex_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createIndex", [__arg_0, __arg_1, __arg_2]);
 
-  deleteIndex_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteIndex", []);
-
-  deleteIndex_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteIndex", [__arg_0]);
-
   delete_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "delete", []);
 
   delete_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "delete", [__arg_0]);
 
+  deleteIndex_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteIndex", []);
+
+  deleteIndex_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteIndex", [__arg_0]);
+
   get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
 
   get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
 
-  indexNames_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "indexNames");
+  getAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAll", []);
+
+  getAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0]);
+
+  getAll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0, __arg_1]);
+
+  getAllKeys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", []);
+
+  getAllKeys_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", [__arg_0]);
+
+  getAllKeys_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAllKeys", [__arg_0, __arg_1]);
 
   index_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "index", []);
 
   index_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "index", [__arg_0]);
 
-  keyPath_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyPath");
-
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
-
   openCursor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "openCursor", []);
 
   openCursor_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "openCursor", [__arg_0]);
@@ -7725,8 +9916,6 @@
 
   put_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "put", [__arg_0, __arg_1]);
 
-  transaction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transaction");
-
 }
 
 class BlinkIDBOpenDBRequest extends BlinkIDBRequest {
@@ -7768,17 +9957,13 @@
 class BlinkIDBTransaction extends BlinkEventTarget {
   static final instance = new BlinkIDBTransaction();
 
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
   db_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "db");
 
   error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
 
   mode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mode");
 
-  objectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "objectStore", []);
-
-  objectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "objectStore", [__arg_0]);
+  objectStoreNames_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "objectStoreNames");
 
   onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
 
@@ -7792,17 +9977,27 @@
 
   onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
 
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
+  objectStore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "objectStore", []);
+
+  objectStore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "objectStore", [__arg_0]);
+
 }
 
 class BlinkIDBVersionChangeEvent extends BlinkEvent {
   static final instance = new BlinkIDBVersionChangeEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "IDBVersionChangeEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "IDBVersionChangeEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "IDBVersionChangeEvent"), [__arg_0, __arg_1]);
 
-  dataLossMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dataLossMessage");
-
   dataLoss_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dataLoss");
 
+  dataLossMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dataLossMessage");
+
   newVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newVersion");
 
   oldVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oldVersion");
@@ -7840,213 +10035,37 @@
 class BlinkInjectedScriptHost {
   static final instance = new BlinkInjectedScriptHost();
 
-  callFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "callFunction", []);
-
-  callFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "callFunction", [__arg_0]);
-
-  callFunction_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "callFunction", [__arg_0, __arg_1]);
-
-  callFunction_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "callFunction", [__arg_0, __arg_1, __arg_2]);
-
-  clearConsoleMessages_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearConsoleMessages", []);
-
-  collectionEntries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collectionEntries", []);
-
-  collectionEntries_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "collectionEntries", [__arg_0]);
-
-  debugFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "debugFunction", []);
-
-  debugFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "debugFunction", [__arg_0]);
-
-  eval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "eval", []);
-
-  eval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "eval", [__arg_0]);
-
-  evaluateWithExceptionDetails_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "evaluateWithExceptionDetails", []);
-
-  evaluateWithExceptionDetails_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "evaluateWithExceptionDetails", [__arg_0]);
-
-  functionDetails_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "functionDetails", []);
-
-  functionDetails_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "functionDetails", [__arg_0]);
-
-  getEventListeners_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEventListeners", []);
-
-  getEventListeners_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEventListeners", [__arg_0]);
-
-  getInternalProperties_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getInternalProperties", []);
-
-  getInternalProperties_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getInternalProperties", [__arg_0]);
-
   inspect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "inspect", []);
 
   inspect_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "inspect", [__arg_0]);
 
   inspect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "inspect", [__arg_0, __arg_1]);
 
-  inspectedObject_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "inspectedObject", []);
+}
 
-  inspectedObject_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "inspectedObject", [__arg_0]);
+class BlinkInputDevice {
+  static final instance = new BlinkInputDevice();
 
-  internalConstructorName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "internalConstructorName", []);
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "InputDevice"), []);
 
-  internalConstructorName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "internalConstructorName", [__arg_0]);
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "InputDevice"), [__arg_0]);
 
-  isHTMLAllCollection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isHTMLAllCollection", []);
-
-  isHTMLAllCollection_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isHTMLAllCollection", [__arg_0]);
-
-  monitorFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "monitorFunction", []);
-
-  monitorFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "monitorFunction", [__arg_0]);
-
-  setFunctionVariableValue_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setFunctionVariableValue", [__arg_0, __arg_1]);
-
-  setFunctionVariableValue_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setFunctionVariableValue", [__arg_0, __arg_1, __arg_2]);
-
-  setFunctionVariableValue_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "setFunctionVariableValue", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  setNonEnumProperty_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setNonEnumProperty", [__arg_0]);
-
-  setNonEnumProperty_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setNonEnumProperty", [__arg_0, __arg_1]);
-
-  setNonEnumProperty_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setNonEnumProperty", [__arg_0, __arg_1, __arg_2]);
-
-  subtype_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "subtype", []);
-
-  subtype_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "subtype", [__arg_0]);
-
-  suppressWarningsAndCallFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "suppressWarningsAndCallFunction", []);
-
-  suppressWarningsAndCallFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "suppressWarningsAndCallFunction", [__arg_0]);
-
-  suppressWarningsAndCallFunction_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "suppressWarningsAndCallFunction", [__arg_0, __arg_1]);
-
-  suppressWarningsAndCallFunction_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "suppressWarningsAndCallFunction", [__arg_0, __arg_1, __arg_2]);
-
-  undebugFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "undebugFunction", []);
-
-  undebugFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "undebugFunction", [__arg_0]);
-
-  unmonitorFunction_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unmonitorFunction", []);
-
-  unmonitorFunction_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "unmonitorFunction", [__arg_0]);
+  firesTouchEvents_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firesTouchEvents");
 
 }
 
-class BlinkInputMethodContext extends BlinkEventTarget {
-  static final instance = new BlinkInputMethodContext();
-
-  compositionEndOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compositionEndOffset");
-
-  compositionStartOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "compositionStartOffset");
-
-  confirmComposition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "confirmComposition", []);
-
-  locale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "locale");
-
-  oncandidatewindowhide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncandidatewindowhide");
-
-  oncandidatewindowhide_Setter_(mthis, __arg_0) => mthis["oncandidatewindowhide"] = __arg_0;
-
-  oncandidatewindowshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncandidatewindowshow");
-
-  oncandidatewindowshow_Setter_(mthis, __arg_0) => mthis["oncandidatewindowshow"] = __arg_0;
-
-  oncandidatewindowupdate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncandidatewindowupdate");
-
-  oncandidatewindowupdate_Setter_(mthis, __arg_0) => mthis["oncandidatewindowupdate"] = __arg_0;
-
-  target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
+class BlinkInt16Array extends BlinkArrayBufferView {
+  static final instance = new BlinkInt16Array();
 
 }
 
-class BlinkInspectorFrontendHost {
-  static final instance = new BlinkInspectorFrontendHost();
-
-  copyText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "copyText", []);
-
-  copyText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "copyText", [__arg_0]);
-
-  getSelectionBackgroundColor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelectionBackgroundColor", []);
-
-  getSelectionForegroundColor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelectionForegroundColor", []);
-
-  isHostedMode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isHostedMode", []);
-
-  isUnderTest_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isUnderTest", []);
-
-  isolatedFileSystem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isolatedFileSystem", []);
-
-  isolatedFileSystem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isolatedFileSystem", [__arg_0]);
-
-  isolatedFileSystem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "isolatedFileSystem", [__arg_0, __arg_1]);
-
-  platform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "platform", []);
-
-  port_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "port", []);
-
-  recordActionTaken_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "recordActionTaken", []);
-
-  recordActionTaken_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "recordActionTaken", [__arg_0]);
-
-  recordPanelShown_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "recordPanelShown", []);
-
-  recordPanelShown_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "recordPanelShown", [__arg_0]);
-
-  sendMessageToBackend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sendMessageToBackend", []);
-
-  sendMessageToBackend_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sendMessageToBackend", [__arg_0]);
-
-  sendMessageToEmbedder_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sendMessageToEmbedder", []);
-
-  sendMessageToEmbedder_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sendMessageToEmbedder", [__arg_0]);
-
-  setInjectedScriptForOrigin_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setInjectedScriptForOrigin", []);
-
-  setInjectedScriptForOrigin_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setInjectedScriptForOrigin", [__arg_0]);
-
-  setInjectedScriptForOrigin_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setInjectedScriptForOrigin", [__arg_0, __arg_1]);
-
-  setZoomFactor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setZoomFactor", []);
-
-  setZoomFactor_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setZoomFactor", [__arg_0]);
-
-  showContextMenuAtPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenuAtPoint", [__arg_0]);
-
-  showContextMenuAtPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenuAtPoint", [__arg_0, __arg_1]);
-
-  showContextMenuAtPoint_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenuAtPoint", [__arg_0, __arg_1, __arg_2]);
-
-  showContextMenu_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenu", []);
-
-  showContextMenu_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenu", [__arg_0]);
-
-  showContextMenu_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "showContextMenu", [__arg_0, __arg_1]);
-
-  upgradeDraggedFileSystemPermissions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "upgradeDraggedFileSystemPermissions", []);
-
-  upgradeDraggedFileSystemPermissions_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "upgradeDraggedFileSystemPermissions", [__arg_0]);
-
-  zoomFactor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "zoomFactor", []);
+class BlinkInt32Array extends BlinkArrayBufferView {
+  static final instance = new BlinkInt32Array();
 
 }
 
-class BlinkInspectorOverlayHost {
-  static final instance = new BlinkInspectorOverlayHost();
-
-  resume_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resume", []);
-
-  stepOver_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stepOver", []);
-
-}
-
-class BlinkInstallEvent extends BlinkExtendableEvent {
-  static final instance = new BlinkInstallEvent();
-
-  reloadAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reloadAll", []);
-
-  replace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replace", []);
+class BlinkInt8Array extends BlinkArrayBufferView {
+  static final instance = new BlinkInt8Array();
 
 }
 
@@ -8059,85 +10078,26 @@
 
 }
 
-class BlinkJavaScriptCallFrame {
-  static final instance = new BlinkJavaScriptCallFrame();
-
-  caller_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "caller");
-
-  column_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "column");
-
-  evaluateWithExceptionDetails_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "evaluateWithExceptionDetails", []);
-
-  evaluateWithExceptionDetails_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "evaluateWithExceptionDetails", [__arg_0]);
-
-  functionName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "functionName");
-
-  isAtReturn_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isAtReturn");
-
-  line_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "line");
-
-  restart_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "restart", []);
-
-  returnValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "returnValue");
-
-  scopeChain_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scopeChain");
-
-  scopeType_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scopeType", []);
-
-  scopeType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scopeType", [__arg_0]);
-
-  setVariableValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setVariableValue", []);
-
-  setVariableValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setVariableValue", [__arg_0]);
-
-  setVariableValue_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setVariableValue", [__arg_0, __arg_1]);
-
-  setVariableValue_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setVariableValue", [__arg_0, __arg_1, __arg_2]);
-
-  sourceID_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceID");
-
-  stepInPositions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stepInPositions");
-
-  thisObject_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "thisObject");
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-}
-
 class BlinkKeyboardEvent extends BlinkUIEvent {
   static final instance = new BlinkKeyboardEvent();
 
-  altKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altKey");
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyboardEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyboardEvent"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyboardEvent"), [__arg_0, __arg_1]);
 
+  altKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altKey");
+
+  charCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charCode");
+
+  code_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "code");
+
   ctrlKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ctrlKey");
 
-  getModifierState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getModifierState", []);
+  key_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "key");
 
-  getModifierState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getModifierState", [__arg_0]);
-
-  initKeyboardEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", []);
-
-  initKeyboardEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0]);
-
-  initKeyboardEvent_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
-
-  initKeyboardEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1]);
-
-  initKeyboardEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initKeyboardEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initKeyboardEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  initKeyboardEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  initKeyboardEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  initKeyboardEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
-
-  initKeyboardEvent_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+  keyCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyCode");
 
   keyIdentifier_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyIdentifier");
 
@@ -8151,18 +10111,30 @@
 
   shiftKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shiftKey");
 
+  which_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "which");
+
+  getModifierState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getModifierState", []);
+
+  getModifierState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getModifierState", [__arg_0]);
+
+  initKeyboardEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  initKeyboardEvent_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  initKeyboardEvent_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "initKeyboardEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
 }
 
-class BlinkLocalCredential extends BlinkCredential {
-  static final instance = new BlinkLocalCredential();
+class BlinkKeyframeEffect extends BlinkAnimationEffectReadOnly {
+  static final instance = new BlinkKeyframeEffect();
 
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "LocalCredential"), [__arg_0, __arg_1]);
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyframeEffect"), []);
 
-  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "LocalCredential"), [__arg_0, __arg_1, __arg_2]);
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyframeEffect"), [__arg_0]);
 
-  constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "LocalCredential"), [__arg_0, __arg_1, __arg_2, __arg_3]);
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyframeEffect"), [__arg_0, __arg_1]);
 
-  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "KeyframeEffect"), [__arg_0, __arg_1, __arg_2]);
 
 }
 
@@ -8171,10 +10143,6 @@
 
   ancestorOrigins_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ancestorOrigins");
 
-  assign_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "assign", []);
-
-  assign_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "assign", [__arg_0]);
-
   hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
 
   hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
@@ -8205,18 +10173,24 @@
 
   protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
 
+  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
+
+  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
+
+  assign_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "assign", []);
+
+  assign_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "assign", [__arg_0]);
+
   reload_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "reload", []);
 
   replace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replace", []);
 
   replace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replace", [__arg_0]);
 
-  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
-
-  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
-
   toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
 
+  valueOf_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "valueOf", []);
+
 }
 
 class BlinkMIDIAccess extends BlinkEventTarget {
@@ -8224,13 +10198,9 @@
 
   inputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "inputs");
 
-  onconnect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onconnect");
+  onstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstatechange");
 
-  onconnect_Setter_(mthis, __arg_0) => mthis["onconnect"] = __arg_0;
-
-  ondisconnect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondisconnect");
-
-  ondisconnect_Setter_(mthis, __arg_0) => mthis["ondisconnect"] = __arg_0;
+  onstatechange_Setter_(mthis, __arg_0) => mthis["onstatechange"] = __arg_0;
 
   outputs_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outputs");
 
@@ -8241,6 +10211,10 @@
 class BlinkMIDIConnectionEvent extends BlinkEvent {
   static final instance = new BlinkMIDIConnectionEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIConnectionEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIConnectionEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIConnectionEvent"), [__arg_0, __arg_1]);
 
   port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
@@ -8259,27 +10233,17 @@
 class BlinkMIDIInputMap {
   static final instance = new BlinkMIDIInputMap();
 
-  entries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "entries", []);
-
-  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
-
-  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
-
-  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
-
-  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
-
-  keys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "keys", []);
-
   size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
 
-  values_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "values", []);
-
 }
 
 class BlinkMIDIMessageEvent extends BlinkEvent {
   static final instance = new BlinkMIDIMessageEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIMessageEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIMessageEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MIDIMessageEvent"), [__arg_0, __arg_1]);
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
@@ -8302,50 +10266,44 @@
 class BlinkMIDIOutputMap {
   static final instance = new BlinkMIDIOutputMap();
 
-  entries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "entries", []);
-
-  get_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "get", []);
-
-  get_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "get", [__arg_0]);
-
-  has_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "has", []);
-
-  has_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "has", [__arg_0]);
-
-  keys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "keys", []);
-
   size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
 
-  values_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "values", []);
-
 }
 
 class BlinkMIDIPort extends BlinkEventTarget {
   static final instance = new BlinkMIDIPort();
 
+  connection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connection");
+
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
   manufacturer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "manufacturer");
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
-  ondisconnect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondisconnect");
+  onstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstatechange");
 
-  ondisconnect_Setter_(mthis, __arg_0) => mthis["ondisconnect"] = __arg_0;
+  onstatechange_Setter_(mthis, __arg_0) => mthis["onstatechange"] = __arg_0;
+
+  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
 
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   version_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "version");
 
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
+
 }
 
 class BlinkMediaController extends BlinkEventTarget {
   static final instance = new BlinkMediaController();
 
-  buffered_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buffered");
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaController"), []);
 
+  buffered_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buffered");
+
   currentTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTime");
 
   currentTime_Setter_(mthis, __arg_0) => mthis["currentTime"] = __arg_0;
@@ -8360,12 +10318,8 @@
 
   muted_Setter_(mthis, __arg_0) => mthis["muted"] = __arg_0;
 
-  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
-
   paused_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "paused");
 
-  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
-
   playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
 
   playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
@@ -8376,12 +10330,16 @@
 
   seekable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "seekable");
 
-  unpause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unpause", []);
-
   volume_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "volume");
 
   volume_Setter_(mthis, __arg_0) => mthis["volume"] = __arg_0;
 
+  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
+
+  play_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "play", []);
+
+  unpause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unpause", []);
+
 }
 
 class BlinkMediaDeviceInfo {
@@ -8397,6 +10355,17 @@
 
 }
 
+class BlinkMediaDevices {
+  static final instance = new BlinkMediaDevices();
+
+  enumerateDevices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enumerateDevices", []);
+
+  getUserMedia_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUserMedia", []);
+
+  getUserMedia_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUserMedia", [__arg_0]);
+
+}
+
 class BlinkMediaElementAudioSourceNode extends BlinkAudioSourceNode {
   static final instance = new BlinkMediaElementAudioSourceNode();
 
@@ -8404,6 +10373,21 @@
 
 }
 
+class BlinkMediaEncryptedEvent extends BlinkEvent {
+  static final instance = new BlinkMediaEncryptedEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaEncryptedEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaEncryptedEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaEncryptedEvent"), [__arg_0, __arg_1]);
+
+  initData_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "initData");
+
+  initDataType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "initDataType");
+
+}
+
 class BlinkMediaError {
   static final instance = new BlinkMediaError();
 
@@ -8423,6 +10407,10 @@
 class BlinkMediaKeyEvent extends BlinkEvent {
   static final instance = new BlinkMediaKeyEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyEvent"), [__arg_0, __arg_1]);
 
   defaultURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "defaultURL");
@@ -8444,22 +10432,15 @@
 class BlinkMediaKeyMessageEvent extends BlinkEvent {
   static final instance = new BlinkMediaKeyMessageEvent();
 
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyMessageEvent"), [__arg_0, __arg_1]);
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyMessageEvent"), []);
 
-  destinationURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "destinationURL");
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyMessageEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyMessageEvent"), [__arg_0, __arg_1]);
 
   message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
 
-}
-
-class BlinkMediaKeyNeededEvent extends BlinkEvent {
-  static final instance = new BlinkMediaKeyNeededEvent();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaKeyNeededEvent"), [__arg_0, __arg_1]);
-
-  contentType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "contentType");
-
-  initData_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "initData");
+  messageType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "messageType");
 
 }
 
@@ -8468,7 +10449,13 @@
 
   closed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closed");
 
-  error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
+  expiration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "expiration");
+
+  keyStatuses_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyStatuses");
+
+  sessionId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sessionId");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
 
   generateRequest_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "generateRequest", []);
 
@@ -8476,11 +10463,11 @@
 
   generateRequest_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "generateRequest", [__arg_0, __arg_1]);
 
-  keySystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keySystem");
+  load_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "load", []);
 
-  release_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "release", []);
+  load_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "load", [__arg_0]);
 
-  sessionId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sessionId");
+  remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
 
   update_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "update", []);
 
@@ -8488,6 +10475,24 @@
 
 }
 
+class BlinkMediaKeyStatusMap {
+  static final instance = new BlinkMediaKeyStatusMap();
+
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+}
+
+class BlinkMediaKeySystemAccess {
+  static final instance = new BlinkMediaKeySystemAccess();
+
+  keySystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keySystem");
+
+  createMediaKeys_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createMediaKeys", []);
+
+  getConfiguration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getConfiguration", []);
+
+}
+
 class BlinkMediaKeys {
   static final instance = new BlinkMediaKeys();
 
@@ -8495,24 +10500,20 @@
 
   createSession_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createSession", [__arg_0]);
 
-  create_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaKeys"), "create", []);
+  setServerCertificate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setServerCertificate", []);
 
-  create_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaKeys"), "create", [__arg_0]);
-
-  isTypeSupported_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaKeys"), "isTypeSupported", []);
-
-  isTypeSupported_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaKeys"), "isTypeSupported", [__arg_0]);
-
-  isTypeSupported_Callback_2_(__arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaKeys"), "isTypeSupported", [__arg_0, __arg_1]);
-
-  keySystem_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keySystem");
+  setServerCertificate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setServerCertificate", [__arg_0]);
 
 }
 
 class BlinkMediaList {
   static final instance = new BlinkMediaList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  mediaText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mediaText");
+
+  mediaText_Setter_(mthis, __arg_0) => mthis["mediaText"] = __arg_0;
 
   appendMedium_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendMedium", []);
 
@@ -8526,21 +10527,11 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  mediaText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mediaText");
-
-  mediaText_Setter_(mthis, __arg_0) => mthis["mediaText"] = __arg_0;
-
 }
 
 class BlinkMediaQueryList extends BlinkEventTarget {
   static final instance = new BlinkMediaQueryList();
 
-  addListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addListener", []);
-
-  addListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addListener", [__arg_0]);
-
   matches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "matches");
 
   media_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "media");
@@ -8549,6 +10540,10 @@
 
   onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
 
+  addListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addListener", []);
+
+  addListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addListener", [__arg_0]);
+
   removeListener_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeListener", []);
 
   removeListener_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeListener", [__arg_0]);
@@ -8558,6 +10553,10 @@
 class BlinkMediaQueryListEvent extends BlinkEvent {
   static final instance = new BlinkMediaQueryListEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaQueryListEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaQueryListEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaQueryListEvent"), [__arg_0, __arg_1]);
 
   matches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "matches");
@@ -8566,21 +10565,36 @@
 
 }
 
+class BlinkMediaSession {
+  static final instance = new BlinkMediaSession();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaSession"), []);
+
+  activate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "activate", []);
+
+  deactivate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deactivate", []);
+
+}
+
 class BlinkMediaSource extends BlinkEventTarget {
   static final instance = new BlinkMediaSource();
 
-  activeSourceBuffers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeSourceBuffers");
-
-  addSourceBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addSourceBuffer", []);
-
-  addSourceBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addSourceBuffer", [__arg_0]);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaSource"), []);
 
+  activeSourceBuffers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeSourceBuffers");
+
   duration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "duration");
 
   duration_Setter_(mthis, __arg_0) => mthis["duration"] = __arg_0;
 
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  sourceBuffers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceBuffers");
+
+  addSourceBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addSourceBuffer", []);
+
+  addSourceBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addSourceBuffer", [__arg_0]);
+
   endOfStream_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endOfStream", []);
 
   endOfStream_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "endOfStream", [__arg_0]);
@@ -8589,31 +10603,53 @@
 
   isTypeSupported_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaSource"), "isTypeSupported", [__arg_0]);
 
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
-
   removeSourceBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeSourceBuffer", []);
 
   removeSourceBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeSourceBuffer", [__arg_0]);
 
-  sourceBuffers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceBuffers");
-
 }
 
 class BlinkMediaStream extends BlinkEventTarget {
   static final instance = new BlinkMediaStream();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStream"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStream"), [__arg_0]);
+
+  active_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "active");
+
+  ended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ended");
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+  label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
+
+  onactive_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onactive");
+
+  onactive_Setter_(mthis, __arg_0) => mthis["onactive"] = __arg_0;
+
+  onaddtrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddtrack");
+
+  onaddtrack_Setter_(mthis, __arg_0) => mthis["onaddtrack"] = __arg_0;
+
+  onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
+
+  onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
+
+  oninactive_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninactive");
+
+  oninactive_Setter_(mthis, __arg_0) => mthis["oninactive"] = __arg_0;
+
+  onremovetrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onremovetrack");
+
+  onremovetrack_Setter_(mthis, __arg_0) => mthis["onremovetrack"] = __arg_0;
+
   addTrack_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addTrack", []);
 
   addTrack_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addTrack", [__arg_0]);
 
   clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStream"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStream"), [__arg_0]);
-
-  ended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ended");
-
   getAudioTracks_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAudioTracks", []);
 
   getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
@@ -8624,22 +10660,6 @@
 
   getVideoTracks_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVideoTracks", []);
 
-  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
-
-  label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
-
-  onaddtrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddtrack");
-
-  onaddtrack_Setter_(mthis, __arg_0) => mthis["onaddtrack"] = __arg_0;
-
-  onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
-
-  onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
-
-  onremovetrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onremovetrack");
-
-  onremovetrack_Setter_(mthis, __arg_0) => mthis["onremovetrack"] = __arg_0;
-
   removeTrack_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeTrack", []);
 
   removeTrack_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeTrack", [__arg_0]);
@@ -8665,6 +10685,10 @@
 class BlinkMediaStreamEvent extends BlinkEvent {
   static final instance = new BlinkMediaStreamEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamEvent"), [__arg_0, __arg_1]);
 
   stream_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stream");
@@ -8674,16 +10698,10 @@
 class BlinkMediaStreamTrack extends BlinkEventTarget {
   static final instance = new BlinkMediaStreamTrack();
 
-  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
-
   enabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "enabled");
 
   enabled_Setter_(mthis, __arg_0) => mthis["enabled"] = __arg_0;
 
-  getSources_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamTrack"), "getSources", []);
-
-  getSources_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamTrack"), "getSources", [__arg_0]);
-
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
   kind_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kind");
@@ -8706,6 +10724,12 @@
 
   readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
 
+  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
+
+  getSources_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamTrack"), "getSources", []);
+
+  getSources_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "MediaStreamTrack"), "getSources", [__arg_0]);
+
   stop_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stop", []);
 
 }
@@ -8717,6 +10741,15 @@
 
 }
 
+class BlinkMediaStreamTrackSourcesCallback {
+  static final instance = new BlinkMediaStreamTrackSourcesCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkMemoryInfo {
   static final instance = new BlinkMemoryInfo();
 
@@ -8731,8 +10764,6 @@
 class BlinkMessageChannel {
   static final instance = new BlinkMessageChannel();
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MessageChannel"), []);
-
   port1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port1");
 
   port2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port2");
@@ -8742,21 +10773,21 @@
 class BlinkMessageEvent extends BlinkEvent {
   static final instance = new BlinkMessageEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MessageEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MessageEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MessageEvent"), [__arg_0, __arg_1]);
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
 
-  initMessageEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", []);
+  lastEventId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastEventId");
 
-  initMessageEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0]);
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
 
-  initMessageEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1]);
+  ports_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ports");
 
-  initMessageEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initMessageEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initMessageEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+  source_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "source");
 
   initMessageEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
@@ -8764,23 +10795,17 @@
 
   initMessageEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initMessageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
 
-  lastEventId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastEventId");
-
-  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
-
-  source_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "source");
-
 }
 
 class BlinkMessagePort extends BlinkEventTarget {
   static final instance = new BlinkMessagePort();
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
   onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
 
   onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
 
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
   postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
 
   postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
@@ -8800,6 +10825,15 @@
 
 }
 
+class BlinkMetadataCallback {
+  static final instance = new BlinkMetadataCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkMimeType {
   static final instance = new BlinkMimeType();
 
@@ -8816,14 +10850,12 @@
 class BlinkMimeTypeArray {
   static final instance = new BlinkMimeTypeArray();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
   namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
 
   namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
@@ -8833,53 +10865,31 @@
 class BlinkMouseEvent extends BlinkUIEvent {
   static final instance = new BlinkMouseEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MouseEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MouseEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MouseEvent"), [__arg_0, __arg_1]);
+
   altKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "altKey");
 
   button_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "button");
 
+  buttons_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buttons");
+
   clientX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clientX");
 
   clientY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clientY");
 
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "MouseEvent"), [__arg_0, __arg_1]);
-
   ctrlKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ctrlKey");
 
   dataTransfer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dataTransfer");
 
   fromElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fromElement");
 
-  initMouseEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", []);
+  layerX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "layerX");
 
-  initMouseEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0]);
-
-  initMouseEvent_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
-
-  initMouseEvent_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
-
-  initMouseEvent_Callback_12_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11]);
-
-  initMouseEvent_Callback_13_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12]);
-
-  initMouseEvent_Callback_14_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13]);
-
-  initMouseEvent_Callback_15_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13, __arg_14) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13, __arg_14]);
-
-  initMouseEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1]);
-
-  initMouseEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initMouseEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initMouseEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  initMouseEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  initMouseEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  initMouseEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
-
-  initMouseEvent_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+  layerY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "layerY");
 
   metaKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "metaKey");
 
@@ -8891,6 +10901,10 @@
 
   offsetY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offsetY");
 
+  pageX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageX");
+
+  pageY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageY");
+
   region_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "region");
 
   relatedTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedTarget");
@@ -8907,6 +10921,29 @@
 
   webkitMovementY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitMovementY");
 
+  which_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "which");
+
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+
+  initMouseEvent_Callback_13_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12]);
+
+  initMouseEvent_Callback_14_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13]);
+
+  initMouseEvent_Callback_15_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13, __arg_14) => Blink_JsNative_DomException.callMethod(mthis, "initMouseEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12, __arg_13, __arg_14]);
+
+}
+
+class BlinkMutationCallback {
+  static final instance = new BlinkMutationCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+  handleEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0, __arg_1]);
+
 }
 
 class BlinkMutationEvent extends BlinkEvent {
@@ -8916,17 +10953,11 @@
 
   attrName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "attrName");
 
-  initMutationEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", []);
+  newValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newValue");
 
-  initMutationEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0]);
+  prevValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "prevValue");
 
-  initMutationEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1]);
-
-  initMutationEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initMutationEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initMutationEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+  relatedNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedNode");
 
   initMutationEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
@@ -8934,12 +10965,6 @@
 
   initMutationEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initMutationEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
 
-  newValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newValue");
-
-  prevValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "prevValue");
-
-  relatedNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedNode");
-
 }
 
 class BlinkMutationObserver {
@@ -8987,7 +11012,11 @@
 class BlinkNamedNodeMap {
   static final instance = new BlinkNamedNodeMap();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  getNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItem", []);
+
+  getNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItem", [__arg_0]);
 
   getNamedItemNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItemNS", []);
 
@@ -8995,15 +11024,13 @@
 
   getNamedItemNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItemNS", [__arg_0, __arg_1]);
 
-  getNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItem", []);
-
-  getNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getNamedItem", [__arg_0]);
-
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+  removeNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItem", []);
+
+  removeNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItem", [__arg_0]);
 
   removeNamedItemNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItemNS", []);
 
@@ -9011,50 +11038,62 @@
 
   removeNamedItemNS_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItemNS", [__arg_0, __arg_1]);
 
-  removeNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItem", []);
+  setNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItem", []);
 
-  removeNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeNamedItem", [__arg_0]);
+  setNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItem", [__arg_0]);
 
   setNamedItemNS_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItemNS", []);
 
   setNamedItemNS_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItemNS", [__arg_0]);
 
-  setNamedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItem", []);
-
-  setNamedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setNamedItem", [__arg_0]);
-
 }
 
 class BlinkNavigator {
   static final instance = new BlinkNavigator();
 
-  appCodeName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appCodeName");
-
-  appName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appName");
-
-  appVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appVersion");
+  bluetooth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bluetooth");
 
   connection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connection");
 
-  cookieEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cookieEnabled");
-
   credentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "credentials");
 
-  dartEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dartEnabled");
-
   doNotTrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "doNotTrack");
 
-  geofencing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "geofencing");
-
   geolocation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "geolocation");
 
+  maxTouchPoints_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxTouchPoints");
+
+  mediaDevices_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mediaDevices");
+
+  mimeTypes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mimeTypes");
+
+  permissions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "permissions");
+
+  plugins_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "plugins");
+
+  presentation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "presentation");
+
+  productSub_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "productSub");
+
+  serviceWorker_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "serviceWorker");
+
+  services_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "services");
+
+  storageQuota_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "storageQuota");
+
+  vendor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendor");
+
+  vendorSub_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendorSub");
+
+  webkitPersistentStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitPersistentStorage");
+
+  webkitTemporaryStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitTemporaryStorage");
+
   getBattery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBattery", []);
 
   getGamepads_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getGamepads", []);
 
-  getStorageUpdates_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStorageUpdates", []);
-
-  hardwareConcurrency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareConcurrency");
+  getVRDevices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVRDevices", []);
 
   isProtocolHandlerRegistered_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isProtocolHandlerRegistered", []);
 
@@ -9064,71 +11103,116 @@
 
   javaEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "javaEnabled", []);
 
-  language_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "language");
-
-  languages_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "languages");
-
-  maxTouchPoints_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maxTouchPoints");
-
-  mimeTypes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mimeTypes");
-
-  onLine_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onLine");
-
-  platform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platform");
-
-  plugins_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "plugins");
-
-  presentation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "presentation");
-
-  productSub_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "productSub");
-
-  product_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "product");
-
-  push_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "push");
-
   registerProtocolHandler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "registerProtocolHandler", [__arg_0]);
 
   registerProtocolHandler_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "registerProtocolHandler", [__arg_0, __arg_1]);
 
   registerProtocolHandler_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "registerProtocolHandler", [__arg_0, __arg_1, __arg_2]);
 
+  requestMIDIAccess_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestMIDIAccess", []);
+
+  requestMIDIAccess_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestMIDIAccess", [__arg_0]);
+
+  requestMediaKeySystemAccess_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestMediaKeySystemAccess", []);
+
+  requestMediaKeySystemAccess_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestMediaKeySystemAccess", [__arg_0]);
+
+  requestMediaKeySystemAccess_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "requestMediaKeySystemAccess", [__arg_0, __arg_1]);
+
   sendBeacon_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sendBeacon", []);
 
   sendBeacon_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sendBeacon", [__arg_0]);
 
   sendBeacon_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "sendBeacon", [__arg_0, __arg_1]);
 
-  serviceWorker_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "serviceWorker");
-
-  storageQuota_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "storageQuota");
-
   unregisterProtocolHandler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregisterProtocolHandler", []);
 
   unregisterProtocolHandler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "unregisterProtocolHandler", [__arg_0]);
 
   unregisterProtocolHandler_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "unregisterProtocolHandler", [__arg_0, __arg_1]);
 
-  userAgent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "userAgent");
-
-  vendorSub_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendorSub");
-
-  vendor_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vendor");
-
-  vibrate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vibrate", []);
-
-  vibrate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vibrate", [__arg_0]);
-
-  webkitGetGamepads_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitGetGamepads", []);
-
   webkitGetUserMedia_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitGetUserMedia", [__arg_0]);
 
   webkitGetUserMedia_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitGetUserMedia", [__arg_0, __arg_1]);
 
   webkitGetUserMedia_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitGetUserMedia", [__arg_0, __arg_1, __arg_2]);
 
-  webkitPersistentStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitPersistentStorage");
+  hardwareConcurrency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareConcurrency");
 
-  webkitTemporaryStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitTemporaryStorage");
+  appCodeName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appCodeName");
+
+  appName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appName");
+
+  appVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appVersion");
+
+  dartEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dartEnabled");
+
+  platform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platform");
+
+  product_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "product");
+
+  userAgent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "userAgent");
+
+  language_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "language");
+
+  languages_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "languages");
+
+  onLine_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onLine");
+
+  cookieEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cookieEnabled");
+
+  getStorageUpdates_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStorageUpdates", []);
+
+}
+
+class BlinkNavigatorCPU {
+  static final instance = new BlinkNavigatorCPU();
+
+  hardwareConcurrency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareConcurrency");
+
+}
+
+class BlinkNavigatorID {
+  static final instance = new BlinkNavigatorID();
+
+  appCodeName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appCodeName");
+
+  appName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appName");
+
+  appVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appVersion");
+
+  dartEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dartEnabled");
+
+  platform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platform");
+
+  product_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "product");
+
+  userAgent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "userAgent");
+
+}
+
+class BlinkNavigatorLanguage {
+  static final instance = new BlinkNavigatorLanguage();
+
+  language_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "language");
+
+  languages_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "languages");
+
+}
+
+class BlinkNavigatorOnLine {
+  static final instance = new BlinkNavigatorOnLine();
+
+  onLine_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onLine");
+
+}
+
+class BlinkNavigatorStorageUtils {
+  static final instance = new BlinkNavigatorStorageUtils();
+
+  cookieEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cookieEnabled");
+
+  getStorageUpdates_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStorageUpdates", []);
 
 }
 
@@ -9143,6 +11227,24 @@
 
 }
 
+class BlinkNavigatorUserMediaErrorCallback {
+  static final instance = new BlinkNavigatorUserMediaErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkNavigatorUserMediaSuccessCallback {
+  static final instance = new BlinkNavigatorUserMediaSuccessCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkNetworkInformation extends BlinkEventTarget {
   static final instance = new BlinkNetworkInformation();
 
@@ -9157,32 +11259,12 @@
 class BlinkNode extends BlinkEventTarget {
   static final instance = new BlinkNode();
 
-  appendChild_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendChild", []);
-
-  appendChild_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendChild", [__arg_0]);
-
   baseURI_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "baseURI");
 
   childNodes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childNodes");
 
-  cloneNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", []);
-
-  cloneNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", [__arg_0]);
-
-  contains_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "contains", []);
-
-  contains_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "contains", [__arg_0]);
-
   firstChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstChild");
 
-  hasChildNodes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasChildNodes", []);
-
-  insertBefore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", []);
-
-  insertBefore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", [__arg_0]);
-
-  insertBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", [__arg_0, __arg_1]);
-
   lastChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastChild");
 
   localName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "localName");
@@ -9207,6 +11289,56 @@
 
   previousSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousSibling");
 
+  textContent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textContent");
+
+  textContent_Setter_(mthis, __arg_0) => mthis["textContent"] = __arg_0;
+
+  appendChild_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendChild", []);
+
+  appendChild_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendChild", [__arg_0]);
+
+  cloneNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", []);
+
+  cloneNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", [__arg_0]);
+
+  compareDocumentPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compareDocumentPosition", []);
+
+  compareDocumentPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compareDocumentPosition", [__arg_0]);
+
+  contains_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "contains", []);
+
+  contains_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "contains", [__arg_0]);
+
+  hasChildNodes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasChildNodes", []);
+
+  insertBefore_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", []);
+
+  insertBefore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", [__arg_0]);
+
+  insertBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertBefore", [__arg_0, __arg_1]);
+
+  isDefaultNamespace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isDefaultNamespace", []);
+
+  isDefaultNamespace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isDefaultNamespace", [__arg_0]);
+
+  isEqualNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isEqualNode", []);
+
+  isEqualNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isEqualNode", [__arg_0]);
+
+  isSameNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isSameNode", []);
+
+  isSameNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isSameNode", [__arg_0]);
+
+  lookupNamespaceURI_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lookupNamespaceURI", []);
+
+  lookupNamespaceURI_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lookupNamespaceURI", [__arg_0]);
+
+  lookupPrefix_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lookupPrefix", []);
+
+  lookupPrefix_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lookupPrefix", [__arg_0]);
+
+  normalize_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "normalize", []);
+
   removeChild_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeChild", []);
 
   removeChild_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeChild", [__arg_0]);
@@ -9217,62 +11349,80 @@
 
   replaceChild_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "replaceChild", [__arg_0, __arg_1]);
 
-  textContent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textContent");
-
-  textContent_Setter_(mthis, __arg_0) => mthis["textContent"] = __arg_0;
-
 }
 
 class BlinkNodeFilter {
   static final instance = new BlinkNodeFilter();
 
+  acceptNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "acceptNode", []);
+
+  acceptNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "acceptNode", [__arg_0]);
+
 }
 
 class BlinkNodeIterator {
   static final instance = new BlinkNodeIterator();
 
-  detach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detach", []);
-
-  nextNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "nextNode", []);
+  filter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filter");
 
   pointerBeforeReferenceNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pointerBeforeReferenceNode");
 
-  previousNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "previousNode", []);
-
   referenceNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "referenceNode");
 
   root_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "root");
 
   whatToShow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "whatToShow");
 
+  detach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detach", []);
+
+  nextNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "nextNode", []);
+
+  previousNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "previousNode", []);
+
 }
 
 class BlinkNodeList {
   static final instance = new BlinkNodeList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+}
+
+class BlinkNonDocumentTypeChildNode {
+  static final instance = new BlinkNonDocumentTypeChildNode();
+
+  nextElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nextElementSibling");
+
+  previousElementSibling_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "previousElementSibling");
+
+}
+
+class BlinkNonElementParentNode {
+  static final instance = new BlinkNonElementParentNode();
+
+  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
+
+  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
 
 }
 
 class BlinkNotification extends BlinkEventTarget {
   static final instance = new BlinkNotification();
 
-  body_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "body");
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Notification"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Notification"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Notification"), [__arg_0, __arg_1]);
 
+  body_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "body");
+
+  data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
+
   dir_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dir");
 
   icon_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "icon");
@@ -9297,14 +11447,42 @@
 
   permission_Getter_() => Blink_JsNative_DomException.getProperty(Blink_JsNative_DomException.getProperty(js.context, "Notification"), "permission");
 
-  requestPermission_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Notification"), "requestPermission", []);
-
-  requestPermission_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Notification"), "requestPermission", [__arg_0]);
+  silent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "silent");
 
   tag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tag");
 
   title_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "title");
 
+  vibrate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "vibrate");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  requestPermission_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Notification"), "requestPermission", []);
+
+  requestPermission_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Notification"), "requestPermission", [__arg_0]);
+
+}
+
+class BlinkNotificationEvent extends BlinkExtendableEvent {
+  static final instance = new BlinkNotificationEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "NotificationEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "NotificationEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "NotificationEvent"), [__arg_0, __arg_1]);
+
+  notification_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "notification");
+
+}
+
+class BlinkNotificationPermissionCallback {
+  static final instance = new BlinkNotificationPermissionCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
 }
 
 class BlinkOESElementIndexUint {
@@ -9372,6 +11550,12 @@
 
   constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "OfflineAudioContext"), [__arg_0, __arg_1, __arg_2]);
 
+  oncomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncomplete");
+
+  oncomplete_Setter_(mthis, __arg_0) => mthis["oncomplete"] = __arg_0;
+
+  startRendering_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "startRendering", []);
+
 }
 
 class BlinkOscillatorNode extends BlinkAudioSourceNode {
@@ -9381,18 +11565,14 @@
 
   frequency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frequency");
 
-  noteOff_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "noteOff", []);
-
-  noteOff_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "noteOff", [__arg_0]);
-
-  noteOn_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "noteOn", []);
-
-  noteOn_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "noteOn", [__arg_0]);
-
   onended_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onended");
 
   onended_Setter_(mthis, __arg_0) => mthis["onended"] = __arg_0;
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
+
   setPeriodicWave_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setPeriodicWave", []);
 
   setPeriodicWave_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setPeriodicWave", [__arg_0]);
@@ -9405,23 +11585,6 @@
 
   stop_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stop", [__arg_0]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-  type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
-
-}
-
-class BlinkOverflowEvent extends BlinkEvent {
-  static final instance = new BlinkOverflowEvent();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "OverflowEvent"), [__arg_0, __arg_1]);
-
-  horizontalOverflow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "horizontalOverflow");
-
-  orient_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "orient");
-
-  verticalOverflow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "verticalOverflow");
-
 }
 
 class BlinkPagePopupController {
@@ -9457,21 +11620,35 @@
 
   localizeNumberString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "localizeNumberString", [__arg_0]);
 
+  selectFontsFromOwnerDocument_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectFontsFromOwnerDocument", []);
+
+  selectFontsFromOwnerDocument_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectFontsFromOwnerDocument", [__arg_0]);
+
+  setValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setValue", []);
+
+  setValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setValue", [__arg_0]);
+
   setValueAndClosePopup_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setValueAndClosePopup", []);
 
   setValueAndClosePopup_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setValueAndClosePopup", [__arg_0]);
 
   setValueAndClosePopup_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setValueAndClosePopup", [__arg_0, __arg_1]);
 
-  setValue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setValue", []);
+  setWindowRect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setWindowRect", [__arg_0, __arg_1]);
 
-  setValue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setValue", [__arg_0]);
+  setWindowRect_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setWindowRect", [__arg_0, __arg_1, __arg_2]);
+
+  setWindowRect_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "setWindowRect", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
 }
 
 class BlinkPageTransitionEvent extends BlinkEvent {
   static final instance = new BlinkPageTransitionEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PageTransitionEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PageTransitionEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PageTransitionEvent"), [__arg_0, __arg_1]);
 
   persisted_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "persisted");
@@ -9533,29 +11710,79 @@
 
 }
 
+class BlinkParentNode {
+  static final instance = new BlinkParentNode();
+
+  childElementCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "childElementCount");
+
+  children_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "children");
+
+  firstElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "firstElementChild");
+
+  lastElementChild_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastElementChild");
+
+  append_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "append", []);
+
+  append_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "append", [__arg_0]);
+
+  prepend_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prepend", []);
+
+  prepend_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "prepend", [__arg_0]);
+
+  querySelector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", []);
+
+  querySelector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelector", [__arg_0]);
+
+  querySelectorAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", []);
+
+  querySelectorAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "querySelectorAll", [__arg_0]);
+
+}
+
+class BlinkPasswordCredential extends BlinkCredential {
+  static final instance = new BlinkPasswordCredential();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PasswordCredential"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PasswordCredential"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PasswordCredential"), [__arg_0, __arg_1]);
+
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PasswordCredential"), [__arg_0, __arg_1, __arg_2]);
+
+  constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PasswordCredential"), [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  formData_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "formData");
+
+  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
+
+}
+
 class BlinkPath2D {
   static final instance = new BlinkPath2D();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Path2D"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Path2D"), [__arg_0]);
+
   addPath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addPath", []);
 
   addPath_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addPath", [__arg_0]);
 
   addPath_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addPath", [__arg_0, __arg_1]);
 
-  arcTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2]);
-
-  arcTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  arcTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  arc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2]);
-
   arc_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   arc_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
   arc_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "arc", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
+  arcTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2]);
+
+  arcTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  arcTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "arcTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
   bezierCurveTo_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   bezierCurveTo_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bezierCurveTo", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
@@ -9564,12 +11791,6 @@
 
   closePath_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "closePath", []);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Path2D"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Path2D"), [__arg_0]);
-
-  ellipse_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
   ellipse_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
 
   ellipse_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "ellipse", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
@@ -9605,6 +11826,22 @@
 class BlinkPerformance extends BlinkEventTarget {
   static final instance = new BlinkPerformance();
 
+  memory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "memory");
+
+  navigation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "navigation");
+
+  onframetimingbufferfull_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onframetimingbufferfull");
+
+  onframetimingbufferfull_Setter_(mthis, __arg_0) => mthis["onframetimingbufferfull"] = __arg_0;
+
+  onwebkitresourcetimingbufferfull_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitresourcetimingbufferfull");
+
+  onwebkitresourcetimingbufferfull_Setter_(mthis, __arg_0) => mthis["onwebkitresourcetimingbufferfull"] = __arg_0;
+
+  timing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timing");
+
+  clearFrameTimings_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearFrameTimings", []);
+
   clearMarks_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearMarks", []);
 
   clearMarks_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearMarks", [__arg_0]);
@@ -9613,6 +11850,8 @@
 
   clearMeasures_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearMeasures", [__arg_0]);
 
+  getEntries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntries", []);
+
   getEntriesByName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByName", []);
 
   getEntriesByName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByName", [__arg_0]);
@@ -9623,31 +11862,21 @@
 
   getEntriesByType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByType", [__arg_0]);
 
-  getEntries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntries", []);
-
   mark_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "mark", []);
 
   mark_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "mark", [__arg_0]);
 
-  measure_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "measure", []);
-
   measure_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0]);
 
   measure_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0, __arg_1]);
 
   measure_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0, __arg_1, __arg_2]);
 
-  memory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "memory");
-
-  navigation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "navigation");
-
   now_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "now", []);
 
-  onwebkitresourcetimingbufferfull_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitresourcetimingbufferfull");
+  setFrameTimingBufferSize_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setFrameTimingBufferSize", []);
 
-  onwebkitresourcetimingbufferfull_Setter_(mthis, __arg_0) => mthis["onwebkitresourcetimingbufferfull"] = __arg_0;
-
-  timing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timing");
+  setFrameTimingBufferSize_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setFrameTimingBufferSize", [__arg_0]);
 
   webkitClearResourceTimings_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitClearResourceTimings", []);
 
@@ -9657,6 +11886,13 @@
 
 }
 
+class BlinkPerformanceCompositeTiming extends BlinkPerformanceEntry {
+  static final instance = new BlinkPerformanceCompositeTiming();
+
+  sourceFrame_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceFrame");
+
+}
+
 class BlinkPerformanceEntry {
   static final instance = new BlinkPerformanceEntry();
 
@@ -9689,6 +11925,13 @@
 
 }
 
+class BlinkPerformanceRenderTiming extends BlinkPerformanceEntry {
+  static final instance = new BlinkPerformanceRenderTiming();
+
+  sourceFrame_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceFrame");
+
+}
+
 class BlinkPerformanceResourceTiming extends BlinkPerformanceEntry {
   static final instance = new BlinkPerformanceResourceTiming();
 
@@ -9716,6 +11959,8 @@
 
   secureConnectionStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "secureConnectionStart");
 
+  workerStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "workerStart");
+
 }
 
 class BlinkPerformanceTiming {
@@ -9765,28 +12010,95 @@
 
 }
 
+class BlinkPeriodicSyncEvent extends BlinkExtendableEvent {
+  static final instance = new BlinkPeriodicSyncEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PeriodicSyncEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PeriodicSyncEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PeriodicSyncEvent"), [__arg_0, __arg_1]);
+
+  registration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "registration");
+
+}
+
+class BlinkPeriodicSyncManager {
+  static final instance = new BlinkPeriodicSyncManager();
+
+  minPossiblePeriod_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minPossiblePeriod");
+
+  getRegistration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", []);
+
+  getRegistration_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", [__arg_0]);
+
+  getRegistrations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistrations", []);
+
+  permissionState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "permissionState", []);
+
+  register_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "register", []);
+
+  register_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "register", [__arg_0]);
+
+}
+
+class BlinkPeriodicSyncRegistration {
+  static final instance = new BlinkPeriodicSyncRegistration();
+
+  minPeriod_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minPeriod");
+
+  networkState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "networkState");
+
+  powerState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "powerState");
+
+  tag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tag");
+
+  unregister_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregister", []);
+
+}
+
 class BlinkPeriodicWave {
   static final instance = new BlinkPeriodicWave();
 
 }
 
+class BlinkPermissionStatus extends BlinkEventTarget {
+  static final instance = new BlinkPermissionStatus();
+
+  onchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onchange");
+
+  onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
+
+  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
+
+  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+
+}
+
+class BlinkPermissions {
+  static final instance = new BlinkPermissions();
+
+  query_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "query", []);
+
+  query_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "query", [__arg_0]);
+
+}
+
 class BlinkPlugin {
   static final instance = new BlinkPlugin();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   description_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "description");
 
   filename_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filename");
 
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
   namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
 
   namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
@@ -9796,14 +12108,12 @@
 class BlinkPluginArray {
   static final instance = new BlinkPluginArray();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
   namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
 
   namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
@@ -9817,23 +12127,67 @@
 class BlinkPluginPlaceholderElement extends BlinkHTMLDivElement {
   static final instance = new BlinkPluginPlaceholderElement();
 
-  createdCallback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createdCallback", []);
+  closeable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closeable");
+
+  closeable_Setter_(mthis, __arg_0) => mthis["closeable"] = __arg_0;
 
   message_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "message");
 
   message_Setter_(mthis, __arg_0) => mthis["message"] = __arg_0;
 
+  createdCallback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createdCallback", []);
+
+}
+
+class BlinkPointerEvent extends BlinkMouseEvent {
+  static final instance = new BlinkPointerEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PointerEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PointerEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PointerEvent"), [__arg_0, __arg_1]);
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  isPrimary_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isPrimary");
+
+  pointerId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pointerId");
+
+  pointerType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pointerType");
+
+  pressure_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pressure");
+
+  tiltX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tiltX");
+
+  tiltY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tiltY");
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
 }
 
 class BlinkPopStateEvent extends BlinkEvent {
   static final instance = new BlinkPopStateEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PopStateEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PopStateEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PopStateEvent"), [__arg_0, __arg_1]);
 
   state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
 
 }
 
+class BlinkPositionCallback {
+  static final instance = new BlinkPositionCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkPositionError {
   static final instance = new BlinkPositionError();
 
@@ -9843,12 +12197,86 @@
 
 }
 
+class BlinkPositionErrorCallback {
+  static final instance = new BlinkPositionErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkPositionSensorVRDevice extends BlinkVRDevice {
+  static final instance = new BlinkPositionSensorVRDevice();
+
+  getImmediateState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getImmediateState", []);
+
+  getState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getState", []);
+
+  resetSensor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resetSensor", []);
+
+}
+
 class BlinkPresentation extends BlinkEventTarget {
   static final instance = new BlinkPresentation();
 
-  onavailablechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onavailablechange");
+  ondefaultsessionstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondefaultsessionstart");
 
-  onavailablechange_Setter_(mthis, __arg_0) => mthis["onavailablechange"] = __arg_0;
+  ondefaultsessionstart_Setter_(mthis, __arg_0) => mthis["ondefaultsessionstart"] = __arg_0;
+
+  session_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "session");
+
+  getAvailability_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAvailability", []);
+
+  getAvailability_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAvailability", [__arg_0]);
+
+  joinSession_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "joinSession", []);
+
+  joinSession_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "joinSession", [__arg_0]);
+
+  joinSession_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "joinSession", [__arg_0, __arg_1]);
+
+  startSession_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "startSession", []);
+
+  startSession_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "startSession", [__arg_0]);
+
+}
+
+class BlinkPresentationAvailability extends BlinkEventTarget {
+  static final instance = new BlinkPresentationAvailability();
+
+  onchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onchange");
+
+  onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+}
+
+class BlinkPresentationSession extends BlinkEventTarget {
+  static final instance = new BlinkPresentationSession();
+
+  binaryType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "binaryType");
+
+  binaryType_Setter_(mthis, __arg_0) => mthis["binaryType"] = __arg_0;
+
+  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  onstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstatechange");
+
+  onstatechange_Setter_(mthis, __arg_0) => mthis["onstatechange"] = __arg_0;
+
+  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  send_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "send", []);
+
+  send_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "send", [__arg_0]);
 
 }
 
@@ -9864,6 +12292,10 @@
 class BlinkProgressEvent extends BlinkEvent {
   static final instance = new BlinkProgressEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ProgressEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ProgressEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ProgressEvent"), [__arg_0, __arg_1]);
 
   lengthComputable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lengthComputable");
@@ -9874,9 +12306,28 @@
 
 }
 
-class BlinkPushEvent extends BlinkEvent {
+class BlinkPromiseRejectionEvent extends BlinkEvent {
+  static final instance = new BlinkPromiseRejectionEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PromiseRejectionEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PromiseRejectionEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PromiseRejectionEvent"), [__arg_0, __arg_1]);
+
+  promise_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "promise");
+
+  reason_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "reason");
+
+}
+
+class BlinkPushEvent extends BlinkExtendableEvent {
   static final instance = new BlinkPushEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PushEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PushEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PushEvent"), [__arg_0, __arg_1]);
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
@@ -9886,29 +12337,41 @@
 class BlinkPushManager {
   static final instance = new BlinkPushManager();
 
-  register_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "register", []);
+  getSubscription_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSubscription", []);
 
-  register_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "register", [__arg_0]);
+  permissionState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "permissionState", []);
+
+  permissionState_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "permissionState", [__arg_0]);
+
+  subscribe_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "subscribe", []);
+
+  subscribe_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "subscribe", [__arg_0]);
 
 }
 
-class BlinkPushRegistration {
-  static final instance = new BlinkPushRegistration();
+class BlinkPushMessageData {
+  static final instance = new BlinkPushMessageData();
 
-  pushEndpoint_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pushEndpoint");
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PushMessageData"), []);
 
-  pushRegistrationId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pushRegistrationId");
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "PushMessageData"), [__arg_0]);
+
+  arrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "arrayBuffer", []);
+
+  blob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blob", []);
+
+  json_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "json", []);
+
+  text_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "text", []);
 
 }
 
-class BlinkRGBColor {
-  static final instance = new BlinkRGBColor();
+class BlinkPushSubscription {
+  static final instance = new BlinkPushSubscription();
 
-  blue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "blue");
+  endpoint_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endpoint");
 
-  green_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "green");
-
-  red_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "red");
+  unsubscribe_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unsubscribe", []);
 
 }
 
@@ -9919,14 +12382,6 @@
 
   duration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "duration");
 
-  insertDTMF_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", []);
-
-  insertDTMF_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0]);
-
-  insertDTMF_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0, __arg_1]);
-
-  insertDTMF_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0, __arg_1, __arg_2]);
-
   interToneGap_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "interToneGap");
 
   ontonechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontonechange");
@@ -9937,11 +12392,23 @@
 
   track_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "track");
 
+  insertDTMF_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", []);
+
+  insertDTMF_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0]);
+
+  insertDTMF_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0, __arg_1]);
+
+  insertDTMF_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "insertDTMF", [__arg_0, __arg_1, __arg_2]);
+
 }
 
 class BlinkRTCDTMFToneChangeEvent extends BlinkEvent {
   static final instance = new BlinkRTCDTMFToneChangeEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RTCDTMFToneChangeEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RTCDTMFToneChangeEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RTCDTMFToneChangeEvent"), [__arg_0, __arg_1]);
 
   tone_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tone");
@@ -9957,8 +12424,6 @@
 
   bufferedAmount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bufferedAmount");
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
   label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
@@ -9993,6 +12458,8 @@
 
   reliable_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "reliable");
 
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
   send_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "send", []);
 
   send_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "send", [__arg_0]);
@@ -10006,17 +12473,26 @@
 
 }
 
+class BlinkRTCErrorCallback {
+  static final instance = new BlinkRTCErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkRTCIceCandidate {
   static final instance = new BlinkRTCIceCandidate();
 
-  candidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "candidate");
-
-  candidate_Setter_(mthis, __arg_0) => mthis["candidate"] = __arg_0;
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RTCIceCandidate"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RTCIceCandidate"), [__arg_0]);
 
+  candidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "candidate");
+
+  candidate_Setter_(mthis, __arg_0) => mthis["candidate"] = __arg_0;
+
   sdpMLineIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sdpMLineIndex");
 
   sdpMLineIndex_Setter_(mthis, __arg_0) => mthis["sdpMLineIndex"] = __arg_0;
@@ -10037,6 +12513,50 @@
 class BlinkRTCPeerConnection extends BlinkEventTarget {
   static final instance = new BlinkRTCPeerConnection();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), [__arg_0, __arg_1]);
+
+  iceConnectionState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iceConnectionState");
+
+  iceGatheringState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iceGatheringState");
+
+  localDescription_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "localDescription");
+
+  onaddstream_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddstream");
+
+  onaddstream_Setter_(mthis, __arg_0) => mthis["onaddstream"] = __arg_0;
+
+  ondatachannel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondatachannel");
+
+  ondatachannel_Setter_(mthis, __arg_0) => mthis["ondatachannel"] = __arg_0;
+
+  onicecandidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onicecandidate");
+
+  onicecandidate_Setter_(mthis, __arg_0) => mthis["onicecandidate"] = __arg_0;
+
+  oniceconnectionstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oniceconnectionstatechange");
+
+  oniceconnectionstatechange_Setter_(mthis, __arg_0) => mthis["oniceconnectionstatechange"] = __arg_0;
+
+  onnegotiationneeded_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onnegotiationneeded");
+
+  onnegotiationneeded_Setter_(mthis, __arg_0) => mthis["onnegotiationneeded"] = __arg_0;
+
+  onremovestream_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onremovestream");
+
+  onremovestream_Setter_(mthis, __arg_0) => mthis["onremovestream"] = __arg_0;
+
+  onsignalingstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsignalingstatechange");
+
+  onsignalingstatechange_Setter_(mthis, __arg_0) => mthis["onsignalingstatechange"] = __arg_0;
+
+  remoteDescription_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "remoteDescription");
+
+  signalingState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "signalingState");
+
   addIceCandidate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addIceCandidate", [__arg_0]);
 
   addIceCandidate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addIceCandidate", [__arg_0, __arg_1]);
@@ -10051,12 +12571,6 @@
 
   close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitRTCPeerConnection"), [__arg_0, __arg_1]);
-
   createAnswer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createAnswer", []);
 
   createAnswer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createAnswer", [__arg_0]);
@@ -10097,42 +12611,6 @@
 
   getStreamById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getStreamById", [__arg_0]);
 
-  iceConnectionState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iceConnectionState");
-
-  iceGatheringState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iceGatheringState");
-
-  localDescription_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "localDescription");
-
-  onaddstream_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddstream");
-
-  onaddstream_Setter_(mthis, __arg_0) => mthis["onaddstream"] = __arg_0;
-
-  ondatachannel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondatachannel");
-
-  ondatachannel_Setter_(mthis, __arg_0) => mthis["ondatachannel"] = __arg_0;
-
-  onicecandidate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onicecandidate");
-
-  onicecandidate_Setter_(mthis, __arg_0) => mthis["onicecandidate"] = __arg_0;
-
-  oniceconnectionstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oniceconnectionstatechange");
-
-  oniceconnectionstatechange_Setter_(mthis, __arg_0) => mthis["oniceconnectionstatechange"] = __arg_0;
-
-  onnegotiationneeded_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onnegotiationneeded");
-
-  onnegotiationneeded_Setter_(mthis, __arg_0) => mthis["onnegotiationneeded"] = __arg_0;
-
-  onremovestream_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onremovestream");
-
-  onremovestream_Setter_(mthis, __arg_0) => mthis["onremovestream"] = __arg_0;
-
-  onsignalingstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsignalingstatechange");
-
-  onsignalingstatechange_Setter_(mthis, __arg_0) => mthis["onsignalingstatechange"] = __arg_0;
-
-  remoteDescription_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "remoteDescription");
-
   removeStream_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeStream", []);
 
   removeStream_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeStream", [__arg_0]);
@@ -10153,8 +12631,6 @@
 
   setRemoteDescription_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setRemoteDescription", [__arg_0, __arg_1, __arg_2]);
 
-  signalingState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "signalingState");
-
   updateIce_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "updateIce", []);
 
   updateIce_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "updateIce", [__arg_0]);
@@ -10180,32 +12656,44 @@
 
 }
 
+class BlinkRTCSessionDescriptionCallback {
+  static final instance = new BlinkRTCSessionDescriptionCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkRTCStatsCallback {
+  static final instance = new BlinkRTCStatsCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkRTCStatsReport {
   static final instance = new BlinkRTCStatsReport();
 
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
 
-  local_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "local");
+  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   names_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "names", []);
 
-  remote_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "remote");
-
   stat_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stat", []);
 
   stat_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stat", [__arg_0]);
 
-  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
-
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
 }
 
 class BlinkRTCStatsResponse {
   static final instance = new BlinkRTCStatsResponse();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   namedItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", []);
 
   namedItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "namedItem", [__arg_0]);
@@ -10217,17 +12705,33 @@
 class BlinkRadioNodeList extends BlinkNodeList {
   static final instance = new BlinkRadioNodeList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
 
   value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
 
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
 }
 
 class BlinkRange {
   static final instance = new BlinkRange();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Range"), []);
+
+  collapsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "collapsed");
+
+  commonAncestorContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "commonAncestorContainer");
+
+  endContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endContainer");
+
+  endOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endOffset");
+
+  startContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startContainer");
+
+  startOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startOffset");
+
   cloneContents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cloneContents", []);
 
   cloneRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cloneRange", []);
@@ -10236,28 +12740,18 @@
 
   collapse_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "collapse", [__arg_0]);
 
-  collapsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "collapsed");
-
-  commonAncestorContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "commonAncestorContainer");
-
   compareBoundaryPoints_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compareBoundaryPoints", []);
 
   compareBoundaryPoints_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compareBoundaryPoints", [__arg_0]);
 
   compareBoundaryPoints_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "compareBoundaryPoints", [__arg_0, __arg_1]);
 
-  compareNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compareNode", []);
-
-  compareNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compareNode", [__arg_0]);
-
   comparePoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "comparePoint", []);
 
   comparePoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "comparePoint", [__arg_0]);
 
   comparePoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "comparePoint", [__arg_0, __arg_1]);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Range"), []);
-
   createContextualFragment_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createContextualFragment", []);
 
   createContextualFragment_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createContextualFragment", [__arg_0]);
@@ -10266,10 +12760,6 @@
 
   detach_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detach", []);
 
-  endContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endContainer");
-
-  endOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endOffset");
-
   expand_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "expand", []);
 
   expand_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "expand", [__arg_0]);
@@ -10294,13 +12784,19 @@
 
   isPointInRange_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "isPointInRange", [__arg_0, __arg_1]);
 
+  selectNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectNode", []);
+
+  selectNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectNode", [__arg_0]);
+
   selectNodeContents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectNodeContents", []);
 
   selectNodeContents_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectNodeContents", [__arg_0]);
 
-  selectNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectNode", []);
+  setEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", []);
 
-  selectNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectNode", [__arg_0]);
+  setEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", [__arg_0]);
+
+  setEnd_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", [__arg_0, __arg_1]);
 
   setEndAfter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setEndAfter", []);
 
@@ -10310,11 +12806,11 @@
 
   setEndBefore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setEndBefore", [__arg_0]);
 
-  setEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", []);
+  setStart_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStart", []);
 
-  setEnd_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", [__arg_0]);
+  setStart_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setStart", [__arg_0]);
 
-  setEnd_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setEnd", [__arg_0, __arg_1]);
+  setStart_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setStart", [__arg_0, __arg_1]);
 
   setStartAfter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStartAfter", []);
 
@@ -10324,22 +12820,38 @@
 
   setStartBefore_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setStartBefore", [__arg_0]);
 
-  setStart_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStart", []);
-
-  setStart_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setStart", [__arg_0]);
-
-  setStart_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setStart", [__arg_0, __arg_1]);
-
-  startContainer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startContainer");
-
-  startOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startOffset");
-
   surroundContents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "surroundContents", []);
 
   surroundContents_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "surroundContents", [__arg_0]);
 
 }
 
+class BlinkReadableByteStream {
+  static final instance = new BlinkReadableByteStream();
+
+  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
+
+  cancel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancel", [__arg_0]);
+
+  getReader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getReader", []);
+
+}
+
+class BlinkReadableByteStreamReader {
+  static final instance = new BlinkReadableByteStreamReader();
+
+  closed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closed");
+
+  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
+
+  cancel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancel", [__arg_0]);
+
+  read_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "read", []);
+
+  releaseLock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseLock", []);
+
+}
+
 class BlinkReadableStream {
   static final instance = new BlinkReadableStream();
 
@@ -10347,32 +12859,32 @@
 
   cancel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancel", [__arg_0]);
 
-  closed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closed");
-
-  read_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "read", []);
-
-  state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
-
-  wait_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "wait", []);
+  getReader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getReader", []);
 
 }
 
-class BlinkRect {
-  static final instance = new BlinkRect();
+class BlinkReadableStreamReader {
+  static final instance = new BlinkReadableStreamReader();
 
-  bottom_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bottom");
+  closed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closed");
 
-  left_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "left");
+  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
 
-  right_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "right");
+  cancel_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancel", [__arg_0]);
 
-  top_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "top");
+  read_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "read", []);
+
+  releaseLock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseLock", []);
 
 }
 
 class BlinkRelatedEvent extends BlinkEvent {
   static final instance = new BlinkRelatedEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RelatedEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RelatedEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "RelatedEvent"), [__arg_0, __arg_1]);
 
   relatedTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "relatedTarget");
@@ -10382,36 +12894,35 @@
 class BlinkRequest {
   static final instance = new BlinkRequest();
 
-  arrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "arrayBuffer", []);
-
-  blob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blob", []);
-
-  bodyUsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bodyUsed");
-
-  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Request"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Request"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Request"), [__arg_0, __arg_1]);
 
+  context_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "context");
+
   credentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "credentials");
 
   headers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "headers");
 
-  json_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "json", []);
-
-  method_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "method");
-
   mode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mode");
 
   referrer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "referrer");
 
-  text_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "text", []);
-
   url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
 
+  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
+
+}
+
+class BlinkRequestAnimationFrameCallback {
+  static final instance = new BlinkRequestAnimationFrameCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
 }
 
 class BlinkResourceProgressEvent extends BlinkProgressEvent {
@@ -10424,34 +12935,34 @@
 class BlinkResponse {
   static final instance = new BlinkResponse();
 
-  arrayBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "arrayBuffer", []);
-
-  blob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blob", []);
-
-  bodyUsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bodyUsed");
-
-  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Response"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Response"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Response"), [__arg_0, __arg_1]);
 
+  body_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "body");
+
   headers_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "headers");
 
-  json_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "json", []);
-
-  statusText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusText");
+  ok_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ok");
 
   status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
 
-  text_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "text", []);
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
 
+  clone_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clone", []);
+
+  error_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Response"), "error", []);
+
+  redirect_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Response"), "redirect", []);
+
+  redirect_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Response"), "redirect", [__arg_0]);
+
+  redirect_Callback_2_(__arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "Response"), "redirect", [__arg_0, __arg_1]);
+
 }
 
 class BlinkSQLError {
@@ -10468,20 +12979,42 @@
 
   insertId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "insertId");
 
-  rowsAffected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rowsAffected");
-
   rows_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rows");
 
+  rowsAffected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rowsAffected");
+
 }
 
 class BlinkSQLResultSetRowList {
   static final instance = new BlinkSQLResultSetRowList();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+}
+
+class BlinkSQLStatementCallback {
+  static final instance = new BlinkSQLStatementCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+  handleEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0, __arg_1]);
+
+}
+
+class BlinkSQLStatementErrorCallback {
+  static final instance = new BlinkSQLStatementErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+  handleEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0, __arg_1]);
 
 }
 
@@ -10500,43 +13033,50 @@
 
 }
 
+class BlinkSQLTransactionCallback {
+  static final instance = new BlinkSQLTransactionCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkSQLTransactionErrorCallback {
+  static final instance = new BlinkSQLTransactionErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkSVGAElement extends BlinkSVGGraphicsElement {
   static final instance = new BlinkSVGAElement();
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   target_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "target");
 
-}
-
-class BlinkSVGAltGlyphDefElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGAltGlyphDefElement();
-
-}
-
-class BlinkSVGAltGlyphElement extends BlinkSVGTextPositioningElement {
-  static final instance = new BlinkSVGAltGlyphElement();
-
-  format_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "format");
-
-  format_Setter_(mthis, __arg_0) => mthis["format"] = __arg_0;
-
-  glyphRef_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "glyphRef");
-
-  glyphRef_Setter_(mthis, __arg_0) => mthis["glyphRef"] = __arg_0;
-
   href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
 
 }
 
-class BlinkSVGAltGlyphItemElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGAltGlyphItemElement();
-
-}
-
 class BlinkSVGAngle {
   static final instance = new BlinkSVGAngle();
 
+  unitType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unitType");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
+  valueAsString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsString");
+
+  valueAsString_Setter_(mthis, __arg_0) => mthis["valueAsString"] = __arg_0;
+
+  valueInSpecifiedUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueInSpecifiedUnits");
+
+  valueInSpecifiedUnits_Setter_(mthis, __arg_0) => mthis["valueInSpecifiedUnits"] = __arg_0;
+
   convertToSpecifiedUnits_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "convertToSpecifiedUnits", []);
 
   convertToSpecifiedUnits_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "convertToSpecifiedUnits", [__arg_0]);
@@ -10547,20 +13087,6 @@
 
   newValueSpecifiedUnits_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "newValueSpecifiedUnits", [__arg_0, __arg_1]);
 
-  unitType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unitType");
-
-  valueAsString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsString");
-
-  valueAsString_Setter_(mthis, __arg_0) => mthis["valueAsString"] = __arg_0;
-
-  valueInSpecifiedUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueInSpecifiedUnits");
-
-  valueInSpecifiedUnits_Setter_(mthis, __arg_0) => mthis["valueInSpecifiedUnits"] = __arg_0;
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
 }
 
 class BlinkSVGAnimateElement extends BlinkSVGAnimationElement {
@@ -10699,28 +13225,6 @@
 class BlinkSVGAnimationElement extends BlinkSVGElement {
   static final instance = new BlinkSVGAnimationElement();
 
-  beginElementAt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginElementAt", []);
-
-  beginElementAt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginElementAt", [__arg_0]);
-
-  beginElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginElement", []);
-
-  endElementAt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endElementAt", []);
-
-  endElementAt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "endElementAt", [__arg_0]);
-
-  endElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endElement", []);
-
-  getCurrentTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentTime", []);
-
-  getSimpleDuration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSimpleDuration", []);
-
-  getStartTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStartTime", []);
-
-  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
-
-  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
-
   onbegin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbegin");
 
   onbegin_Setter_(mthis, __arg_0) => mthis["onbegin"] = __arg_0;
@@ -10733,13 +13237,35 @@
 
   onrepeat_Setter_(mthis, __arg_0) => mthis["onrepeat"] = __arg_0;
 
+  targetElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetElement");
+
+  beginElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginElement", []);
+
+  beginElementAt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginElementAt", []);
+
+  beginElementAt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginElementAt", [__arg_0]);
+
+  endElement_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endElement", []);
+
+  endElementAt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endElementAt", []);
+
+  endElementAt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "endElementAt", [__arg_0]);
+
+  getCurrentTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCurrentTime", []);
+
+  getSimpleDuration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSimpleDuration", []);
+
+  getStartTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getStartTime", []);
+
   requiredExtensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredExtensions");
 
   requiredFeatures_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredFeatures");
 
   systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
 
-  targetElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetElement");
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
+
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
 
 }
 
@@ -10783,9 +13309,9 @@
 class BlinkSVGCursorElement extends BlinkSVGElement {
   static final instance = new BlinkSVGCursorElement();
 
-  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
-  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
   href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
 
@@ -10795,9 +13321,9 @@
 
   systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
 
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
 
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
 
 }
 
@@ -10821,6 +13347,20 @@
 
   className_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "className");
 
+  ownerSVGElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ownerSVGElement");
+
+  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
+
+  tabIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tabIndex");
+
+  tabIndex_Setter_(mthis, __arg_0) => mthis["tabIndex"] = __arg_0;
+
+  viewportElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewportElement");
+
+  blur_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blur", []);
+
+  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
+
   onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
 
   onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
@@ -11001,6 +13541,38 @@
 
   onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
 
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
+
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
+
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
+
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
+
   onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
 
   onprogress_Setter_(mthis, __arg_0) => mthis["onprogress"] = __arg_0;
@@ -11065,28 +13637,6 @@
 
   onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
 
-  ownerSVGElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ownerSVGElement");
-
-  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
-
-  tabIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tabIndex");
-
-  tabIndex_Setter_(mthis, __arg_0) => mthis["tabIndex"] = __arg_0;
-
-  viewportElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewportElement");
-
-  xmlbase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlbase");
-
-  xmlbase_Setter_(mthis, __arg_0) => mthis["xmlbase"] = __arg_0;
-
-  xmllang_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmllang");
-
-  xmllang_Setter_(mthis, __arg_0) => mthis["xmllang"] = __arg_0;
-
-  xmlspace_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xmlspace");
-
-  xmlspace_Setter_(mthis, __arg_0) => mthis["xmlspace"] = __arg_0;
-
 }
 
 class BlinkSVGEllipseElement extends BlinkSVGGeometryElement {
@@ -11105,14 +13655,14 @@
 class BlinkSVGFEBlendElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEBlendElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   in2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in2");
 
   mode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mode");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11126,16 +13676,16 @@
 class BlinkSVGFEColorMatrixElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEColorMatrixElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   values_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "values");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
@@ -11147,10 +13697,10 @@
 class BlinkSVGFEComponentTransferElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEComponentTransferElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11164,8 +13714,6 @@
 class BlinkSVGFECompositeElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFECompositeElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   in2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in2");
@@ -11180,6 +13728,8 @@
 
   operator_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "operator");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11199,8 +13749,6 @@
 
   edgeMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "edgeMode");
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   kernelMatrix_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kernelMatrix");
@@ -11215,12 +13763,14 @@
 
   preserveAlpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAlpha");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
   targetX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetX");
 
   targetY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetY");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
@@ -11234,18 +13784,18 @@
 
   diffuseConstant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "diffuseConstant");
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   kernelUnitLengthX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kernelUnitLengthX");
 
   kernelUnitLengthY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kernelUnitLengthY");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
   surfaceScale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "surfaceScale");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
@@ -11257,24 +13807,24 @@
 class BlinkSVGFEDisplacementMapElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEDisplacementMapElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   in2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in2");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
   scale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scale");
 
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
   xChannelSelector_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "xChannelSelector");
 
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
-
   yChannelSelector_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "yChannelSelector");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
 }
@@ -11295,11 +13845,11 @@
 
   dy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dy");
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+  stdDeviationX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationX");
+
+  stdDeviationY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationY");
 
   setStdDeviation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStdDeviation", []);
 
@@ -11307,9 +13857,9 @@
 
   setStdDeviation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setStdDeviation", [__arg_0, __arg_1]);
 
-  stdDeviationX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationX");
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  stdDeviationY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationY");
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
@@ -11357,11 +13907,11 @@
 class BlinkSVGFEGaussianBlurElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEGaussianBlurElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+  stdDeviationX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationX");
+
+  stdDeviationY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationY");
 
   setStdDeviation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setStdDeviation", []);
 
@@ -11369,9 +13919,9 @@
 
   setStdDeviation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setStdDeviation", [__arg_0, __arg_1]);
 
-  stdDeviationX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationX");
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  stdDeviationY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stdDeviationY");
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
@@ -11384,12 +13934,10 @@
 class BlinkSVGFEImageElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEImageElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11398,6 +13946,8 @@
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
 }
 
 class BlinkSVGFEMergeElement extends BlinkSVGElement {
@@ -11425,8 +13975,6 @@
 class BlinkSVGFEMorphologyElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFEMorphologyElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
   operator_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "operator");
@@ -11435,6 +13983,8 @@
 
   radiusY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "radiusY");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11452,10 +14002,10 @@
 
   dy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dy");
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11480,11 +14030,11 @@
 class BlinkSVGFESpecularLightingElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFESpecularLightingElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+  kernelUnitLengthX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kernelUnitLengthX");
+
+  kernelUnitLengthY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kernelUnitLengthY");
 
   specularConstant_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "specularConstant");
 
@@ -11492,6 +14042,10 @@
 
   surfaceScale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "surfaceScale");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
@@ -11524,10 +14078,10 @@
 class BlinkSVGFETileElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFETileElement();
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   in1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "in1");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
   result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11545,18 +14099,18 @@
 
   baseFrequencyY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "baseFrequencyY");
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   numOctaves_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numOctaves");
 
-  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
-
   seed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "seed");
 
   stitchTiles_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stitchTiles");
 
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
+
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
@@ -11568,23 +14122,28 @@
 class BlinkSVGFilterElement extends BlinkSVGElement {
   static final instance = new BlinkSVGFilterElement();
 
-  filterResX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filterResX");
-
-  filterResY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filterResY");
-
   filterUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filterUnits");
 
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   primitiveUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "primitiveUnits");
 
-  setFilterRes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setFilterRes", []);
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
-  setFilterRes_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setFilterRes", [__arg_0]);
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
-  setFilterRes_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setFilterRes", [__arg_0, __arg_1]);
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+}
+
+class BlinkSVGFilterPrimitiveStandardAttributes {
+  static final instance = new BlinkSVGFilterPrimitiveStandardAttributes();
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  result_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "result");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
@@ -11594,33 +14153,12 @@
 
 }
 
-class BlinkSVGFontElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontElement();
+class BlinkSVGFitToViewBox {
+  static final instance = new BlinkSVGFitToViewBox();
 
-}
+  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
-class BlinkSVGFontFaceElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontFaceElement();
-
-}
-
-class BlinkSVGFontFaceFormatElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontFaceFormatElement();
-
-}
-
-class BlinkSVGFontFaceNameElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontFaceNameElement();
-
-}
-
-class BlinkSVGFontFaceSrcElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontFaceSrcElement();
-
-}
-
-class BlinkSVGFontFaceUriElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGFontFaceUriElement();
+  viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
 
 }
 
@@ -11655,42 +14193,6 @@
 
 }
 
-class BlinkSVGGlyphElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGGlyphElement();
-
-}
-
-class BlinkSVGGlyphRefElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGGlyphRefElement();
-
-  dx_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dx");
-
-  dx_Setter_(mthis, __arg_0) => mthis["dx"] = __arg_0;
-
-  dy_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dy");
-
-  dy_Setter_(mthis, __arg_0) => mthis["dy"] = __arg_0;
-
-  format_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "format");
-
-  format_Setter_(mthis, __arg_0) => mthis["format"] = __arg_0;
-
-  glyphRef_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "glyphRef");
-
-  glyphRef_Setter_(mthis, __arg_0) => mthis["glyphRef"] = __arg_0;
-
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
-
-  x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
-
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
-
-  y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
-
-}
-
 class BlinkSVGGradientElement extends BlinkSVGElement {
   static final instance = new BlinkSVGGradientElement();
 
@@ -11698,10 +14200,10 @@
 
   gradientUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "gradientUnits");
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   spreadMethod_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "spreadMethod");
 
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
 }
 
 class BlinkSVGGraphicsElement extends BlinkSVGElement {
@@ -11709,6 +14211,10 @@
 
   farthestViewportElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "farthestViewportElement");
 
+  nearestViewportElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nearestViewportElement");
+
+  transform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transform");
+
   getBBox_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBBox", []);
 
   getCTM_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCTM", []);
@@ -11719,24 +14225,15 @@
 
   getTransformToElement_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTransformToElement", [__arg_0]);
 
-  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
-
-  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
-
-  nearestViewportElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "nearestViewportElement");
-
   requiredExtensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredExtensions");
 
   requiredFeatures_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredFeatures");
 
   systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
 
-  transform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transform");
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
 
-}
-
-class BlinkSVGHKernElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGHKernElement();
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
 
 }
 
@@ -11745,8 +14242,6 @@
 
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
@@ -11755,11 +14250,27 @@
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
 }
 
 class BlinkSVGLength {
   static final instance = new BlinkSVGLength();
 
+  unitType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unitType");
+
+  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
+
+  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
+
+  valueAsString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsString");
+
+  valueAsString_Setter_(mthis, __arg_0) => mthis["valueAsString"] = __arg_0;
+
+  valueInSpecifiedUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueInSpecifiedUnits");
+
+  valueInSpecifiedUnits_Setter_(mthis, __arg_0) => mthis["valueInSpecifiedUnits"] = __arg_0;
+
   convertToSpecifiedUnits_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "convertToSpecifiedUnits", []);
 
   convertToSpecifiedUnits_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "convertToSpecifiedUnits", [__arg_0]);
@@ -11770,26 +14281,14 @@
 
   newValueSpecifiedUnits_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "newValueSpecifiedUnits", [__arg_0, __arg_1]);
 
-  unitType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "unitType");
-
-  valueAsString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueAsString");
-
-  valueAsString_Setter_(mthis, __arg_0) => mthis["valueAsString"] = __arg_0;
-
-  valueInSpecifiedUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valueInSpecifiedUnits");
-
-  valueInSpecifiedUnits_Setter_(mthis, __arg_0) => mthis["valueInSpecifiedUnits"] = __arg_0;
-
-  value_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "value");
-
-  value_Setter_(mthis, __arg_0) => mthis["value"] = __arg_0;
-
 }
 
 class BlinkSVGLengthList {
   static final instance = new BlinkSVGLengthList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -11813,10 +14312,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -11875,8 +14370,6 @@
 
   orientType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "orientType");
 
-  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
-
   refX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "refX");
 
   refY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "refY");
@@ -11887,6 +14380,8 @@
 
   setOrientToAuto_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setOrientToAuto", []);
 
+  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
+
   viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
 
 }
@@ -11894,27 +14389,27 @@
 class BlinkSVGMaskElement extends BlinkSVGElement {
   static final instance = new BlinkSVGMaskElement();
 
-  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
-
-  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
-
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
   maskContentUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maskContentUnits");
 
   maskUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maskUnits");
 
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+
   requiredExtensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredExtensions");
 
   requiredFeatures_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredFeatures");
 
   systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
 
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
 
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
-
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
 
 }
 
@@ -11955,15 +14450,19 @@
 
   multiply_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "multiply", [__arg_0]);
 
+  rotate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "rotate", []);
+
+  rotate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "rotate", [__arg_0]);
+
   rotateFromVector_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "rotateFromVector", []);
 
   rotateFromVector_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "rotateFromVector", [__arg_0]);
 
   rotateFromVector_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rotateFromVector", [__arg_0, __arg_1]);
 
-  rotate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "rotate", []);
+  scale_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale", []);
 
-  rotate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "rotate", [__arg_0]);
+  scale_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0]);
 
   scaleNonUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scaleNonUniform", []);
 
@@ -11971,10 +14470,6 @@
 
   scaleNonUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scaleNonUniform", [__arg_0, __arg_1]);
 
-  scale_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale", []);
-
-  scale_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0]);
-
   skewX_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "skewX", []);
 
   skewX_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "skewX", [__arg_0]);
@@ -11996,11 +14491,6 @@
 
 }
 
-class BlinkSVGMissingGlyphElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGMissingGlyphElement();
-
-}
-
 class BlinkSVGNumber {
   static final instance = new BlinkSVGNumber();
 
@@ -12013,7 +14503,9 @@
 class BlinkSVGNumberList {
   static final instance = new BlinkSVGNumberList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -12037,10 +14529,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -12060,6 +14548,12 @@
 
   animatedPathSegList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "animatedPathSegList");
 
+  normalizedPathSegList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "normalizedPathSegList");
+
+  pathLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathLength");
+
+  pathSegList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathSegList");
+
   createSVGPathSegArcAbs_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "createSVGPathSegArcAbs", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
   createSVGPathSegArcAbs_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "createSVGPathSegArcAbs", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
@@ -12172,21 +14666,15 @@
 
   getTotalLength_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTotalLength", []);
 
-  normalizedPathSegList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "normalizedPathSegList");
-
-  pathLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathLength");
-
-  pathSegList_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathSegList");
-
 }
 
 class BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSeg();
 
-  pathSegTypeAsLetter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathSegTypeAsLetter");
-
   pathSegType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathSegType");
 
+  pathSegTypeAsLetter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathSegTypeAsLetter");
+
 }
 
 class BlinkSVGPathSegArcAbs extends BlinkSVGPathSeg {
@@ -12263,6 +14751,10 @@
 class BlinkSVGPathSegCurvetoCubicAbs extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoCubicAbs();
 
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
+
   x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
 
   x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
@@ -12271,9 +14763,9 @@
 
   x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
 
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
-  x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
+  y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
   y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
 
@@ -12283,15 +14775,15 @@
 
   y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
 
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
-
-  y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
-
 }
 
 class BlinkSVGPathSegCurvetoCubicRel extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoCubicRel();
 
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
+
   x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
 
   x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
@@ -12300,9 +14792,9 @@
 
   x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
 
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
-  x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
+  y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
   y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
 
@@ -12312,94 +14804,90 @@
 
   y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
 
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
-
-  y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
-
 }
 
 class BlinkSVGPathSegCurvetoCubicSmoothAbs extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoCubicSmoothAbs();
 
-  x2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x2");
-
-  x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
-
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
 
-  y2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y2");
+  x2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x2");
 
-  y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
+  x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
   y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
+  y2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y2");
+
+  y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
+
 }
 
 class BlinkSVGPathSegCurvetoCubicSmoothRel extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoCubicSmoothRel();
 
-  x2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x2");
-
-  x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
-
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
 
-  y2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y2");
+  x2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x2");
 
-  y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
+  x2_Setter_(mthis, __arg_0) => mthis["x2"] = __arg_0;
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
   y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
+  y2_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y2");
+
+  y2_Setter_(mthis, __arg_0) => mthis["y2"] = __arg_0;
+
 }
 
 class BlinkSVGPathSegCurvetoQuadraticAbs extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoQuadraticAbs();
 
-  x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
-
-  x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
-
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
 
-  y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
+  x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
 
-  y1_Setter_(mthis, __arg_0) => mthis["y1"] = __arg_0;
+  x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
   y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
+  y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
+
+  y1_Setter_(mthis, __arg_0) => mthis["y1"] = __arg_0;
+
 }
 
 class BlinkSVGPathSegCurvetoQuadraticRel extends BlinkSVGPathSeg {
   static final instance = new BlinkSVGPathSegCurvetoQuadraticRel();
 
-  x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
-
-  x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
-
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
 
-  y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
+  x1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x1");
 
-  y1_Setter_(mthis, __arg_0) => mthis["y1"] = __arg_0;
+  x1_Setter_(mthis, __arg_0) => mthis["x1"] = __arg_0;
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
   y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
+  y1_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y1");
+
+  y1_Setter_(mthis, __arg_0) => mthis["y1"] = __arg_0;
+
 }
 
 class BlinkSVGPathSegCurvetoQuadraticSmoothAbs extends BlinkSVGPathSeg {
@@ -12493,7 +14981,9 @@
 class BlinkSVGPathSegList {
   static final instance = new BlinkSVGPathSegList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -12517,10 +15007,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -12562,45 +15048,41 @@
 class BlinkSVGPatternElement extends BlinkSVGElement {
   static final instance = new BlinkSVGPatternElement();
 
-  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
-
-  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
-
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   patternContentUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "patternContentUnits");
 
   patternTransform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "patternTransform");
 
   patternUnits_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "patternUnits");
 
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+
   preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
+  viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
   requiredExtensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredExtensions");
 
   requiredFeatures_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredFeatures");
 
   systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
 
-  viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
 
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
-
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
 
 }
 
 class BlinkSVGPoint {
   static final instance = new BlinkSVGPoint();
 
-  matrixTransform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matrixTransform", []);
-
-  matrixTransform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matrixTransform", [__arg_0]);
-
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   x_Setter_(mthis, __arg_0) => mthis["x"] = __arg_0;
@@ -12609,12 +15091,18 @@
 
   y_Setter_(mthis, __arg_0) => mthis["y"] = __arg_0;
 
+  matrixTransform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matrixTransform", []);
+
+  matrixTransform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matrixTransform", [__arg_0]);
+
 }
 
 class BlinkSVGPointList {
   static final instance = new BlinkSVGPointList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -12638,10 +15126,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -12740,14 +15224,37 @@
 
 }
 
-class BlinkSVGRenderingIntent {
-  static final instance = new BlinkSVGRenderingIntent();
-
-}
-
 class BlinkSVGSVGElement extends BlinkSVGGraphicsElement {
   static final instance = new BlinkSVGSVGElement();
 
+  currentScale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentScale");
+
+  currentScale_Setter_(mthis, __arg_0) => mthis["currentScale"] = __arg_0;
+
+  currentTranslate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTranslate");
+
+  currentView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentView");
+
+  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
+
+  pixelUnitToMillimeterX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pixelUnitToMillimeterX");
+
+  pixelUnitToMillimeterY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pixelUnitToMillimeterY");
+
+  screenPixelToMillimeterX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenPixelToMillimeterX");
+
+  screenPixelToMillimeterY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenPixelToMillimeterY");
+
+  useCurrentView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "useCurrentView");
+
+  viewport_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewport");
+
+  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
+
+  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
+
+  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
+
   animationsPaused_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "animationsPaused", []);
 
   checkEnclosure_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkEnclosure", []);
@@ -12774,20 +15281,12 @@
 
   createSVGRect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSVGRect", []);
 
+  createSVGTransform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSVGTransform", []);
+
   createSVGTransformFromMatrix_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSVGTransformFromMatrix", []);
 
   createSVGTransformFromMatrix_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createSVGTransformFromMatrix", [__arg_0]);
 
-  createSVGTransform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSVGTransform", []);
-
-  currentScale_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentScale");
-
-  currentScale_Setter_(mthis, __arg_0) => mthis["currentScale"] = __arg_0;
-
-  currentTranslate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentTranslate");
-
-  currentView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentView");
-
   deselectAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deselectAll", []);
 
   forceRedraw_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "forceRedraw", []);
@@ -12810,20 +15309,8 @@
 
   getIntersectionList_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getIntersectionList", [__arg_0, __arg_1]);
 
-  height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
-
   pauseAnimations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pauseAnimations", []);
 
-  pixelUnitToMillimeterX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pixelUnitToMillimeterX");
-
-  pixelUnitToMillimeterY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pixelUnitToMillimeterY");
-
-  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
-
-  screenPixelToMillimeterX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenPixelToMillimeterX");
-
-  screenPixelToMillimeterY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenPixelToMillimeterY");
-
   setCurrentTime_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setCurrentTime", []);
 
   setCurrentTime_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setCurrentTime", [__arg_0]);
@@ -12834,24 +15321,16 @@
 
   unpauseAnimations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unpauseAnimations", []);
 
-  unsuspendRedrawAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unsuspendRedrawAll", []);
-
   unsuspendRedraw_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unsuspendRedraw", []);
 
   unsuspendRedraw_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "unsuspendRedraw", [__arg_0]);
 
-  useCurrentView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "useCurrentView");
+  unsuspendRedrawAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unsuspendRedrawAll", []);
+
+  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
   viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
 
-  viewport_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewport");
-
-  width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
-
-  x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
-
-  y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
-
   zoomAndPan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "zoomAndPan");
 
   zoomAndPan_Setter_(mthis, __arg_0) => mthis["zoomAndPan"] = __arg_0;
@@ -12861,12 +15340,12 @@
 class BlinkSVGScriptElement extends BlinkSVGElement {
   static final instance = new BlinkSVGScriptElement();
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
   type_Setter_(mthis, __arg_0) => mthis["type"] = __arg_0;
 
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
 }
 
 class BlinkSVGSetElement extends BlinkSVGAnimationElement {
@@ -12884,7 +15363,9 @@
 class BlinkSVGStringList {
   static final instance = new BlinkSVGStringList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -12908,10 +15389,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -12966,9 +15443,28 @@
 
 }
 
+class BlinkSVGTests {
+  static final instance = new BlinkSVGTests();
+
+  requiredExtensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredExtensions");
+
+  requiredFeatures_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "requiredFeatures");
+
+  systemLanguage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "systemLanguage");
+
+  hasExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", []);
+
+  hasExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hasExtension", [__arg_0]);
+
+}
+
 class BlinkSVGTextContentElement extends BlinkSVGGraphicsElement {
   static final instance = new BlinkSVGTextContentElement();
 
+  lengthAdjust_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lengthAdjust");
+
+  textLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textLength");
+
   getCharNumAtPosition_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCharNumAtPosition", []);
 
   getCharNumAtPosition_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getCharNumAtPosition", [__arg_0]);
@@ -12999,16 +15495,12 @@
 
   getSubStringLength_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getSubStringLength", [__arg_0, __arg_1]);
 
-  lengthAdjust_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lengthAdjust");
-
   selectSubString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectSubString", []);
 
   selectSubString_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectSubString", [__arg_0]);
 
   selectSubString_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "selectSubString", [__arg_0, __arg_1]);
 
-  textLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "textLength");
-
 }
 
 class BlinkSVGTextElement extends BlinkSVGTextPositioningElement {
@@ -13019,14 +15511,14 @@
 class BlinkSVGTextPathElement extends BlinkSVGTextContentElement {
   static final instance = new BlinkSVGTextPathElement();
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   method_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "method");
 
   spacing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "spacing");
 
   startOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "startOffset");
 
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
 }
 
 class BlinkSVGTextPositioningElement extends BlinkSVGTextContentElement {
@@ -13056,6 +15548,8 @@
 
   matrix_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "matrix");
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
   setMatrix_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setMatrix", []);
 
   setMatrix_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setMatrix", [__arg_0]);
@@ -13086,14 +15580,14 @@
 
   setTranslate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setTranslate", [__arg_0, __arg_1]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
 }
 
 class BlinkSVGTransformList {
   static final instance = new BlinkSVGTransformList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
+  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
 
   $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
 
@@ -13123,10 +15617,6 @@
 
   insertItemBefore_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "insertItemBefore", [__arg_0, __arg_1]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-  numberOfItems_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberOfItems");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -13139,6 +15629,13 @@
 
 }
 
+class BlinkSVGURIReference {
+  static final instance = new BlinkSVGURIReference();
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+}
+
 class BlinkSVGUnitTypes {
   static final instance = new BlinkSVGUnitTypes();
 
@@ -13149,30 +15646,25 @@
 
   height_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "height");
 
-  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
-
   width_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "width");
 
   x_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "x");
 
   y_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "y");
 
-}
-
-class BlinkSVGVKernElement extends BlinkSVGElement {
-  static final instance = new BlinkSVGVKernElement();
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
 
 }
 
 class BlinkSVGViewElement extends BlinkSVGElement {
   static final instance = new BlinkSVGViewElement();
 
+  viewTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewTarget");
+
   preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
 
   viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
 
-  viewTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewTarget");
-
   zoomAndPan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "zoomAndPan");
 
   zoomAndPan_Setter_(mthis, __arg_0) => mthis["zoomAndPan"] = __arg_0;
@@ -13184,19 +15676,28 @@
 
   preserveAspectRatioString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatioString");
 
-  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
+  transform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transform");
 
   transformString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transformString");
 
-  transform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "transform");
-
   viewBoxString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBoxString");
 
-  viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
+  viewTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewTarget");
 
   viewTargetString_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewTargetString");
 
-  viewTarget_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewTarget");
+  preserveAspectRatio_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveAspectRatio");
+
+  viewBox_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "viewBox");
+
+  zoomAndPan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "zoomAndPan");
+
+  zoomAndPan_Setter_(mthis, __arg_0) => mthis["zoomAndPan"] = __arg_0;
+
+}
+
+class BlinkSVGZoomAndPan {
+  static final instance = new BlinkSVGZoomAndPan();
 
   zoomAndPan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "zoomAndPan");
 
@@ -13247,16 +15748,16 @@
 
   angle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "angle");
 
-  lock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lock", []);
-
-  lock_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lock", [__arg_0]);
-
   onchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onchange");
 
   onchange_Setter_(mthis, __arg_0) => mthis["onchange"] = __arg_0;
 
   type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
 
+  lock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lock", []);
+
+  lock_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lock", [__arg_0]);
+
   unlock_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unlock", []);
 
 }
@@ -13276,15 +15777,68 @@
 
 }
 
+class BlinkScrollState {
+  static final instance = new BlinkScrollState();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1]);
+
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2]);
+
+  constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  constructorCallback_5_(__arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  constructorCallback_6_(__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  constructorCallback_7_(__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  constructorCallback_8_(__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ScrollState"), [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  deltaGranularity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deltaGranularity");
+
+  deltaX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deltaX");
+
+  deltaY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deltaY");
+
+  fromUserInput_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fromUserInput");
+
+  inInertialPhase_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "inInertialPhase");
+
+  isBeginning_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isBeginning");
+
+  isEnding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isEnding");
+
+  shouldPropagate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shouldPropagate");
+
+  velocityX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "velocityX");
+
+  velocityY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "velocityY");
+
+  consumeDelta_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "consumeDelta", []);
+
+  consumeDelta_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "consumeDelta", [__arg_0]);
+
+  consumeDelta_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "consumeDelta", [__arg_0, __arg_1]);
+
+}
+
 class BlinkSecurityPolicyViolationEvent extends BlinkEvent {
   static final instance = new BlinkSecurityPolicyViolationEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SecurityPolicyViolationEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SecurityPolicyViolationEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SecurityPolicyViolationEvent"), [__arg_0, __arg_1]);
+
   blockedURI_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "blockedURI");
 
   columnNumber_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "columnNumber");
 
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SecurityPolicyViolationEvent"), [__arg_0, __arg_1]);
-
   documentURI_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "documentURI");
 
   effectiveDirective_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "effectiveDirective");
@@ -13306,10 +15860,6 @@
 class BlinkSelection {
   static final instance = new BlinkSelection();
 
-  addRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addRange", []);
-
-  addRange_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addRange", [__arg_0]);
-
   anchorNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "anchorNode");
 
   anchorOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "anchorOffset");
@@ -13318,9 +15868,23 @@
 
   baseOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "baseOffset");
 
-  collapseToEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collapseToEnd", []);
+  extentNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "extentNode");
 
-  collapseToStart_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collapseToStart", []);
+  extentOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "extentOffset");
+
+  focusNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "focusNode");
+
+  focusOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "focusOffset");
+
+  isCollapsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isCollapsed");
+
+  rangeCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rangeCount");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+  addRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addRange", []);
+
+  addRange_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addRange", [__arg_0]);
 
   collapse_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collapse", []);
 
@@ -13328,6 +15892,10 @@
 
   collapse_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "collapse", [__arg_0, __arg_1]);
 
+  collapseToEnd_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collapseToEnd", []);
+
+  collapseToStart_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "collapseToStart", []);
+
   containsNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "containsNode", []);
 
   containsNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "containsNode", [__arg_0]);
@@ -13344,40 +15912,22 @@
 
   extend_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "extend", [__arg_0, __arg_1]);
 
-  extentNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "extentNode");
-
-  extentOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "extentOffset");
-
-  focusNode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "focusNode");
-
-  focusOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "focusOffset");
-
   getRangeAt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRangeAt", []);
 
   getRangeAt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRangeAt", [__arg_0]);
 
-  isCollapsed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isCollapsed");
-
-  modify_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "modify", []);
-
   modify_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "modify", [__arg_0]);
 
   modify_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "modify", [__arg_0, __arg_1]);
 
   modify_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "modify", [__arg_0, __arg_1, __arg_2]);
 
-  rangeCount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rangeCount");
-
   removeAllRanges_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeAllRanges", []);
 
   selectAllChildren_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "selectAllChildren", []);
 
   selectAllChildren_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "selectAllChildren", [__arg_0]);
 
-  setBaseAndExtent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setBaseAndExtent", []);
-
-  setBaseAndExtent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setBaseAndExtent", [__arg_0]);
-
   setBaseAndExtent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setBaseAndExtent", [__arg_0, __arg_1]);
 
   setBaseAndExtent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setBaseAndExtent", [__arg_0, __arg_1, __arg_2]);
@@ -13390,67 +15940,120 @@
 
   setPosition_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setPosition", [__arg_0, __arg_1]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+}
+
+class BlinkServicePort {
+  static final instance = new BlinkServicePort();
+
+  data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  targetURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetURL");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
+}
+
+class BlinkServicePortCollection extends BlinkEventTarget {
+  static final instance = new BlinkServicePortCollection();
+
+  onclose_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclose");
+
+  onclose_Setter_(mthis, __arg_0) => mthis["onclose"] = __arg_0;
+
+  onconnect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onconnect");
+
+  onconnect_Setter_(mthis, __arg_0) => mthis["onconnect"] = __arg_0;
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  connect_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "connect", []);
+
+  connect_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "connect", [__arg_0]);
+
+  connect_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "connect", [__arg_0, __arg_1]);
+
+  match_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "match", []);
+
+  match_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "match", [__arg_0]);
+
+  matchAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", []);
+
+  matchAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchAll", [__arg_0]);
+
+}
+
+class BlinkServicePortConnectEvent extends BlinkExtendableEvent {
+  static final instance = new BlinkServicePortConnectEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServicePortConnectEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServicePortConnectEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServicePortConnectEvent"), [__arg_0, __arg_1]);
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  targetURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "targetURL");
+
+  respondWith_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", []);
+
+  respondWith_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "respondWith", [__arg_0]);
 
 }
 
 class BlinkServiceWorker extends BlinkEventTarget {
   static final instance = new BlinkServiceWorker();
 
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
   onstatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstatechange");
 
   onstatechange_Setter_(mthis, __arg_0) => mthis["onstatechange"] = __arg_0;
 
-  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
-
-  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
-
-  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
-
   scriptURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scriptURL");
 
   state_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "state");
 
-  terminate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "terminate", []);
-
-}
-
-class BlinkServiceWorkerClient {
-  static final instance = new BlinkServiceWorkerClient();
-
-  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
-
   postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
 
   postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
 
   postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
 
-}
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
 
-class BlinkServiceWorkerClients {
-  static final instance = new BlinkServiceWorkerClients();
-
-  getAll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAll", []);
-
-  getAll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAll", [__arg_0]);
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
 
 }
 
-class BlinkServiceWorkerContainer {
+class BlinkServiceWorkerContainer extends BlinkEventTarget {
   static final instance = new BlinkServiceWorkerContainer();
 
   controller_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "controller");
 
+  oncontrollerchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncontrollerchange");
+
+  oncontrollerchange_Setter_(mthis, __arg_0) => mthis["oncontrollerchange"] = __arg_0;
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  ready_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ready");
+
   getRegistration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", []);
 
   getRegistration_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", [__arg_0]);
 
-  ready_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ready");
+  getRegistrations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistrations", []);
 
   register_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "register", []);
 
@@ -13463,26 +16066,32 @@
 class BlinkServiceWorkerGlobalScope extends BlinkWorkerGlobalScope {
   static final instance = new BlinkServiceWorkerGlobalScope();
 
-  caches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "caches");
-
   clients_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clients");
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  fetch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fetch", []);
-
-  fetch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0]);
-
-  fetch_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0, __arg_1]);
-
   onactivate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onactivate");
 
   onactivate_Setter_(mthis, __arg_0) => mthis["onactivate"] = __arg_0;
 
+  oncrossoriginconnect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncrossoriginconnect");
+
+  oncrossoriginconnect_Setter_(mthis, __arg_0) => mthis["oncrossoriginconnect"] = __arg_0;
+
+  oncrossoriginmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oncrossoriginmessage");
+
+  oncrossoriginmessage_Setter_(mthis, __arg_0) => mthis["oncrossoriginmessage"] = __arg_0;
+
   onfetch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onfetch");
 
   onfetch_Setter_(mthis, __arg_0) => mthis["onfetch"] = __arg_0;
 
+  ongeofenceenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ongeofenceenter");
+
+  ongeofenceenter_Setter_(mthis, __arg_0) => mthis["ongeofenceenter"] = __arg_0;
+
+  ongeofenceleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ongeofenceleave");
+
+  ongeofenceleave_Setter_(mthis, __arg_0) => mthis["ongeofenceleave"] = __arg_0;
+
   oninstall_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninstall");
 
   oninstall_Setter_(mthis, __arg_0) => mthis["oninstall"] = __arg_0;
@@ -13491,6 +16100,18 @@
 
   onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
 
+  onnotificationclick_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onnotificationclick");
+
+  onnotificationclick_Setter_(mthis, __arg_0) => mthis["onnotificationclick"] = __arg_0;
+
+  onnotificationerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onnotificationerror");
+
+  onnotificationerror_Setter_(mthis, __arg_0) => mthis["onnotificationerror"] = __arg_0;
+
+  onperiodicsync_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onperiodicsync");
+
+  onperiodicsync_Setter_(mthis, __arg_0) => mthis["onperiodicsync"] = __arg_0;
+
   onpush_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpush");
 
   onpush_Setter_(mthis, __arg_0) => mthis["onpush"] = __arg_0;
@@ -13499,7 +16120,40 @@
 
   onsync_Setter_(mthis, __arg_0) => mthis["onsync"] = __arg_0;
 
-  scope_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scope");
+  ports_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ports");
+
+  registration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "registration");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  fetch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fetch", []);
+
+  fetch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0]);
+
+  fetch_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0, __arg_1]);
+
+  skipWaiting_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "skipWaiting", []);
+
+}
+
+class BlinkServiceWorkerMessageEvent extends BlinkEvent {
+  static final instance = new BlinkServiceWorkerMessageEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServiceWorkerMessageEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServiceWorkerMessageEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "ServiceWorkerMessageEvent"), [__arg_0, __arg_1]);
+
+  data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
+
+  lastEventId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "lastEventId");
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  ports_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ports");
+
+  source_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "source");
 
 }
 
@@ -13508,17 +16162,37 @@
 
   active_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "active");
 
+  geofencing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "geofencing");
+
   installing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "installing");
 
   onupdatefound_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onupdatefound");
 
   onupdatefound_Setter_(mthis, __arg_0) => mthis["onupdatefound"] = __arg_0;
 
+  periodicSync_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "periodicSync");
+
+  pushManager_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pushManager");
+
   scope_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scope");
 
+  sync_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sync");
+
+  waiting_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "waiting");
+
+  getNotifications_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getNotifications", []);
+
+  getNotifications_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getNotifications", [__arg_0]);
+
+  showNotification_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "showNotification", []);
+
+  showNotification_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "showNotification", [__arg_0]);
+
+  showNotification_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "showNotification", [__arg_0, __arg_1]);
+
   unregister_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregister", []);
 
-  waiting_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "waiting");
+  update_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "update", []);
 
 }
 
@@ -13527,6 +16201,18 @@
 
   activeElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeElement");
 
+  delegatesFocus_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "delegatesFocus");
+
+  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+
+  innerHTML_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "innerHTML");
+
+  innerHTML_Setter_(mthis, __arg_0) => mthis["innerHTML"] = __arg_0;
+
+  olderShadowRoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "olderShadowRoot");
+
+  styleSheets_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleSheets");
+
   cloneNode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", []);
 
   cloneNode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cloneNode", [__arg_0]);
@@ -13537,29 +16223,20 @@
 
   elementFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "elementFromPoint", [__arg_0, __arg_1]);
 
-  getElementById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", []);
+  elementsFromPoint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", []);
 
-  getElementById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementById", [__arg_0]);
+  elementsFromPoint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", [__arg_0]);
 
-  getElementsByClassName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", []);
-
-  getElementsByClassName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByClassName", [__arg_0]);
-
-  getElementsByTagName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", []);
-
-  getElementsByTagName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getElementsByTagName", [__arg_0]);
+  elementsFromPoint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "elementsFromPoint", [__arg_0, __arg_1]);
 
   getSelection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelection", []);
 
-  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+}
 
-  innerHTML_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "innerHTML");
+class BlinkSharedArrayBuffer {
+  static final instance = new BlinkSharedArrayBuffer();
 
-  innerHTML_Setter_(mthis, __arg_0) => mthis["innerHTML"] = __arg_0;
-
-  olderShadowRoot_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "olderShadowRoot");
-
-  styleSheets_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleSheets");
+  byteLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "byteLength");
 
 }
 
@@ -13572,14 +16249,14 @@
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SharedWorker"), [__arg_0, __arg_1]);
 
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
   port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
 
   workerStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "workerStart");
 
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
 }
 
 class BlinkSharedWorkerGlobalScope extends BlinkWorkerGlobalScope {
@@ -13596,18 +16273,6 @@
 class BlinkSourceBuffer extends BlinkEventTarget {
   static final instance = new BlinkSourceBuffer();
 
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
-  appendBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendBuffer", []);
-
-  appendBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendBuffer", [__arg_0]);
-
-  appendStream_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", []);
-
-  appendStream_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", [__arg_0]);
-
-  appendStream_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", [__arg_0, __arg_1]);
-
   appendWindowEnd_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appendWindowEnd");
 
   appendWindowEnd_Setter_(mthis, __arg_0) => mthis["appendWindowEnd"] = __arg_0;
@@ -13622,31 +16287,45 @@
 
   mode_Setter_(mthis, __arg_0) => mthis["mode"] = __arg_0;
 
+  timestampOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestampOffset");
+
+  timestampOffset_Setter_(mthis, __arg_0) => mthis["timestampOffset"] = __arg_0;
+
+  trackDefaults_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "trackDefaults");
+
+  trackDefaults_Setter_(mthis, __arg_0) => mthis["trackDefaults"] = __arg_0;
+
+  updating_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "updating");
+
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
+  appendBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendBuffer", []);
+
+  appendBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendBuffer", [__arg_0]);
+
+  appendStream_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", []);
+
+  appendStream_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", [__arg_0]);
+
+  appendStream_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "appendStream", [__arg_0, __arg_1]);
+
   remove_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "remove", []);
 
   remove_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0]);
 
   remove_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "remove", [__arg_0, __arg_1]);
 
-  timestampOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestampOffset");
-
-  timestampOffset_Setter_(mthis, __arg_0) => mthis["timestampOffset"] = __arg_0;
-
-  updating_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "updating");
-
 }
 
 class BlinkSourceBufferList extends BlinkEventTarget {
   static final instance = new BlinkSourceBufferList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkSourceInfo {
@@ -13680,7 +16359,9 @@
 class BlinkSpeechGrammarList {
   static final instance = new BlinkSpeechGrammarList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechGrammarList"), []);
+
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   addFromString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addFromString", []);
 
@@ -13694,23 +16375,21 @@
 
   addFromUri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "addFromUri", [__arg_0, __arg_1]);
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechGrammarList"), []);
-
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkSpeechRecognition extends BlinkEventTarget {
   static final instance = new BlinkSpeechRecognition();
 
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "webkitSpeechRecognition"), []);
 
+  audioTrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "audioTrack");
+
+  audioTrack_Setter_(mthis, __arg_0) => mthis["audioTrack"] = __arg_0;
+
   continuous_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "continuous");
 
   continuous_Setter_(mthis, __arg_0) => mthis["continuous"] = __arg_0;
@@ -13775,6 +16454,12 @@
 
   onstart_Setter_(mthis, __arg_0) => mthis["onstart"] = __arg_0;
 
+  serviceURI_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "serviceURI");
+
+  serviceURI_Setter_(mthis, __arg_0) => mthis["serviceURI"] = __arg_0;
+
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
+
   start_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "start", []);
 
   stop_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stop", []);
@@ -13793,6 +16478,10 @@
 class BlinkSpeechRecognitionError extends BlinkEvent {
   static final instance = new BlinkSpeechRecognitionError();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionError"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionError"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionError"), [__arg_0, __arg_1]);
 
   error_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "error");
@@ -13804,6 +16493,10 @@
 class BlinkSpeechRecognitionEvent extends BlinkEvent {
   static final instance = new BlinkSpeechRecognitionEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SpeechRecognitionEvent"), [__arg_0, __arg_1]);
 
   emma_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "emma");
@@ -13819,56 +16512,52 @@
 class BlinkSpeechRecognitionResult {
   static final instance = new BlinkSpeechRecognitionResult();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
   isFinal_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "isFinal");
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkSpeechRecognitionResultList {
   static final instance = new BlinkSpeechRecognitionResultList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkSpeechSynthesis extends BlinkEventTarget {
   static final instance = new BlinkSpeechSynthesis();
 
-  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
-
-  getVoices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVoices", []);
-
   onvoiceschanged_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onvoiceschanged");
 
   onvoiceschanged_Setter_(mthis, __arg_0) => mthis["onvoiceschanged"] = __arg_0;
 
-  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
-
   paused_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "paused");
 
   pending_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pending");
 
+  speaking_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speaking");
+
+  cancel_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancel", []);
+
+  getVoices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVoices", []);
+
+  pause_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pause", []);
+
   resume_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resume", []);
 
   speak_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "speak", []);
 
   speak_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "speak", [__arg_0]);
 
-  speaking_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speaking");
-
 }
 
 class BlinkSpeechSynthesisEvent extends BlinkEvent {
@@ -13880,6 +16569,8 @@
 
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
+  utterance_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "utterance");
+
 }
 
 class BlinkSpeechSynthesisUtterance extends BlinkEventTarget {
@@ -13958,9 +16649,40 @@
 
 }
 
+class BlinkStashedMessagePort extends BlinkMessagePort {
+  static final instance = new BlinkStashedMessagePort();
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+}
+
+class BlinkStashedPortCollection extends BlinkEventTarget {
+  static final instance = new BlinkStashedPortCollection();
+
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
+
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  add_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "add", []);
+
+  add_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0]);
+
+  add_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "add", [__arg_0, __arg_1]);
+
+}
+
+class BlinkStereoPannerNode extends BlinkAudioNode {
+  static final instance = new BlinkStereoPannerNode();
+
+  pan_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pan");
+
+}
+
 class BlinkStorage {
   static final instance = new BlinkStorage();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   $__delete___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__delete__", [__arg_0]);
 
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
@@ -13977,8 +16699,6 @@
 
   key_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "key", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
   removeItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", []);
 
   removeItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeItem", [__arg_0]);
@@ -13991,29 +16711,24 @@
 
 }
 
+class BlinkStorageErrorCallback {
+  static final instance = new BlinkStorageErrorCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkStorageEvent extends BlinkEvent {
   static final instance = new BlinkStorageEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "StorageEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "StorageEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "StorageEvent"), [__arg_0, __arg_1]);
 
-  initStorageEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", []);
-
-  initStorageEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0]);
-
-  initStorageEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1]);
-
-  initStorageEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initStorageEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initStorageEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  initStorageEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  initStorageEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  initStorageEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
-
   key_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "key");
 
   newValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "newValue");
@@ -14024,6 +16739,12 @@
 
   url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
 
+  initStorageEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  initStorageEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  initStorageEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initStorageEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
 }
 
 class BlinkStorageInfo {
@@ -14038,6 +16759,8 @@
 class BlinkStorageQuota {
   static final instance = new BlinkStorageQuota();
 
+  supportedTypes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "supportedTypes");
+
   queryInfo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "queryInfo", []);
 
   queryInfo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "queryInfo", [__arg_0]);
@@ -14046,7 +16769,25 @@
 
   requestPersistentQuota_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestPersistentQuota", [__arg_0]);
 
-  supportedTypes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "supportedTypes");
+}
+
+class BlinkStorageQuotaCallback {
+  static final instance = new BlinkStorageQuotaCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
+class BlinkStorageUsageCallback {
+  static final instance = new BlinkStorageUsageCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+  handleEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0, __arg_1]);
 
 }
 
@@ -14057,15 +16798,24 @@
 
 }
 
+class BlinkStringCallback {
+  static final instance = new BlinkStringCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
+  handleEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", [__arg_0]);
+
+}
+
 class BlinkStyleMedia {
   static final instance = new BlinkStyleMedia();
 
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
   matchMedium_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchMedium", []);
 
   matchMedium_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchMedium", [__arg_0]);
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
 }
 
 class BlinkStyleSheet {
@@ -14092,14 +16842,14 @@
 class BlinkStyleSheetList {
   static final instance = new BlinkStyleSheetList();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkSubtleCrypto {
@@ -14111,6 +16861,12 @@
 
   decrypt_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "decrypt", [__arg_0, __arg_1, __arg_2]);
 
+  deriveBits_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deriveBits", [__arg_0]);
+
+  deriveBits_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "deriveBits", [__arg_0, __arg_1]);
+
+  deriveBits_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "deriveBits", [__arg_0, __arg_1, __arg_2]);
+
   digest_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "digest", []);
 
   digest_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "digest", [__arg_0]);
@@ -14129,30 +16885,12 @@
 
   exportKey_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "exportKey", [__arg_0, __arg_1]);
 
-  generateKey_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "generateKey", [__arg_0]);
-
-  generateKey_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "generateKey", [__arg_0, __arg_1]);
-
-  generateKey_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "generateKey", [__arg_0, __arg_1, __arg_2]);
-
-  importKey_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "importKey", [__arg_0, __arg_1, __arg_2]);
-
-  importKey_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "importKey", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  importKey_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "importKey", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
   sign_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sign", [__arg_0]);
 
   sign_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "sign", [__arg_0, __arg_1]);
 
   sign_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "sign", [__arg_0, __arg_1, __arg_2]);
 
-  unwrapKey_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "unwrapKey", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  unwrapKey_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "unwrapKey", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  unwrapKey_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "unwrapKey", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
   verify_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "verify", [__arg_0, __arg_1]);
 
   verify_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "verify", [__arg_0, __arg_1, __arg_2]);
@@ -14167,63 +16905,58 @@
 
 }
 
+class BlinkSyncEvent extends BlinkExtendableEvent {
+  static final instance = new BlinkSyncEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SyncEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SyncEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "SyncEvent"), [__arg_0, __arg_1]);
+
+  registration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "registration");
+
+}
+
+class BlinkSyncManager {
+  static final instance = new BlinkSyncManager();
+
+  getRegistration_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", []);
+
+  getRegistration_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRegistration", [__arg_0]);
+
+  getRegistrations_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegistrations", []);
+
+  permissionState_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "permissionState", []);
+
+  register_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "register", []);
+
+  register_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "register", [__arg_0]);
+
+}
+
+class BlinkSyncRegistration {
+  static final instance = new BlinkSyncRegistration();
+
+  tag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tag");
+
+  unregister_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "unregister", []);
+
+}
+
 class BlinkText extends BlinkCharacterData {
   static final instance = new BlinkText();
 
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Text"), []);
 
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Text"), [__arg_0]);
+  wholeText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wholeText");
 
   getDestinationInsertionPoints_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getDestinationInsertionPoints", []);
 
-  replaceWholeText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "replaceWholeText", []);
-
-  replaceWholeText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "replaceWholeText", [__arg_0]);
-
   splitText_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "splitText", []);
 
   splitText_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "splitText", [__arg_0]);
 
-  wholeText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wholeText");
-
-}
-
-class BlinkTextDecoder {
-  static final instance = new BlinkTextDecoder();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TextDecoder"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TextDecoder"), [__arg_0]);
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TextDecoder"), [__arg_0, __arg_1]);
-
-  decode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "decode", []);
-
-  decode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "decode", [__arg_0]);
-
-  decode_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "decode", [__arg_0, __arg_1]);
-
-  encoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "encoding");
-
-  fatal_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fatal");
-
-  ignoreBOM_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ignoreBOM");
-
-}
-
-class BlinkTextEncoder {
-  static final instance = new BlinkTextEncoder();
-
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TextEncoder"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TextEncoder"), [__arg_0]);
-
-  encode_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "encode", []);
-
-  encode_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "encode", [__arg_0]);
-
-  encoding_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "encoding");
-
 }
 
 class BlinkTextEvent extends BlinkUIEvent {
@@ -14231,12 +16964,6 @@
 
   data_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "data");
 
-  initTextEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initTextEvent", []);
-
-  initTextEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initTextEvent", [__arg_0]);
-
-  initTextEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initTextEvent", [__arg_0, __arg_1]);
-
   initTextEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initTextEvent", [__arg_0, __arg_1, __arg_2]);
 
   initTextEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initTextEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
@@ -14279,14 +17006,6 @@
 
   activeCues_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "activeCues");
 
-  addCue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addCue", []);
-
-  addCue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addCue", [__arg_0]);
-
-  addRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addRegion", []);
-
-  addRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addRegion", [__arg_0]);
-
   cues_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "cues");
 
   id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
@@ -14307,6 +17026,14 @@
 
   regions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "regions");
 
+  addCue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addCue", []);
+
+  addCue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addCue", [__arg_0]);
+
+  addRegion_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "addRegion", []);
+
+  addRegion_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "addRegion", [__arg_0]);
+
   removeCue_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "removeCue", []);
 
   removeCue_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "removeCue", [__arg_0]);
@@ -14351,7 +17078,7 @@
 class BlinkTextTrackCueList {
   static final instance = new BlinkTextTrackCueList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   getCueById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCueById", []);
 
@@ -14361,23 +17088,11 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkTextTrackList extends BlinkEventTarget {
   static final instance = new BlinkTextTrackList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
-
-  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   onaddtrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddtrack");
@@ -14392,61 +17107,35 @@
 
   onremovetrack_Setter_(mthis, __arg_0) => mthis["onremovetrack"] = __arg_0;
 
+  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
+
+  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
+
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
 }
 
 class BlinkTimeRanges {
   static final instance = new BlinkTimeRanges();
 
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
+
   end_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "end", []);
 
   end_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "end", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
   start_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "start", []);
 
   start_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "start", [__arg_0]);
 
 }
 
-class BlinkTiming {
-  static final instance = new BlinkTiming();
+class BlinkTimeoutHandler {
+  static final instance = new BlinkTimeoutHandler();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  $__setter___Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "__setter__", [__arg_0, __arg_1]);
-
-  delay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "delay");
-
-  delay_Setter_(mthis, __arg_0) => mthis["delay"] = __arg_0;
-
-  direction_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "direction");
-
-  direction_Setter_(mthis, __arg_0) => mthis["direction"] = __arg_0;
-
-  easing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "easing");
-
-  easing_Setter_(mthis, __arg_0) => mthis["easing"] = __arg_0;
-
-  endDelay_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "endDelay");
-
-  endDelay_Setter_(mthis, __arg_0) => mthis["endDelay"] = __arg_0;
-
-  fill_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "fill");
-
-  fill_Setter_(mthis, __arg_0) => mthis["fill"] = __arg_0;
-
-  iterationStart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iterationStart");
-
-  iterationStart_Setter_(mthis, __arg_0) => mthis["iterationStart"] = __arg_0;
-
-  iterations_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "iterations");
-
-  iterations_Setter_(mthis, __arg_0) => mthis["iterations"] = __arg_0;
-
-  playbackRate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "playbackRate");
-
-  playbackRate_Setter_(mthis, __arg_0) => mthis["playbackRate"] = __arg_0;
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
 
 }
 
@@ -14469,6 +17158,8 @@
 
   radiusY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "radiusY");
 
+  rotationAngle_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rotationAngle");
+
   screenX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenX");
 
   screenY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenY");
@@ -14494,34 +17185,6 @@
 
   ctrlKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ctrlKey");
 
-  initTouchEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", []);
-
-  initTouchEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0]);
-
-  initTouchEvent_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
-
-  initTouchEvent_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
-
-  initTouchEvent_Callback_12_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11]);
-
-  initTouchEvent_Callback_13_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12]);
-
-  initTouchEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1]);
-
-  initTouchEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2]);
-
-  initTouchEvent_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  initTouchEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  initTouchEvent_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  initTouchEvent_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  initTouchEvent_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
-
-  initTouchEvent_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
-
   metaKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "metaKey");
 
   shiftKey_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "shiftKey");
@@ -14530,24 +17193,70 @@
 
   touches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "touches");
 
+  initTouchEvent_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
+
+  initTouchEvent_Callback_12_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11]);
+
+  initTouchEvent_Callback_13_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12) => Blink_JsNative_DomException.callMethod(mthis, "initTouchEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10, __arg_11, __arg_12]);
+
 }
 
 class BlinkTouchList {
   static final instance = new BlinkTouchList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
+}
+
+class BlinkTrackDefault {
+  static final instance = new BlinkTrackDefault();
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefault"), [__arg_0, __arg_1]);
+
+  constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefault"), [__arg_0, __arg_1, __arg_2]);
+
+  constructorCallback_4_(__arg_0, __arg_1, __arg_2, __arg_3) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefault"), [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  constructorCallback_5_(__arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefault"), [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  byteStreamTrackID_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "byteStreamTrackID");
+
+  kinds_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "kinds");
+
+  label_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "label");
+
+  language_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "language");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+}
+
+class BlinkTrackDefaultList {
+  static final instance = new BlinkTrackDefaultList();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefaultList"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackDefaultList"), [__arg_0]);
+
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
+  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
+
+  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
+
 }
 
 class BlinkTrackEvent extends BlinkEvent {
   static final instance = new BlinkTrackEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TrackEvent"), [__arg_0, __arg_1]);
 
   track_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "track");
@@ -14557,6 +17266,10 @@
 class BlinkTransitionEvent extends BlinkEvent {
   static final instance = new BlinkTransitionEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TransitionEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TransitionEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "TransitionEvent"), [__arg_0, __arg_1]);
 
   elapsedTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "elapsedTime");
@@ -14574,10 +17287,12 @@
 
   currentNode_Setter_(mthis, __arg_0) => mthis["currentNode"] = __arg_0;
 
-  expandEntityReferences_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "expandEntityReferences");
-
   filter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "filter");
 
+  root_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "root");
+
+  whatToShow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "whatToShow");
+
   firstChild_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "firstChild", []);
 
   lastChild_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lastChild", []);
@@ -14592,26 +17307,28 @@
 
   previousSibling_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "previousSibling", []);
 
-  root_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "root");
-
-  whatToShow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "whatToShow");
-
 }
 
 class BlinkUIEvent extends BlinkEvent {
   static final instance = new BlinkUIEvent();
 
-  charCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charCode");
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "UIEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "UIEvent"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "UIEvent"), [__arg_0, __arg_1]);
 
+  charCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "charCode");
+
   detail_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "detail");
 
-  initUIEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "initUIEvent", []);
+  keyCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyCode");
 
-  initUIEvent_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "initUIEvent", [__arg_0]);
+  sourceDevice_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sourceDevice");
 
-  initUIEvent_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "initUIEvent", [__arg_0, __arg_1]);
+  view_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "view");
+
+  which_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "which");
 
   initUIEvent_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "initUIEvent", [__arg_0, __arg_1, __arg_2]);
 
@@ -14619,20 +17336,6 @@
 
   initUIEvent_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "initUIEvent", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
 
-  keyCode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "keyCode");
-
-  layerX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "layerX");
-
-  layerY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "layerY");
-
-  pageX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageX");
-
-  pageY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageY");
-
-  view_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "view");
-
-  which_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "which");
-
 }
 
 class BlinkURL {
@@ -14648,6 +17351,10 @@
 
   createObjectURL_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "URL"), "createObjectURL", [__arg_0]);
 
+  revokeObjectURL_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "URL"), "revokeObjectURL", []);
+
+  revokeObjectURL_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "URL"), "revokeObjectURL", [__arg_0]);
+
   hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
 
   hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
@@ -14682,36 +17389,196 @@
 
   protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
 
-  revokeObjectURL_Callback_0_() => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "URL"), "revokeObjectURL", []);
-
-  revokeObjectURL_Callback_1_(__arg_0) => Blink_JsNative_DomException.callMethod(Blink_JsNative_DomException.getProperty(js.context, "URL"), "revokeObjectURL", [__arg_0]);
-
   search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
 
   search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
 
-  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
-
   username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
 
   username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
 
+  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
+
+}
+
+class BlinkURLUtils {
+  static final instance = new BlinkURLUtils();
+
+  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
+
+  hash_Setter_(mthis, __arg_0) => mthis["hash"] = __arg_0;
+
+  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+
+  host_Setter_(mthis, __arg_0) => mthis["host"] = __arg_0;
+
+  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
+
+  hostname_Setter_(mthis, __arg_0) => mthis["hostname"] = __arg_0;
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+  href_Setter_(mthis, __arg_0) => mthis["href"] = __arg_0;
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  password_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "password");
+
+  password_Setter_(mthis, __arg_0) => mthis["password"] = __arg_0;
+
+  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
+
+  pathname_Setter_(mthis, __arg_0) => mthis["pathname"] = __arg_0;
+
+  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
+
+  port_Setter_(mthis, __arg_0) => mthis["port"] = __arg_0;
+
+  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
+
+  protocol_Setter_(mthis, __arg_0) => mthis["protocol"] = __arg_0;
+
+  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
+
+  search_Setter_(mthis, __arg_0) => mthis["search"] = __arg_0;
+
+  username_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "username");
+
+  username_Setter_(mthis, __arg_0) => mthis["username"] = __arg_0;
+
+  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
+
+}
+
+class BlinkURLUtilsReadOnly {
+  static final instance = new BlinkURLUtilsReadOnly();
+
+  hash_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hash");
+
+  host_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "host");
+
+  hostname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hostname");
+
+  href_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "href");
+
+  origin_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "origin");
+
+  pathname_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pathname");
+
+  port_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "port");
+
+  protocol_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "protocol");
+
+  search_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "search");
+
+  toString_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "toString", []);
+
+}
+
+class BlinkUint16Array extends BlinkArrayBufferView {
+  static final instance = new BlinkUint16Array();
+
+}
+
+class BlinkUint32Array extends BlinkArrayBufferView {
+  static final instance = new BlinkUint32Array();
+
+}
+
+class BlinkUint8Array extends BlinkArrayBufferView {
+  static final instance = new BlinkUint8Array();
+
+}
+
+class BlinkUint8ClampedArray extends BlinkArrayBufferView {
+  static final instance = new BlinkUint8ClampedArray();
+
+}
+
+class BlinkVRDevice {
+  static final instance = new BlinkVRDevice();
+
+  deviceId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deviceId");
+
+  deviceName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deviceName");
+
+  hardwareUnitId_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareUnitId");
+
+}
+
+class BlinkVREyeParameters {
+  static final instance = new BlinkVREyeParameters();
+
+  currentFieldOfView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "currentFieldOfView");
+
+  eyeTranslation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "eyeTranslation");
+
+  maximumFieldOfView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "maximumFieldOfView");
+
+  minimumFieldOfView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "minimumFieldOfView");
+
+  recommendedFieldOfView_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "recommendedFieldOfView");
+
+  renderRect_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "renderRect");
+
+}
+
+class BlinkVRFieldOfView {
+  static final instance = new BlinkVRFieldOfView();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "VRFieldOfView"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "VRFieldOfView"), [__arg_0]);
+
+  downDegrees_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "downDegrees");
+
+  downDegrees_Setter_(mthis, __arg_0) => mthis["downDegrees"] = __arg_0;
+
+  leftDegrees_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "leftDegrees");
+
+  leftDegrees_Setter_(mthis, __arg_0) => mthis["leftDegrees"] = __arg_0;
+
+  rightDegrees_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "rightDegrees");
+
+  rightDegrees_Setter_(mthis, __arg_0) => mthis["rightDegrees"] = __arg_0;
+
+  upDegrees_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upDegrees");
+
+  upDegrees_Setter_(mthis, __arg_0) => mthis["upDegrees"] = __arg_0;
+
+}
+
+class BlinkVRPositionState {
+  static final instance = new BlinkVRPositionState();
+
+  angularAcceleration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "angularAcceleration");
+
+  angularVelocity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "angularVelocity");
+
+  linearAcceleration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "linearAcceleration");
+
+  linearVelocity_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "linearVelocity");
+
+  orientation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "orientation");
+
+  position_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "position");
+
+  timeStamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeStamp");
+
 }
 
 class BlinkVTTCue extends BlinkTextTrackCue {
   static final instance = new BlinkVTTCue();
 
-  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
-
-  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
-
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "VTTCue"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "VTTCue"), [__arg_0, __arg_1]);
 
   constructorCallback_3_(__arg_0, __arg_1, __arg_2) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "VTTCue"), [__arg_0, __arg_1, __arg_2]);
 
-  getCueAsHTML_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCueAsHTML", []);
+  align_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "align");
+
+  align_Setter_(mthis, __arg_0) => mthis["align"] = __arg_0;
 
   line_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "line");
 
@@ -14741,6 +17608,8 @@
 
   vertical_Setter_(mthis, __arg_0) => mthis["vertical"] = __arg_0;
 
+  getCueAsHTML_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getCueAsHTML", []);
+
 }
 
 class BlinkVTTRegion {
@@ -14787,7 +17656,7 @@
 class BlinkVTTRegionList {
   static final instance = new BlinkVTTRegionList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   getRegionById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRegionById", []);
 
@@ -14797,8 +17666,6 @@
 
   item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
 
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
 }
 
 class BlinkValidityState {
@@ -14818,6 +17685,8 @@
 
   tooLong_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tooLong");
 
+  tooShort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "tooShort");
+
   typeMismatch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "typeMismatch");
 
   valid_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "valid");
@@ -14859,12 +17728,6 @@
 class BlinkVideoTrackList extends BlinkEventTarget {
   static final instance = new BlinkVideoTrackList();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
-
-  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
-
   length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
 
   onaddtrack_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onaddtrack");
@@ -14881,6 +17744,19 @@
 
   selectedIndex_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "selectedIndex");
 
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  getTrackById_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", []);
+
+  getTrackById_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTrackById", [__arg_0]);
+
+}
+
+class BlinkVoidCallback {
+  static final instance = new BlinkVoidCallback();
+
+  handleEvent_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "handleEvent", []);
+
 }
 
 class BlinkWaveShaperNode extends BlinkAudioNode {
@@ -14896,138 +17772,14 @@
 
 }
 
-class BlinkWebGLActiveInfo {
-  static final instance = new BlinkWebGLActiveInfo();
+class BlinkWebGL2RenderingContext {
+  static final instance = new BlinkWebGL2RenderingContext();
 
-  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
 
-  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+  drawingBufferHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferHeight");
 
-  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
-
-}
-
-class BlinkWebGLBuffer {
-  static final instance = new BlinkWebGLBuffer();
-
-}
-
-class BlinkWebGLCompressedTextureATC {
-  static final instance = new BlinkWebGLCompressedTextureATC();
-
-}
-
-class BlinkWebGLCompressedTextureETC1 {
-  static final instance = new BlinkWebGLCompressedTextureETC1();
-
-}
-
-class BlinkWebGLCompressedTexturePVRTC {
-  static final instance = new BlinkWebGLCompressedTexturePVRTC();
-
-}
-
-class BlinkWebGLCompressedTextureS3TC {
-  static final instance = new BlinkWebGLCompressedTextureS3TC();
-
-}
-
-class BlinkWebGLContextAttributes {
-  static final instance = new BlinkWebGLContextAttributes();
-
-  alpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "alpha");
-
-  alpha_Setter_(mthis, __arg_0) => mthis["alpha"] = __arg_0;
-
-  antialias_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "antialias");
-
-  antialias_Setter_(mthis, __arg_0) => mthis["antialias"] = __arg_0;
-
-  depth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "depth");
-
-  depth_Setter_(mthis, __arg_0) => mthis["depth"] = __arg_0;
-
-  failIfMajorPerformanceCaveat_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "failIfMajorPerformanceCaveat");
-
-  failIfMajorPerformanceCaveat_Setter_(mthis, __arg_0) => mthis["failIfMajorPerformanceCaveat"] = __arg_0;
-
-  premultipliedAlpha_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "premultipliedAlpha");
-
-  premultipliedAlpha_Setter_(mthis, __arg_0) => mthis["premultipliedAlpha"] = __arg_0;
-
-  preserveDrawingBuffer_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "preserveDrawingBuffer");
-
-  preserveDrawingBuffer_Setter_(mthis, __arg_0) => mthis["preserveDrawingBuffer"] = __arg_0;
-
-  stencil_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stencil");
-
-  stencil_Setter_(mthis, __arg_0) => mthis["stencil"] = __arg_0;
-
-}
-
-class BlinkWebGLContextEvent extends BlinkEvent {
-  static final instance = new BlinkWebGLContextEvent();
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebGLContextEvent"), [__arg_0, __arg_1]);
-
-  statusMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusMessage");
-
-}
-
-class BlinkWebGLDebugRendererInfo {
-  static final instance = new BlinkWebGLDebugRendererInfo();
-
-}
-
-class BlinkWebGLDebugShaders {
-  static final instance = new BlinkWebGLDebugShaders();
-
-  getTranslatedShaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTranslatedShaderSource", []);
-
-  getTranslatedShaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTranslatedShaderSource", [__arg_0]);
-
-}
-
-class BlinkWebGLDepthTexture {
-  static final instance = new BlinkWebGLDepthTexture();
-
-}
-
-class BlinkWebGLDrawBuffers {
-  static final instance = new BlinkWebGLDrawBuffers();
-
-  drawBuffersWEBGL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffersWEBGL", []);
-
-  drawBuffersWEBGL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffersWEBGL", [__arg_0]);
-
-}
-
-class BlinkWebGLFramebuffer {
-  static final instance = new BlinkWebGLFramebuffer();
-
-}
-
-class BlinkWebGLLoseContext {
-  static final instance = new BlinkWebGLLoseContext();
-
-  loseContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "loseContext", []);
-
-  restoreContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "restoreContext", []);
-
-}
-
-class BlinkWebGLProgram {
-  static final instance = new BlinkWebGLProgram();
-
-}
-
-class BlinkWebGLRenderbuffer {
-  static final instance = new BlinkWebGLRenderbuffer();
-
-}
-
-class BlinkWebGLRenderingContext {
-  static final instance = new BlinkWebGLRenderingContext();
+  drawingBufferWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferWidth");
 
   activeTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", []);
 
@@ -15075,15 +17827,21 @@
 
   blendColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
+  blendEquation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", []);
+
+  blendEquation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", [__arg_0]);
+
   blendEquationSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", []);
 
   blendEquationSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0]);
 
   blendEquationSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0, __arg_1]);
 
-  blendEquation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", []);
+  blendFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", []);
 
-  blendEquation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", [__arg_0]);
+  blendFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0]);
+
+  blendFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0, __arg_1]);
 
   blendFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1]);
 
@@ -15091,12 +17849,6 @@
 
   blendFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  blendFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", []);
-
-  blendFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0]);
-
-  blendFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0, __arg_1]);
-
   bufferData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0]);
 
   bufferData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1]);
@@ -15109,12 +17861,14 @@
 
   bufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1, __arg_2]);
 
-  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
-
   checkFramebufferStatus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", []);
 
   checkFramebufferStatus_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", [__arg_0]);
 
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
+
   clearColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1]);
 
   clearColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2]);
@@ -15129,10 +17883,6 @@
 
   clearStencil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", [__arg_0]);
 
-  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
-
-  clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
-
   colorMask_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1]);
 
   colorMask_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2]);
@@ -15229,14 +17979,14 @@
 
   detachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0, __arg_1]);
 
-  disableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", []);
-
-  disableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", [__arg_0]);
-
   disable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disable", []);
 
   disable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disable", [__arg_0]);
 
+  disableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", []);
+
+  disableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", [__arg_0]);
+
   drawArrays_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0]);
 
   drawArrays_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1]);
@@ -15249,18 +17999,14 @@
 
   drawElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  drawingBufferHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferHeight");
+  enable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enable", []);
 
-  drawingBufferWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferWidth");
+  enable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enable", [__arg_0]);
 
   enableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", []);
 
   enableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", [__arg_0]);
 
-  enable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enable", []);
-
-  enable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enable", [__arg_0]);
-
   finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
 
   flush_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "flush", []);
@@ -15375,23 +18121,17 @@
 
   getTexParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0, __arg_1]);
 
-  getUniformLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", []);
-
-  getUniformLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0]);
-
-  getUniformLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0, __arg_1]);
-
   getUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", []);
 
   getUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0]);
 
   getUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0, __arg_1]);
 
-  getVertexAttribOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", []);
+  getUniformLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", []);
 
-  getVertexAttribOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0]);
+  getUniformLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0]);
 
-  getVertexAttribOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0, __arg_1]);
+  getUniformLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0, __arg_1]);
 
   getVertexAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", []);
 
@@ -15399,6 +18139,12 @@
 
   getVertexAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0, __arg_1]);
 
+  getVertexAttribOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", []);
+
+  getVertexAttribOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0]);
+
+  getVertexAttribOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0, __arg_1]);
+
   hint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hint", []);
 
   hint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0]);
@@ -15485,17 +18231,21 @@
 
   shaderSource_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0, __arg_1]);
 
+  stencilFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0]);
+
+  stencilFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1, __arg_2]);
+
   stencilFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1]);
 
   stencilFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2]);
 
   stencilFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
-  stencilFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0]);
+  stencilMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", []);
 
-  stencilFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1]);
-
-  stencilFunc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1, __arg_2]);
+  stencilMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", [__arg_0]);
 
   stencilMaskSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", []);
 
@@ -15503,9 +18253,11 @@
 
   stencilMaskSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0, __arg_1]);
 
-  stencilMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", []);
+  stencilOp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0]);
 
-  stencilMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", [__arg_0]);
+  stencilOp_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1]);
+
+  stencilOp_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1, __arg_2]);
 
   stencilOpSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1]);
 
@@ -15513,12 +18265,1669 @@
 
   stencilOpSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
+  texImage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texParameterf_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0]);
+
+  texParameterf_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1]);
+
+  texParameterf_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1, __arg_2]);
+
+  texParameteri_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0]);
+
+  texParameteri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1]);
+
+  texParameteri_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1, __arg_2]);
+
+  texSubImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texSubImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  uniform1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", []);
+
+  uniform1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0]);
+
+  uniform1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0, __arg_1]);
+
+  uniform1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", []);
+
+  uniform1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0]);
+
+  uniform1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0, __arg_1]);
+
+  uniform1i_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", []);
+
+  uniform1i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0]);
+
+  uniform1i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0, __arg_1]);
+
+  uniform1iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", []);
+
+  uniform1iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0]);
+
+  uniform1iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0]);
+
+  uniform2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", []);
+
+  uniform2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0]);
+
+  uniform2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0]);
+
+  uniform2i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", []);
+
+  uniform2iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0]);
+
+  uniform2iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", []);
+
+  uniform3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0]);
+
+  uniform3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", []);
+
+  uniform3iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0]);
+
+  uniform3iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0, __arg_1]);
+
+  uniform4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", []);
+
+  uniform4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0]);
+
+  uniform4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0, __arg_1]);
+
+  uniform4i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4i_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", []);
+
+  uniform4iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0]);
+
+  uniform4iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0]);
+
+  uniformMatrix2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0]);
+
+  uniformMatrix3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0]);
+
+  uniformMatrix4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1, __arg_2]);
+
+  useProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", []);
+
+  useProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", [__arg_0]);
+
+  validateProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", []);
+
+  validateProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", [__arg_0]);
+
+  vertexAttrib1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", []);
+
+  vertexAttrib1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0]);
+
+  vertexAttrib1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0, __arg_1]);
+
+  vertexAttrib1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", []);
+
+  vertexAttrib1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0]);
+
+  vertexAttrib1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0]);
+
+  vertexAttrib2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", []);
+
+  vertexAttrib2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0]);
+
+  vertexAttrib2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", []);
+
+  vertexAttrib3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0]);
+
+  vertexAttrib3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0, __arg_1]);
+
+  vertexAttrib4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttrib4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", []);
+
+  vertexAttrib4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0]);
+
+  vertexAttrib4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0, __arg_1]);
+
+  vertexAttribPointer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribPointer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribPointer_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  viewport_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1]);
+
+  viewport_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2]);
+
+  viewport_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  beginQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", []);
+
+  beginQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", [__arg_0]);
+
+  beginQuery_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", [__arg_0, __arg_1]);
+
+  beginTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginTransformFeedback", []);
+
+  beginTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginTransformFeedback", [__arg_0]);
+
+  bindBufferBase_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0]);
+
+  bindBufferBase_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0, __arg_1]);
+
+  bindBufferBase_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0, __arg_1, __arg_2]);
+
+  bindBufferRange_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2]);
+
+  bindBufferRange_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bindBufferRange_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bindSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", []);
+
+  bindSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", [__arg_0]);
+
+  bindSampler_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", [__arg_0, __arg_1]);
+
+  bindTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", []);
+
+  bindTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", [__arg_0]);
+
+  bindTransformFeedback_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", [__arg_0, __arg_1]);
+
+  bindVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindVertexArray", []);
+
+  bindVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindVertexArray", [__arg_0]);
+
+  blitFramebuffer_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  blitFramebuffer_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  blitFramebuffer_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  clearBufferfi_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1]);
+
+  clearBufferfi_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferfi_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  clearBufferfv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0]);
+
+  clearBufferfv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0, __arg_1]);
+
+  clearBufferfv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0]);
+
+  clearBufferiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0, __arg_1]);
+
+  clearBufferiv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferuiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0]);
+
+  clearBufferuiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0, __arg_1]);
+
+  clearBufferuiv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0, __arg_1, __arg_2]);
+
+  clientWaitSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0]);
+
+  clientWaitSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0, __arg_1]);
+
+  clientWaitSync_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0, __arg_1, __arg_2]);
+
+  compressedTexImage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  compressedTexSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  compressedTexSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  compressedTexSubImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  copyBufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  copyBufferSubData_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  copyBufferSubData_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  copyTexSubImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  createQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createQuery", []);
+
+  createSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSampler", []);
+
+  createTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTransformFeedback", []);
+
+  createVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createVertexArray", []);
+
+  deleteQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteQuery", []);
+
+  deleteQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteQuery", [__arg_0]);
+
+  deleteSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteSampler", []);
+
+  deleteSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteSampler", [__arg_0]);
+
+  deleteSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteSync", []);
+
+  deleteSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteSync", [__arg_0]);
+
+  deleteTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteTransformFeedback", []);
+
+  deleteTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteTransformFeedback", [__arg_0]);
+
+  deleteVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteVertexArray", []);
+
+  deleteVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteVertexArray", [__arg_0]);
+
+  drawArraysInstanced_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1]);
+
+  drawArraysInstanced_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1, __arg_2]);
+
+  drawArraysInstanced_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawBuffers_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffers", []);
+
+  drawBuffers_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffers", [__arg_0]);
+
+  drawElementsInstanced_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2]);
+
+  drawElementsInstanced_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawElementsInstanced_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  drawRangeElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawRangeElements_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  drawRangeElements_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  endQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endQuery", []);
+
+  endQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "endQuery", [__arg_0]);
+
+  endTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endTransformFeedback", []);
+
+  fenceSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", []);
+
+  fenceSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", [__arg_0]);
+
+  fenceSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", [__arg_0, __arg_1]);
+
+  framebufferTextureLayer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferTextureLayer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTextureLayer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  getActiveUniformBlockName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", []);
+
+  getActiveUniformBlockName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", [__arg_0]);
+
+  getActiveUniformBlockName_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", [__arg_0, __arg_1]);
+
+  getActiveUniformBlockParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0]);
+
+  getActiveUniformBlockParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0, __arg_1]);
+
+  getActiveUniformBlockParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getActiveUniforms_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0]);
+
+  getActiveUniforms_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0, __arg_1]);
+
+  getActiveUniforms_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0, __arg_1, __arg_2]);
+
+  getBufferSubData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0]);
+
+  getBufferSubData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0, __arg_1]);
+
+  getBufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  getFragDataLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", []);
+
+  getFragDataLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", [__arg_0]);
+
+  getFragDataLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", [__arg_0, __arg_1]);
+
+  getIndexedParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", []);
+
+  getIndexedParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", [__arg_0]);
+
+  getIndexedParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", [__arg_0, __arg_1]);
+
+  getInternalformatParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0]);
+
+  getInternalformatParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0, __arg_1]);
+
+  getInternalformatParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", []);
+
+  getQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", [__arg_0]);
+
+  getQuery_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", [__arg_0, __arg_1]);
+
+  getQueryParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", []);
+
+  getQueryParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", [__arg_0]);
+
+  getQueryParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", [__arg_0, __arg_1]);
+
+  getSamplerParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", []);
+
+  getSamplerParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", [__arg_0]);
+
+  getSamplerParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", [__arg_0, __arg_1]);
+
+  getSyncParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", []);
+
+  getSyncParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", [__arg_0]);
+
+  getSyncParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", [__arg_0, __arg_1]);
+
+  getTransformFeedbackVarying_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", []);
+
+  getTransformFeedbackVarying_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", [__arg_0]);
+
+  getTransformFeedbackVarying_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", [__arg_0, __arg_1]);
+
+  getUniformBlockIndex_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", []);
+
+  getUniformBlockIndex_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", [__arg_0]);
+
+  getUniformBlockIndex_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", [__arg_0, __arg_1]);
+
+  getUniformIndices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", []);
+
+  getUniformIndices_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", [__arg_0]);
+
+  getUniformIndices_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", [__arg_0, __arg_1]);
+
+  invalidateFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", []);
+
+  invalidateFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", [__arg_0]);
+
+  invalidateFramebuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", [__arg_0, __arg_1]);
+
+  invalidateSubFramebuffer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  invalidateSubFramebuffer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  invalidateSubFramebuffer_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  isQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isQuery", []);
+
+  isQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isQuery", [__arg_0]);
+
+  isSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isSampler", []);
+
+  isSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isSampler", [__arg_0]);
+
+  isSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isSync", []);
+
+  isSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isSync", [__arg_0]);
+
+  isTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isTransformFeedback", []);
+
+  isTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isTransformFeedback", [__arg_0]);
+
+  isVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isVertexArray", []);
+
+  isVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isVertexArray", [__arg_0]);
+
+  pauseTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pauseTransformFeedback", []);
+
+  readBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readBuffer", []);
+
+  readBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readBuffer", [__arg_0]);
+
+  renderbufferStorageMultisample_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2]);
+
+  renderbufferStorageMultisample_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  renderbufferStorageMultisample_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  resumeTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resumeTransformFeedback", []);
+
+  samplerParameterf_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0]);
+
+  samplerParameterf_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0, __arg_1]);
+
+  samplerParameterf_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0, __arg_1, __arg_2]);
+
+  samplerParameteri_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0]);
+
+  samplerParameteri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0, __arg_1]);
+
+  samplerParameteri_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0, __arg_1, __arg_2]);
+
+  texImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  texStorage2D_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2]);
+
+  texStorage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texStorage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texStorage3D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texStorage3D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texStorage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texSubImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  texSubImage3D_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
+
+  transformFeedbackVaryings_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0]);
+
+  transformFeedbackVaryings_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0, __arg_1]);
+
+  transformFeedbackVaryings_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0, __arg_1, __arg_2]);
+
+  uniform1ui_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", []);
+
+  uniform1ui_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", [__arg_0]);
+
+  uniform1ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", [__arg_0, __arg_1]);
+
+  uniform1uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", []);
+
+  uniform1uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", [__arg_0]);
+
+  uniform1uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", [__arg_0, __arg_1]);
+
+  uniform2ui_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0]);
+
+  uniform2ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0, __arg_1]);
+
+  uniform2ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", []);
+
+  uniform2uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", [__arg_0]);
+
+  uniform2uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", [__arg_0, __arg_1]);
+
+  uniform3ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1]);
+
+  uniform3ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", []);
+
+  uniform3uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", [__arg_0]);
+
+  uniform3uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", [__arg_0, __arg_1]);
+
+  uniform4ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4ui_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", []);
+
+  uniform4uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", [__arg_0]);
+
+  uniform4uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", [__arg_0, __arg_1]);
+
+  uniformBlockBinding_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0]);
+
+  uniformBlockBinding_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0, __arg_1]);
+
+  uniformBlockBinding_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix2x3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0]);
+
+  uniformMatrix2x3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2x3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix2x4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0]);
+
+  uniformMatrix2x4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2x4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3x2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0]);
+
+  uniformMatrix3x2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3x2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3x4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0]);
+
+  uniformMatrix3x4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3x4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4x2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0]);
+
+  uniformMatrix4x2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4x2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4x3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0]);
+
+  uniformMatrix4x3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4x3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribDivisor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", []);
+
+  vertexAttribDivisor_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", [__arg_0]);
+
+  vertexAttribDivisor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", [__arg_0, __arg_1]);
+
+  vertexAttribI4i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribI4i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribI4i_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribI4iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", []);
+
+  vertexAttribI4iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", [__arg_0]);
+
+  vertexAttribI4iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", [__arg_0, __arg_1]);
+
+  vertexAttribI4ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribI4ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribI4ui_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribI4uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", []);
+
+  vertexAttribI4uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", [__arg_0]);
+
+  vertexAttribI4uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", [__arg_0, __arg_1]);
+
+  vertexAttribIPointer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribIPointer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribIPointer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  waitSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0]);
+
+  waitSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0, __arg_1]);
+
+  waitSync_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0, __arg_1, __arg_2]);
+
+}
+
+class BlinkWebGL2RenderingContextBase {
+  static final instance = new BlinkWebGL2RenderingContextBase();
+
+  beginQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", []);
+
+  beginQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", [__arg_0]);
+
+  beginQuery_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "beginQuery", [__arg_0, __arg_1]);
+
+  beginTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "beginTransformFeedback", []);
+
+  beginTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "beginTransformFeedback", [__arg_0]);
+
+  bindBufferBase_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0]);
+
+  bindBufferBase_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0, __arg_1]);
+
+  bindBufferBase_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferBase", [__arg_0, __arg_1, __arg_2]);
+
+  bindBufferRange_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2]);
+
+  bindBufferRange_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bindBufferRange_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "bindBufferRange", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  bindSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", []);
+
+  bindSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", [__arg_0]);
+
+  bindSampler_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindSampler", [__arg_0, __arg_1]);
+
+  bindTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", []);
+
+  bindTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", [__arg_0]);
+
+  bindTransformFeedback_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindTransformFeedback", [__arg_0, __arg_1]);
+
+  bindVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindVertexArray", []);
+
+  bindVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindVertexArray", [__arg_0]);
+
+  blitFramebuffer_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  blitFramebuffer_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  blitFramebuffer_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "blitFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  clearBufferfi_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1]);
+
+  clearBufferfi_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferfi_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfi", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  clearBufferfv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0]);
+
+  clearBufferfv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0, __arg_1]);
+
+  clearBufferfv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferfv", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0]);
+
+  clearBufferiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0, __arg_1]);
+
+  clearBufferiv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferiv", [__arg_0, __arg_1, __arg_2]);
+
+  clearBufferuiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0]);
+
+  clearBufferuiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0, __arg_1]);
+
+  clearBufferuiv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearBufferuiv", [__arg_0, __arg_1, __arg_2]);
+
+  clientWaitSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0]);
+
+  clientWaitSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0, __arg_1]);
+
+  clientWaitSync_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clientWaitSync", [__arg_0, __arg_1, __arg_2]);
+
+  compressedTexImage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  compressedTexSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  compressedTexSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  compressedTexSubImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  copyBufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  copyBufferSubData_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  copyBufferSubData_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "copyBufferSubData", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  copyTexSubImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  createQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createQuery", []);
+
+  createSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createSampler", []);
+
+  createTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTransformFeedback", []);
+
+  createVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createVertexArray", []);
+
+  deleteQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteQuery", []);
+
+  deleteQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteQuery", [__arg_0]);
+
+  deleteSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteSampler", []);
+
+  deleteSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteSampler", [__arg_0]);
+
+  deleteSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteSync", []);
+
+  deleteSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteSync", [__arg_0]);
+
+  deleteTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteTransformFeedback", []);
+
+  deleteTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteTransformFeedback", [__arg_0]);
+
+  deleteVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteVertexArray", []);
+
+  deleteVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteVertexArray", [__arg_0]);
+
+  drawArraysInstanced_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1]);
+
+  drawArraysInstanced_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1, __arg_2]);
+
+  drawArraysInstanced_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawArraysInstanced", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawBuffers_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffers", []);
+
+  drawBuffers_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffers", [__arg_0]);
+
+  drawElementsInstanced_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2]);
+
+  drawElementsInstanced_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawElementsInstanced_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "drawElementsInstanced", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  drawRangeElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  drawRangeElements_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  drawRangeElements_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "drawRangeElements", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  endQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endQuery", []);
+
+  endQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "endQuery", [__arg_0]);
+
+  endTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "endTransformFeedback", []);
+
+  fenceSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", []);
+
+  fenceSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", [__arg_0]);
+
+  fenceSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fenceSync", [__arg_0, __arg_1]);
+
+  framebufferTextureLayer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferTextureLayer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTextureLayer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTextureLayer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  getActiveUniformBlockName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", []);
+
+  getActiveUniformBlockName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", [__arg_0]);
+
+  getActiveUniformBlockName_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockName", [__arg_0, __arg_1]);
+
+  getActiveUniformBlockParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0]);
+
+  getActiveUniformBlockParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0, __arg_1]);
+
+  getActiveUniformBlockParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniformBlockParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getActiveUniforms_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0]);
+
+  getActiveUniforms_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0, __arg_1]);
+
+  getActiveUniforms_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniforms", [__arg_0, __arg_1, __arg_2]);
+
+  getBufferSubData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0]);
+
+  getBufferSubData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0, __arg_1]);
+
+  getBufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getBufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  getFragDataLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", []);
+
+  getFragDataLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", [__arg_0]);
+
+  getFragDataLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFragDataLocation", [__arg_0, __arg_1]);
+
+  getIndexedParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", []);
+
+  getIndexedParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", [__arg_0]);
+
+  getIndexedParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getIndexedParameter", [__arg_0, __arg_1]);
+
+  getInternalformatParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0]);
+
+  getInternalformatParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0, __arg_1]);
+
+  getInternalformatParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getInternalformatParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", []);
+
+  getQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", [__arg_0]);
+
+  getQuery_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getQuery", [__arg_0, __arg_1]);
+
+  getQueryParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", []);
+
+  getQueryParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", [__arg_0]);
+
+  getQueryParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getQueryParameter", [__arg_0, __arg_1]);
+
+  getSamplerParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", []);
+
+  getSamplerParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", [__arg_0]);
+
+  getSamplerParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getSamplerParameter", [__arg_0, __arg_1]);
+
+  getSyncParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", []);
+
+  getSyncParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", [__arg_0]);
+
+  getSyncParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getSyncParameter", [__arg_0, __arg_1]);
+
+  getTransformFeedbackVarying_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", []);
+
+  getTransformFeedbackVarying_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", [__arg_0]);
+
+  getTransformFeedbackVarying_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTransformFeedbackVarying", [__arg_0, __arg_1]);
+
+  getUniformBlockIndex_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", []);
+
+  getUniformBlockIndex_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", [__arg_0]);
+
+  getUniformBlockIndex_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformBlockIndex", [__arg_0, __arg_1]);
+
+  getUniformIndices_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", []);
+
+  getUniformIndices_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", [__arg_0]);
+
+  getUniformIndices_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformIndices", [__arg_0, __arg_1]);
+
+  invalidateFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", []);
+
+  invalidateFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", [__arg_0]);
+
+  invalidateFramebuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "invalidateFramebuffer", [__arg_0, __arg_1]);
+
+  invalidateSubFramebuffer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  invalidateSubFramebuffer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  invalidateSubFramebuffer_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "invalidateSubFramebuffer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  isQuery_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isQuery", []);
+
+  isQuery_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isQuery", [__arg_0]);
+
+  isSampler_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isSampler", []);
+
+  isSampler_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isSampler", [__arg_0]);
+
+  isSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isSync", []);
+
+  isSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isSync", [__arg_0]);
+
+  isTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isTransformFeedback", []);
+
+  isTransformFeedback_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isTransformFeedback", [__arg_0]);
+
+  isVertexArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isVertexArray", []);
+
+  isVertexArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isVertexArray", [__arg_0]);
+
+  pauseTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pauseTransformFeedback", []);
+
+  readBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "readBuffer", []);
+
+  readBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "readBuffer", [__arg_0]);
+
+  renderbufferStorageMultisample_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2]);
+
+  renderbufferStorageMultisample_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  renderbufferStorageMultisample_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorageMultisample", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  resumeTransformFeedback_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resumeTransformFeedback", []);
+
+  samplerParameterf_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0]);
+
+  samplerParameterf_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0, __arg_1]);
+
+  samplerParameterf_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameterf", [__arg_0, __arg_1, __arg_2]);
+
+  samplerParameteri_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0]);
+
+  samplerParameteri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0, __arg_1]);
+
+  samplerParameteri_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "samplerParameteri", [__arg_0, __arg_1, __arg_2]);
+
+  texImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "texImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  texStorage2D_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2]);
+
+  texStorage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texStorage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texStorage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texStorage3D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texStorage3D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texStorage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texStorage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage3D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage3D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texSubImage3D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texSubImage3D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texSubImage3D_Callback_10_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9]);
+
+  texSubImage3D_Callback_11_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage3D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8, __arg_9, __arg_10]);
+
+  transformFeedbackVaryings_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0]);
+
+  transformFeedbackVaryings_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0, __arg_1]);
+
+  transformFeedbackVaryings_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "transformFeedbackVaryings", [__arg_0, __arg_1, __arg_2]);
+
+  uniform1ui_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", []);
+
+  uniform1ui_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", [__arg_0]);
+
+  uniform1ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1ui", [__arg_0, __arg_1]);
+
+  uniform1uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", []);
+
+  uniform1uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", [__arg_0]);
+
+  uniform1uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1uiv", [__arg_0, __arg_1]);
+
+  uniform2ui_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0]);
+
+  uniform2ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0, __arg_1]);
+
+  uniform2ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", []);
+
+  uniform2uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", [__arg_0]);
+
+  uniform2uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2uiv", [__arg_0, __arg_1]);
+
+  uniform3ui_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1]);
+
+  uniform3ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", []);
+
+  uniform3uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", [__arg_0]);
+
+  uniform3uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3uiv", [__arg_0, __arg_1]);
+
+  uniform4ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4ui_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4ui", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", []);
+
+  uniform4uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", [__arg_0]);
+
+  uniform4uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4uiv", [__arg_0, __arg_1]);
+
+  uniformBlockBinding_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0]);
+
+  uniformBlockBinding_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0, __arg_1]);
+
+  uniformBlockBinding_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformBlockBinding", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix2x3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0]);
+
+  uniformMatrix2x3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2x3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x3fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix2x4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0]);
+
+  uniformMatrix2x4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2x4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2x4fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3x2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0]);
+
+  uniformMatrix3x2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3x2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3x4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0]);
+
+  uniformMatrix3x4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3x4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3x4fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4x2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0]);
+
+  uniformMatrix4x2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4x2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4x3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0]);
+
+  uniformMatrix4x3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4x3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4x3fv", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribDivisor_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", []);
+
+  vertexAttribDivisor_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", [__arg_0]);
+
+  vertexAttribDivisor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribDivisor", [__arg_0, __arg_1]);
+
+  vertexAttribI4i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribI4i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribI4i_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4i", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribI4iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", []);
+
+  vertexAttribI4iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", [__arg_0]);
+
+  vertexAttribI4iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4iv", [__arg_0, __arg_1]);
+
+  vertexAttribI4ui_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribI4ui_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribI4ui_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4ui", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribI4uiv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", []);
+
+  vertexAttribI4uiv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", [__arg_0]);
+
+  vertexAttribI4uiv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribI4uiv", [__arg_0, __arg_1]);
+
+  vertexAttribIPointer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttribIPointer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribIPointer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribIPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  waitSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0]);
+
+  waitSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0, __arg_1]);
+
+  waitSync_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "waitSync", [__arg_0, __arg_1, __arg_2]);
+
+  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
+
+  drawingBufferHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferHeight");
+
+  drawingBufferWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferWidth");
+
+  activeTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", []);
+
+  activeTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", [__arg_0]);
+
+  attachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", []);
+
+  attachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0]);
+
+  attachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0]);
+
+  bindAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1, __arg_2]);
+
+  bindBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", []);
+
+  bindBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0]);
+
+  bindBuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0, __arg_1]);
+
+  bindFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", []);
+
+  bindFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0]);
+
+  bindFramebuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0, __arg_1]);
+
+  bindRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", []);
+
+  bindRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0]);
+
+  bindRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0, __arg_1]);
+
+  bindTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", []);
+
+  bindTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0]);
+
+  bindTexture_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0, __arg_1]);
+
+  blendColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1]);
+
+  blendColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2]);
+
+  blendColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  blendEquation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", []);
+
+  blendEquation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", [__arg_0]);
+
+  blendEquationSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", []);
+
+  blendEquationSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0]);
+
+  blendEquationSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0, __arg_1]);
+
+  blendFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", []);
+
+  blendFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0]);
+
+  blendFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  blendFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bufferData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0]);
+
+  bufferData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1]);
+
+  bufferData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1, __arg_2]);
+
+  bufferSubData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0]);
+
+  bufferSubData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1]);
+
+  bufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  checkFramebufferStatus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", []);
+
+  checkFramebufferStatus_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", [__arg_0]);
+
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
+
+  clearColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1]);
+
+  clearColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2]);
+
+  clearColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  clearDepth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", []);
+
+  clearDepth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", [__arg_0]);
+
+  clearStencil_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", []);
+
+  clearStencil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", [__arg_0]);
+
+  colorMask_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1]);
+
+  colorMask_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2]);
+
+  colorMask_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  compileShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", []);
+
+  compileShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", [__arg_0]);
+
+  compressedTexImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  compressedTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  createBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", []);
+
+  createFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createFramebuffer", []);
+
+  createProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createProgram", []);
+
+  createRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createRenderbuffer", []);
+
+  createShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createShader", []);
+
+  createShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createShader", [__arg_0]);
+
+  createTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTexture", []);
+
+  cullFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", []);
+
+  cullFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", [__arg_0]);
+
+  deleteBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", []);
+
+  deleteBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", [__arg_0]);
+
+  deleteFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", []);
+
+  deleteFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", [__arg_0]);
+
+  deleteProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", []);
+
+  deleteProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", [__arg_0]);
+
+  deleteRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", []);
+
+  deleteRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", [__arg_0]);
+
+  deleteShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", []);
+
+  deleteShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", [__arg_0]);
+
+  deleteTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", []);
+
+  deleteTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", [__arg_0]);
+
+  depthFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", []);
+
+  depthFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", [__arg_0]);
+
+  depthMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", []);
+
+  depthMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", [__arg_0]);
+
+  depthRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", []);
+
+  depthRange_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0]);
+
+  depthRange_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0, __arg_1]);
+
+  detachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", []);
+
+  detachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0]);
+
+  detachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0, __arg_1]);
+
+  disable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disable", []);
+
+  disable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disable", [__arg_0]);
+
+  disableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", []);
+
+  disableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", [__arg_0]);
+
+  drawArrays_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0]);
+
+  drawArrays_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1]);
+
+  drawArrays_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1]);
+
+  drawElements_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  enable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enable", []);
+
+  enable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enable", [__arg_0]);
+
+  enableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", []);
+
+  enableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", [__arg_0]);
+
+  finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
+
+  flush_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "flush", []);
+
+  framebufferRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1]);
+
+  framebufferRenderbuffer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferRenderbuffer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferTexture2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  frontFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", []);
+
+  frontFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", [__arg_0]);
+
+  generateMipmap_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", []);
+
+  generateMipmap_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", [__arg_0]);
+
+  getActiveAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", []);
+
+  getActiveAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0]);
+
+  getActiveAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0, __arg_1]);
+
+  getActiveUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", []);
+
+  getActiveUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0]);
+
+  getActiveUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0, __arg_1]);
+
+  getAttachedShaders_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", []);
+
+  getAttachedShaders_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", [__arg_0]);
+
+  getAttribLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", []);
+
+  getAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0]);
+
+  getAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0, __arg_1]);
+
+  getBufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", []);
+
+  getBufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0]);
+
+  getBufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0, __arg_1]);
+
+  getContextAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContextAttributes", []);
+
+  getError_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getError", []);
+
+  getExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", []);
+
+  getExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1]);
+
+  getFramebufferAttachmentParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", []);
+
+  getParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", [__arg_0]);
+
+  getProgramInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", []);
+
+  getProgramInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", [__arg_0]);
+
+  getProgramParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", []);
+
+  getProgramParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0]);
+
+  getProgramParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0, __arg_1]);
+
+  getRenderbufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", []);
+
+  getRenderbufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0]);
+
+  getRenderbufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0, __arg_1]);
+
+  getShaderInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", []);
+
+  getShaderInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", [__arg_0]);
+
+  getShaderParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", []);
+
+  getShaderParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0]);
+
+  getShaderParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0, __arg_1]);
+
+  getShaderPrecisionFormat_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", []);
+
+  getShaderPrecisionFormat_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0]);
+
+  getShaderPrecisionFormat_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0, __arg_1]);
+
+  getShaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", []);
+
+  getShaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", [__arg_0]);
+
+  getSupportedExtensions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSupportedExtensions", []);
+
+  getTexParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", []);
+
+  getTexParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0]);
+
+  getTexParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0, __arg_1]);
+
+  getUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", []);
+
+  getUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0]);
+
+  getUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0, __arg_1]);
+
+  getUniformLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", []);
+
+  getUniformLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0]);
+
+  getUniformLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0, __arg_1]);
+
+  getVertexAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", []);
+
+  getVertexAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0]);
+
+  getVertexAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0, __arg_1]);
+
+  getVertexAttribOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", []);
+
+  getVertexAttribOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0]);
+
+  getVertexAttribOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0, __arg_1]);
+
+  hint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hint", []);
+
+  hint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0]);
+
+  hint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0, __arg_1]);
+
+  isBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", []);
+
+  isBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", [__arg_0]);
+
+  isContextLost_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isContextLost", []);
+
+  isEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", []);
+
+  isEnabled_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", [__arg_0]);
+
+  isFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", []);
+
+  isFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", [__arg_0]);
+
+  isProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", []);
+
+  isProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", [__arg_0]);
+
+  isRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", []);
+
+  isRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", [__arg_0]);
+
+  isShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isShader", []);
+
+  isShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isShader", [__arg_0]);
+
+  isTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", []);
+
+  isTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", [__arg_0]);
+
+  lineWidth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", []);
+
+  lineWidth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", [__arg_0]);
+
+  linkProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", []);
+
+  linkProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", [__arg_0]);
+
+  pixelStorei_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", []);
+
+  pixelStorei_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0]);
+
+  pixelStorei_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0, __arg_1]);
+
+  polygonOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", []);
+
+  polygonOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0]);
+
+  polygonOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0, __arg_1]);
+
+  readPixels_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  readPixels_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  readPixels_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  renderbufferStorage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1]);
+
+  renderbufferStorage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2]);
+
+  renderbufferStorage_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  sampleCoverage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", []);
+
+  sampleCoverage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0]);
+
+  sampleCoverage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0, __arg_1]);
+
+  scissor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1]);
+
+  scissor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2]);
+
+  scissor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  shaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", []);
+
+  shaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0]);
+
+  shaderSource_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0]);
+
+  stencilFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1]);
+
+  stencilFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  stencilMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", []);
+
+  stencilMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", [__arg_0]);
+
+  stencilMaskSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", []);
+
+  stencilMaskSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0]);
+
+  stencilMaskSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0, __arg_1]);
+
   stencilOp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0]);
 
   stencilOp_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1]);
 
   stencilOp_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1, __arg_2]);
 
+  stencilOpSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1]);
+
+  stencilOpSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilOpSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
   texImage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   texImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
@@ -15737,6 +20146,1539 @@
 
 }
 
+class BlinkWebGLActiveInfo {
+  static final instance = new BlinkWebGLActiveInfo();
+
+  name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
+
+  size_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "size");
+
+  type_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "type");
+
+}
+
+class BlinkWebGLBuffer {
+  static final instance = new BlinkWebGLBuffer();
+
+}
+
+class BlinkWebGLCompressedTextureATC {
+  static final instance = new BlinkWebGLCompressedTextureATC();
+
+}
+
+class BlinkWebGLCompressedTextureETC1 {
+  static final instance = new BlinkWebGLCompressedTextureETC1();
+
+}
+
+class BlinkWebGLCompressedTexturePVRTC {
+  static final instance = new BlinkWebGLCompressedTexturePVRTC();
+
+}
+
+class BlinkWebGLCompressedTextureS3TC {
+  static final instance = new BlinkWebGLCompressedTextureS3TC();
+
+}
+
+class BlinkWebGLContextEvent extends BlinkEvent {
+  static final instance = new BlinkWebGLContextEvent();
+
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebGLContextEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebGLContextEvent"), [__arg_0]);
+
+  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebGLContextEvent"), [__arg_0, __arg_1]);
+
+  statusMessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusMessage");
+
+}
+
+class BlinkWebGLDebugRendererInfo {
+  static final instance = new BlinkWebGLDebugRendererInfo();
+
+}
+
+class BlinkWebGLDebugShaders {
+  static final instance = new BlinkWebGLDebugShaders();
+
+  getTranslatedShaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTranslatedShaderSource", []);
+
+  getTranslatedShaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTranslatedShaderSource", [__arg_0]);
+
+}
+
+class BlinkWebGLDepthTexture {
+  static final instance = new BlinkWebGLDepthTexture();
+
+}
+
+class BlinkWebGLDrawBuffers {
+  static final instance = new BlinkWebGLDrawBuffers();
+
+  drawBuffersWEBGL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffersWEBGL", []);
+
+  drawBuffersWEBGL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawBuffersWEBGL", [__arg_0]);
+
+}
+
+class BlinkWebGLFramebuffer {
+  static final instance = new BlinkWebGLFramebuffer();
+
+}
+
+class BlinkWebGLLoseContext {
+  static final instance = new BlinkWebGLLoseContext();
+
+  loseContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "loseContext", []);
+
+  restoreContext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "restoreContext", []);
+
+}
+
+class BlinkWebGLProgram {
+  static final instance = new BlinkWebGLProgram();
+
+}
+
+class BlinkWebGLQuery {
+  static final instance = new BlinkWebGLQuery();
+
+}
+
+class BlinkWebGLRenderbuffer {
+  static final instance = new BlinkWebGLRenderbuffer();
+
+}
+
+class BlinkWebGLRenderingContext {
+  static final instance = new BlinkWebGLRenderingContext();
+
+  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
+
+  drawingBufferHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferHeight");
+
+  drawingBufferWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferWidth");
+
+  activeTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", []);
+
+  activeTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", [__arg_0]);
+
+  attachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", []);
+
+  attachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0]);
+
+  attachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0]);
+
+  bindAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1, __arg_2]);
+
+  bindBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", []);
+
+  bindBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0]);
+
+  bindBuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0, __arg_1]);
+
+  bindFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", []);
+
+  bindFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0]);
+
+  bindFramebuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0, __arg_1]);
+
+  bindRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", []);
+
+  bindRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0]);
+
+  bindRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0, __arg_1]);
+
+  bindTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", []);
+
+  bindTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0]);
+
+  bindTexture_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0, __arg_1]);
+
+  blendColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1]);
+
+  blendColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2]);
+
+  blendColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  blendEquation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", []);
+
+  blendEquation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", [__arg_0]);
+
+  blendEquationSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", []);
+
+  blendEquationSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0]);
+
+  blendEquationSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0, __arg_1]);
+
+  blendFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", []);
+
+  blendFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0]);
+
+  blendFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  blendFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bufferData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0]);
+
+  bufferData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1]);
+
+  bufferData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1, __arg_2]);
+
+  bufferSubData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0]);
+
+  bufferSubData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1]);
+
+  bufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  checkFramebufferStatus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", []);
+
+  checkFramebufferStatus_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", [__arg_0]);
+
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
+
+  clearColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1]);
+
+  clearColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2]);
+
+  clearColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  clearDepth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", []);
+
+  clearDepth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", [__arg_0]);
+
+  clearStencil_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", []);
+
+  clearStencil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", [__arg_0]);
+
+  colorMask_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1]);
+
+  colorMask_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2]);
+
+  colorMask_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  compileShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", []);
+
+  compileShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", [__arg_0]);
+
+  compressedTexImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  compressedTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  createBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", []);
+
+  createFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createFramebuffer", []);
+
+  createProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createProgram", []);
+
+  createRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createRenderbuffer", []);
+
+  createShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createShader", []);
+
+  createShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createShader", [__arg_0]);
+
+  createTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTexture", []);
+
+  cullFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", []);
+
+  cullFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", [__arg_0]);
+
+  deleteBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", []);
+
+  deleteBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", [__arg_0]);
+
+  deleteFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", []);
+
+  deleteFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", [__arg_0]);
+
+  deleteProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", []);
+
+  deleteProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", [__arg_0]);
+
+  deleteRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", []);
+
+  deleteRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", [__arg_0]);
+
+  deleteShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", []);
+
+  deleteShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", [__arg_0]);
+
+  deleteTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", []);
+
+  deleteTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", [__arg_0]);
+
+  depthFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", []);
+
+  depthFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", [__arg_0]);
+
+  depthMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", []);
+
+  depthMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", [__arg_0]);
+
+  depthRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", []);
+
+  depthRange_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0]);
+
+  depthRange_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0, __arg_1]);
+
+  detachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", []);
+
+  detachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0]);
+
+  detachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0, __arg_1]);
+
+  disable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disable", []);
+
+  disable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disable", [__arg_0]);
+
+  disableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", []);
+
+  disableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", [__arg_0]);
+
+  drawArrays_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0]);
+
+  drawArrays_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1]);
+
+  drawArrays_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1]);
+
+  drawElements_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  enable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enable", []);
+
+  enable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enable", [__arg_0]);
+
+  enableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", []);
+
+  enableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", [__arg_0]);
+
+  finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
+
+  flush_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "flush", []);
+
+  framebufferRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1]);
+
+  framebufferRenderbuffer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferRenderbuffer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferTexture2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  frontFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", []);
+
+  frontFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", [__arg_0]);
+
+  generateMipmap_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", []);
+
+  generateMipmap_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", [__arg_0]);
+
+  getActiveAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", []);
+
+  getActiveAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0]);
+
+  getActiveAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0, __arg_1]);
+
+  getActiveUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", []);
+
+  getActiveUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0]);
+
+  getActiveUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0, __arg_1]);
+
+  getAttachedShaders_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", []);
+
+  getAttachedShaders_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", [__arg_0]);
+
+  getAttribLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", []);
+
+  getAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0]);
+
+  getAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0, __arg_1]);
+
+  getBufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", []);
+
+  getBufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0]);
+
+  getBufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0, __arg_1]);
+
+  getContextAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContextAttributes", []);
+
+  getError_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getError", []);
+
+  getExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", []);
+
+  getExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1]);
+
+  getFramebufferAttachmentParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", []);
+
+  getParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", [__arg_0]);
+
+  getProgramInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", []);
+
+  getProgramInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", [__arg_0]);
+
+  getProgramParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", []);
+
+  getProgramParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0]);
+
+  getProgramParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0, __arg_1]);
+
+  getRenderbufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", []);
+
+  getRenderbufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0]);
+
+  getRenderbufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0, __arg_1]);
+
+  getShaderInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", []);
+
+  getShaderInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", [__arg_0]);
+
+  getShaderParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", []);
+
+  getShaderParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0]);
+
+  getShaderParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0, __arg_1]);
+
+  getShaderPrecisionFormat_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", []);
+
+  getShaderPrecisionFormat_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0]);
+
+  getShaderPrecisionFormat_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0, __arg_1]);
+
+  getShaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", []);
+
+  getShaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", [__arg_0]);
+
+  getSupportedExtensions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSupportedExtensions", []);
+
+  getTexParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", []);
+
+  getTexParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0]);
+
+  getTexParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0, __arg_1]);
+
+  getUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", []);
+
+  getUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0]);
+
+  getUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0, __arg_1]);
+
+  getUniformLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", []);
+
+  getUniformLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0]);
+
+  getUniformLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0, __arg_1]);
+
+  getVertexAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", []);
+
+  getVertexAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0]);
+
+  getVertexAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0, __arg_1]);
+
+  getVertexAttribOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", []);
+
+  getVertexAttribOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0]);
+
+  getVertexAttribOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0, __arg_1]);
+
+  hint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hint", []);
+
+  hint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0]);
+
+  hint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0, __arg_1]);
+
+  isBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", []);
+
+  isBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", [__arg_0]);
+
+  isContextLost_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isContextLost", []);
+
+  isEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", []);
+
+  isEnabled_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", [__arg_0]);
+
+  isFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", []);
+
+  isFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", [__arg_0]);
+
+  isProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", []);
+
+  isProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", [__arg_0]);
+
+  isRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", []);
+
+  isRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", [__arg_0]);
+
+  isShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isShader", []);
+
+  isShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isShader", [__arg_0]);
+
+  isTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", []);
+
+  isTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", [__arg_0]);
+
+  lineWidth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", []);
+
+  lineWidth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", [__arg_0]);
+
+  linkProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", []);
+
+  linkProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", [__arg_0]);
+
+  pixelStorei_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", []);
+
+  pixelStorei_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0]);
+
+  pixelStorei_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0, __arg_1]);
+
+  polygonOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", []);
+
+  polygonOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0]);
+
+  polygonOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0, __arg_1]);
+
+  readPixels_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  readPixels_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  readPixels_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  renderbufferStorage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1]);
+
+  renderbufferStorage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2]);
+
+  renderbufferStorage_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  sampleCoverage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", []);
+
+  sampleCoverage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0]);
+
+  sampleCoverage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0, __arg_1]);
+
+  scissor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1]);
+
+  scissor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2]);
+
+  scissor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  shaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", []);
+
+  shaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0]);
+
+  shaderSource_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0]);
+
+  stencilFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1]);
+
+  stencilFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  stencilMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", []);
+
+  stencilMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", [__arg_0]);
+
+  stencilMaskSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", []);
+
+  stencilMaskSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0]);
+
+  stencilMaskSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0, __arg_1]);
+
+  stencilOp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0]);
+
+  stencilOp_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1]);
+
+  stencilOp_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1, __arg_2]);
+
+  stencilOpSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1]);
+
+  stencilOpSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilOpSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texImage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texParameterf_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0]);
+
+  texParameterf_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1]);
+
+  texParameterf_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1, __arg_2]);
+
+  texParameteri_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0]);
+
+  texParameteri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1]);
+
+  texParameteri_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1, __arg_2]);
+
+  texSubImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texSubImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  uniform1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", []);
+
+  uniform1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0]);
+
+  uniform1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0, __arg_1]);
+
+  uniform1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", []);
+
+  uniform1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0]);
+
+  uniform1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0, __arg_1]);
+
+  uniform1i_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", []);
+
+  uniform1i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0]);
+
+  uniform1i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0, __arg_1]);
+
+  uniform1iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", []);
+
+  uniform1iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0]);
+
+  uniform1iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0]);
+
+  uniform2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", []);
+
+  uniform2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0]);
+
+  uniform2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0]);
+
+  uniform2i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", []);
+
+  uniform2iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0]);
+
+  uniform2iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", []);
+
+  uniform3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0]);
+
+  uniform3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", []);
+
+  uniform3iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0]);
+
+  uniform3iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0, __arg_1]);
+
+  uniform4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", []);
+
+  uniform4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0]);
+
+  uniform4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0, __arg_1]);
+
+  uniform4i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4i_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", []);
+
+  uniform4iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0]);
+
+  uniform4iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0]);
+
+  uniformMatrix2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0]);
+
+  uniformMatrix3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0]);
+
+  uniformMatrix4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1, __arg_2]);
+
+  useProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", []);
+
+  useProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", [__arg_0]);
+
+  validateProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", []);
+
+  validateProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", [__arg_0]);
+
+  vertexAttrib1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", []);
+
+  vertexAttrib1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0]);
+
+  vertexAttrib1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0, __arg_1]);
+
+  vertexAttrib1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", []);
+
+  vertexAttrib1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0]);
+
+  vertexAttrib1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0]);
+
+  vertexAttrib2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", []);
+
+  vertexAttrib2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0]);
+
+  vertexAttrib2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", []);
+
+  vertexAttrib3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0]);
+
+  vertexAttrib3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0, __arg_1]);
+
+  vertexAttrib4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttrib4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", []);
+
+  vertexAttrib4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0]);
+
+  vertexAttrib4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0, __arg_1]);
+
+  vertexAttribPointer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribPointer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribPointer_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  viewport_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1]);
+
+  viewport_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2]);
+
+  viewport_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+}
+
+class BlinkWebGLRenderingContextBase {
+  static final instance = new BlinkWebGLRenderingContextBase();
+
+  canvas_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "canvas");
+
+  drawingBufferHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferHeight");
+
+  drawingBufferWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "drawingBufferWidth");
+
+  activeTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", []);
+
+  activeTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "activeTexture", [__arg_0]);
+
+  attachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", []);
+
+  attachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0]);
+
+  attachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "attachShader", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0]);
+
+  bindAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1]);
+
+  bindAttribLocation_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bindAttribLocation", [__arg_0, __arg_1, __arg_2]);
+
+  bindBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", []);
+
+  bindBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0]);
+
+  bindBuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindBuffer", [__arg_0, __arg_1]);
+
+  bindFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", []);
+
+  bindFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0]);
+
+  bindFramebuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindFramebuffer", [__arg_0, __arg_1]);
+
+  bindRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", []);
+
+  bindRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0]);
+
+  bindRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindRenderbuffer", [__arg_0, __arg_1]);
+
+  bindTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", []);
+
+  bindTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0]);
+
+  bindTexture_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bindTexture", [__arg_0, __arg_1]);
+
+  blendColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1]);
+
+  blendColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2]);
+
+  blendColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  blendEquation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", []);
+
+  blendEquation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquation", [__arg_0]);
+
+  blendEquationSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", []);
+
+  blendEquationSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0]);
+
+  blendEquationSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendEquationSeparate", [__arg_0, __arg_1]);
+
+  blendFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", []);
+
+  blendFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0]);
+
+  blendFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFunc", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1]);
+
+  blendFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  blendFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "blendFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  bufferData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0]);
+
+  bufferData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1]);
+
+  bufferData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferData", [__arg_0, __arg_1, __arg_2]);
+
+  bufferSubData_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0]);
+
+  bufferSubData_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1]);
+
+  bufferSubData_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "bufferSubData", [__arg_0, __arg_1, __arg_2]);
+
+  checkFramebufferStatus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", []);
+
+  checkFramebufferStatus_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "checkFramebufferStatus", [__arg_0]);
+
+  clear_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clear", []);
+
+  clear_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clear", [__arg_0]);
+
+  clearColor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1]);
+
+  clearColor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2]);
+
+  clearColor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "clearColor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  clearDepth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", []);
+
+  clearDepth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearDepth", [__arg_0]);
+
+  clearStencil_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", []);
+
+  clearStencil_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearStencil", [__arg_0]);
+
+  colorMask_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1]);
+
+  colorMask_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2]);
+
+  colorMask_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "colorMask", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  compileShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", []);
+
+  compileShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "compileShader", [__arg_0]);
+
+  compressedTexImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  compressedTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  compressedTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  compressedTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "compressedTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  copyTexSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  copyTexSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  copyTexSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "copyTexSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  createBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createBuffer", []);
+
+  createFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createFramebuffer", []);
+
+  createProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createProgram", []);
+
+  createRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createRenderbuffer", []);
+
+  createShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createShader", []);
+
+  createShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createShader", [__arg_0]);
+
+  createTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createTexture", []);
+
+  cullFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", []);
+
+  cullFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cullFace", [__arg_0]);
+
+  deleteBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", []);
+
+  deleteBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteBuffer", [__arg_0]);
+
+  deleteFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", []);
+
+  deleteFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteFramebuffer", [__arg_0]);
+
+  deleteProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", []);
+
+  deleteProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteProgram", [__arg_0]);
+
+  deleteRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", []);
+
+  deleteRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteRenderbuffer", [__arg_0]);
+
+  deleteShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", []);
+
+  deleteShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteShader", [__arg_0]);
+
+  deleteTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", []);
+
+  deleteTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "deleteTexture", [__arg_0]);
+
+  depthFunc_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", []);
+
+  depthFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthFunc", [__arg_0]);
+
+  depthMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", []);
+
+  depthMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthMask", [__arg_0]);
+
+  depthRange_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", []);
+
+  depthRange_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0]);
+
+  depthRange_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "depthRange", [__arg_0, __arg_1]);
+
+  detachShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", []);
+
+  detachShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0]);
+
+  detachShader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "detachShader", [__arg_0, __arg_1]);
+
+  disable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disable", []);
+
+  disable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disable", [__arg_0]);
+
+  disableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", []);
+
+  disableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "disableVertexAttribArray", [__arg_0]);
+
+  drawArrays_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0]);
+
+  drawArrays_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1]);
+
+  drawArrays_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawArrays", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1]);
+
+  drawElements_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2]);
+
+  drawElements_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "drawElements", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  enable_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enable", []);
+
+  enable_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enable", [__arg_0]);
+
+  enableVertexAttribArray_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", []);
+
+  enableVertexAttribArray_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "enableVertexAttribArray", [__arg_0]);
+
+  finish_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "finish", []);
+
+  flush_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "flush", []);
+
+  framebufferRenderbuffer_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1]);
+
+  framebufferRenderbuffer_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferRenderbuffer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferRenderbuffer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2]);
+
+  framebufferTexture2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  framebufferTexture2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "framebufferTexture2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  frontFace_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", []);
+
+  frontFace_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "frontFace", [__arg_0]);
+
+  generateMipmap_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", []);
+
+  generateMipmap_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "generateMipmap", [__arg_0]);
+
+  getActiveAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", []);
+
+  getActiveAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0]);
+
+  getActiveAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveAttrib", [__arg_0, __arg_1]);
+
+  getActiveUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", []);
+
+  getActiveUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0]);
+
+  getActiveUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getActiveUniform", [__arg_0, __arg_1]);
+
+  getAttachedShaders_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", []);
+
+  getAttachedShaders_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttachedShaders", [__arg_0]);
+
+  getAttribLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", []);
+
+  getAttribLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0]);
+
+  getAttribLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getAttribLocation", [__arg_0, __arg_1]);
+
+  getBufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", []);
+
+  getBufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0]);
+
+  getBufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getBufferParameter", [__arg_0, __arg_1]);
+
+  getContextAttributes_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getContextAttributes", []);
+
+  getError_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getError", []);
+
+  getExtension_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", []);
+
+  getExtension_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getExtension", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0]);
+
+  getFramebufferAttachmentParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1]);
+
+  getFramebufferAttachmentParameter_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "getFramebufferAttachmentParameter", [__arg_0, __arg_1, __arg_2]);
+
+  getParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", []);
+
+  getParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", [__arg_0]);
+
+  getProgramInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", []);
+
+  getProgramInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramInfoLog", [__arg_0]);
+
+  getProgramParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", []);
+
+  getProgramParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0]);
+
+  getProgramParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getProgramParameter", [__arg_0, __arg_1]);
+
+  getRenderbufferParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", []);
+
+  getRenderbufferParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0]);
+
+  getRenderbufferParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getRenderbufferParameter", [__arg_0, __arg_1]);
+
+  getShaderInfoLog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", []);
+
+  getShaderInfoLog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderInfoLog", [__arg_0]);
+
+  getShaderParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", []);
+
+  getShaderParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0]);
+
+  getShaderParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderParameter", [__arg_0, __arg_1]);
+
+  getShaderPrecisionFormat_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", []);
+
+  getShaderPrecisionFormat_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0]);
+
+  getShaderPrecisionFormat_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getShaderPrecisionFormat", [__arg_0, __arg_1]);
+
+  getShaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", []);
+
+  getShaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getShaderSource", [__arg_0]);
+
+  getSupportedExtensions_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSupportedExtensions", []);
+
+  getTexParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", []);
+
+  getTexParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0]);
+
+  getTexParameter_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getTexParameter", [__arg_0, __arg_1]);
+
+  getUniform_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", []);
+
+  getUniform_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0]);
+
+  getUniform_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniform", [__arg_0, __arg_1]);
+
+  getUniformLocation_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", []);
+
+  getUniformLocation_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0]);
+
+  getUniformLocation_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getUniformLocation", [__arg_0, __arg_1]);
+
+  getVertexAttrib_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", []);
+
+  getVertexAttrib_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0]);
+
+  getVertexAttrib_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttrib", [__arg_0, __arg_1]);
+
+  getVertexAttribOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", []);
+
+  getVertexAttribOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0]);
+
+  getVertexAttribOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getVertexAttribOffset", [__arg_0, __arg_1]);
+
+  hint_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "hint", []);
+
+  hint_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0]);
+
+  hint_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "hint", [__arg_0, __arg_1]);
+
+  isBuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", []);
+
+  isBuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isBuffer", [__arg_0]);
+
+  isContextLost_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isContextLost", []);
+
+  isEnabled_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", []);
+
+  isEnabled_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isEnabled", [__arg_0]);
+
+  isFramebuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", []);
+
+  isFramebuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isFramebuffer", [__arg_0]);
+
+  isProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", []);
+
+  isProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isProgram", [__arg_0]);
+
+  isRenderbuffer_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", []);
+
+  isRenderbuffer_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isRenderbuffer", [__arg_0]);
+
+  isShader_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isShader", []);
+
+  isShader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isShader", [__arg_0]);
+
+  isTexture_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", []);
+
+  isTexture_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "isTexture", [__arg_0]);
+
+  lineWidth_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", []);
+
+  lineWidth_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "lineWidth", [__arg_0]);
+
+  linkProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", []);
+
+  linkProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "linkProgram", [__arg_0]);
+
+  pixelStorei_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", []);
+
+  pixelStorei_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0]);
+
+  pixelStorei_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "pixelStorei", [__arg_0, __arg_1]);
+
+  polygonOffset_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", []);
+
+  polygonOffset_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0]);
+
+  polygonOffset_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "polygonOffset", [__arg_0, __arg_1]);
+
+  readPixels_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  readPixels_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  readPixels_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "readPixels", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  renderbufferStorage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1]);
+
+  renderbufferStorage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2]);
+
+  renderbufferStorage_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "renderbufferStorage", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  sampleCoverage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", []);
+
+  sampleCoverage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0]);
+
+  sampleCoverage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "sampleCoverage", [__arg_0, __arg_1]);
+
+  scissor_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1]);
+
+  scissor_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2]);
+
+  scissor_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "scissor", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  shaderSource_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", []);
+
+  shaderSource_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0]);
+
+  shaderSource_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "shaderSource", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0]);
+
+  stencilFunc_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1]);
+
+  stencilFunc_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFunc", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1]);
+
+  stencilFuncSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilFuncSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilFuncSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  stencilMask_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", []);
+
+  stencilMask_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMask", [__arg_0]);
+
+  stencilMaskSeparate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", []);
+
+  stencilMaskSeparate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0]);
+
+  stencilMaskSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilMaskSeparate", [__arg_0, __arg_1]);
+
+  stencilOp_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0]);
+
+  stencilOp_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1]);
+
+  stencilOp_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOp", [__arg_0, __arg_1, __arg_2]);
+
+  stencilOpSeparate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1]);
+
+  stencilOpSeparate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2]);
+
+  stencilOpSeparate_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "stencilOpSeparate", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texImage2D_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  texImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  texParameterf_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0]);
+
+  texParameterf_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1]);
+
+  texParameterf_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameterf", [__arg_0, __arg_1, __arg_2]);
+
+  texParameteri_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0]);
+
+  texParameteri_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1]);
+
+  texParameteri_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "texParameteri", [__arg_0, __arg_1, __arg_2]);
+
+  texSubImage2D_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  texSubImage2D_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  texSubImage2D_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  texSubImage2D_Callback_8_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7]);
+
+  texSubImage2D_Callback_9_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8) => Blink_JsNative_DomException.callMethod(mthis, "texSubImage2D", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6, __arg_7, __arg_8]);
+
+  uniform1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", []);
+
+  uniform1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0]);
+
+  uniform1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1f", [__arg_0, __arg_1]);
+
+  uniform1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", []);
+
+  uniform1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0]);
+
+  uniform1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1fv", [__arg_0, __arg_1]);
+
+  uniform1i_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", []);
+
+  uniform1i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0]);
+
+  uniform1i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1i", [__arg_0, __arg_1]);
+
+  uniform1iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", []);
+
+  uniform1iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0]);
+
+  uniform1iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform1iv", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0]);
+
+  uniform2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1]);
+
+  uniform2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", []);
+
+  uniform2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0]);
+
+  uniform2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2fv", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0]);
+
+  uniform2i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1]);
+
+  uniform2i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform2i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform2iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", []);
+
+  uniform2iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0]);
+
+  uniform2iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform2iv", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1]);
+
+  uniform3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", []);
+
+  uniform3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0]);
+
+  uniform3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3fv", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1]);
+
+  uniform3i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform3i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform3i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform3iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", []);
+
+  uniform3iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0]);
+
+  uniform3iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform3iv", [__arg_0, __arg_1]);
+
+  uniform4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", []);
+
+  uniform4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0]);
+
+  uniform4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4fv", [__arg_0, __arg_1]);
+
+  uniform4i_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2]);
+
+  uniform4i_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  uniform4i_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "uniform4i", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  uniform4iv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", []);
+
+  uniform4iv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0]);
+
+  uniform4iv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniform4iv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0]);
+
+  uniformMatrix2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1]);
+
+  uniformMatrix2fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix2fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0]);
+
+  uniformMatrix3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1]);
+
+  uniformMatrix3fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix3fv", [__arg_0, __arg_1, __arg_2]);
+
+  uniformMatrix4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0]);
+
+  uniformMatrix4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1]);
+
+  uniformMatrix4fv_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "uniformMatrix4fv", [__arg_0, __arg_1, __arg_2]);
+
+  useProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", []);
+
+  useProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "useProgram", [__arg_0]);
+
+  validateProgram_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", []);
+
+  validateProgram_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "validateProgram", [__arg_0]);
+
+  vertexAttrib1f_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", []);
+
+  vertexAttrib1f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0]);
+
+  vertexAttrib1f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1f", [__arg_0, __arg_1]);
+
+  vertexAttrib1fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", []);
+
+  vertexAttrib1fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0]);
+
+  vertexAttrib1fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib1fv", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0]);
+
+  vertexAttrib2f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1]);
+
+  vertexAttrib2f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib2fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", []);
+
+  vertexAttrib2fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0]);
+
+  vertexAttrib2fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib2fv", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1]);
+
+  vertexAttrib3f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib3f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib3fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", []);
+
+  vertexAttrib3fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0]);
+
+  vertexAttrib3fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib3fv", [__arg_0, __arg_1]);
+
+  vertexAttrib4f_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2]);
+
+  vertexAttrib4f_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttrib4f_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4f", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttrib4fv_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", []);
+
+  vertexAttrib4fv_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0]);
+
+  vertexAttrib4fv_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttrib4fv", [__arg_0, __arg_1]);
+
+  vertexAttribPointer_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  vertexAttribPointer_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  vertexAttribPointer_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "vertexAttribPointer", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  viewport_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1]);
+
+  viewport_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2]);
+
+  viewport_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "viewport", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+}
+
+class BlinkWebGLSampler {
+  static final instance = new BlinkWebGLSampler();
+
+}
+
 class BlinkWebGLShader {
   static final instance = new BlinkWebGLShader();
 
@@ -15753,51 +21695,43 @@
 
 }
 
+class BlinkWebGLSync {
+  static final instance = new BlinkWebGLSync();
+
+}
+
 class BlinkWebGLTexture {
   static final instance = new BlinkWebGLTexture();
 
 }
 
+class BlinkWebGLTransformFeedback {
+  static final instance = new BlinkWebGLTransformFeedback();
+
+}
+
 class BlinkWebGLUniformLocation {
   static final instance = new BlinkWebGLUniformLocation();
 
 }
 
+class BlinkWebGLVertexArrayObject {
+  static final instance = new BlinkWebGLVertexArrayObject();
+
+}
+
 class BlinkWebGLVertexArrayObjectOES {
   static final instance = new BlinkWebGLVertexArrayObjectOES();
 
 }
 
-class BlinkWebKitAnimationEvent extends BlinkEvent {
-  static final instance = new BlinkWebKitAnimationEvent();
-
-  animationName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "animationName");
-
-  constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebKitAnimationEvent"), [__arg_0, __arg_1]);
-
-  elapsedTime_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "elapsedTime");
-
-}
-
-class BlinkWebKitCSSFilterRule extends BlinkCSSRule {
-  static final instance = new BlinkWebKitCSSFilterRule();
-
-  style_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "style");
-
-}
-
-class BlinkWebKitCSSFilterValue extends BlinkCSSValueList {
-  static final instance = new BlinkWebKitCSSFilterValue();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  operationType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "operationType");
-
-}
-
 class BlinkWebKitCSSMatrix {
   static final instance = new BlinkWebKitCSSMatrix();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebKitCSSMatrix"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebKitCSSMatrix"), [__arg_0]);
+
   a_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "a");
 
   a_Setter_(mthis, __arg_0) => mthis["a"] = __arg_0;
@@ -15810,10 +21744,6 @@
 
   c_Setter_(mthis, __arg_0) => mthis["c"] = __arg_0;
 
-  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebKitCSSMatrix"), []);
-
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebKitCSSMatrix"), [__arg_0]);
-
   d_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "d");
 
   d_Setter_(mthis, __arg_0) => mthis["d"] = __arg_0;
@@ -15826,8 +21756,6 @@
 
   f_Setter_(mthis, __arg_0) => mthis["f"] = __arg_0;
 
-  inverse_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "inverse", []);
-
   m11_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "m11");
 
   m11_Setter_(mthis, __arg_0) => mthis["m11"] = __arg_0;
@@ -15892,29 +21820,23 @@
 
   m44_Setter_(mthis, __arg_0) => mthis["m44"] = __arg_0;
 
+  inverse_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "inverse", []);
+
   multiply_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "multiply", []);
 
   multiply_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "multiply", [__arg_0]);
 
-  rotateAxisAngle_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", []);
-
-  rotateAxisAngle_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0]);
-
-  rotateAxisAngle_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1]);
-
-  rotateAxisAngle_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1, __arg_2]);
-
-  rotateAxisAngle_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  rotate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "rotate", []);
-
   rotate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "rotate", [__arg_0]);
 
   rotate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rotate", [__arg_0, __arg_1]);
 
   rotate_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rotate", [__arg_0, __arg_1, __arg_2]);
 
-  scale_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scale", []);
+  rotateAxisAngle_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1]);
+
+  rotateAxisAngle_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1, __arg_2]);
+
+  rotateAxisAngle_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "rotateAxisAngle", [__arg_0, __arg_1, __arg_2, __arg_3]);
 
   scale_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scale", [__arg_0]);
 
@@ -15934,8 +21856,6 @@
 
   skewY_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "skewY", [__arg_0]);
 
-  translate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "translate", []);
-
   translate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "translate", [__arg_0]);
 
   translate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "translate", [__arg_0, __arg_1]);
@@ -15944,70 +21864,21 @@
 
 }
 
-class BlinkWebKitCSSTransformValue extends BlinkCSSValueList {
-  static final instance = new BlinkWebKitCSSTransformValue();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  operationType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "operationType");
-
-}
-
-class BlinkWebKitGamepad {
-  static final instance = new BlinkWebKitGamepad();
-
-  axes_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "axes");
-
-  buttons_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "buttons");
-
-  connected_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connected");
-
-  id_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "id");
-
-  index_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "index");
-
-  mapping_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "mapping");
-
-  timestamp_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timestamp");
-
-}
-
-class BlinkWebKitGamepadList {
-  static final instance = new BlinkWebKitGamepadList();
-
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  item_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "item", []);
-
-  item_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "item", [__arg_0]);
-
-  length_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "length");
-
-}
-
 class BlinkWebSocket extends BlinkEventTarget {
   static final instance = new BlinkWebSocket();
 
-  URL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "URL");
-
-  binaryType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "binaryType");
-
-  binaryType_Setter_(mthis, __arg_0) => mthis["binaryType"] = __arg_0;
-
-  bufferedAmount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bufferedAmount");
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  close_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0]);
-
-  close_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0, __arg_1]);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebSocket"), []);
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebSocket"), [__arg_0]);
 
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WebSocket"), [__arg_0, __arg_1]);
 
+  binaryType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "binaryType");
+
+  binaryType_Setter_(mthis, __arg_0) => mthis["binaryType"] = __arg_0;
+
+  bufferedAmount_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "bufferedAmount");
+
   extensions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "extensions");
 
   onclose_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onclose");
@@ -16030,17 +21901,27 @@
 
   readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
 
+  url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  close_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0]);
+
+  close_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "close", [__arg_0, __arg_1]);
+
   send_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "send", []);
 
   send_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "send", [__arg_0]);
 
-  url_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "url");
-
 }
 
 class BlinkWheelEvent extends BlinkMouseEvent {
   static final instance = new BlinkWheelEvent();
 
+  constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WheelEvent"), []);
+
+  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WheelEvent"), [__arg_0]);
+
   constructorCallback_2_(__arg_0, __arg_1) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "WheelEvent"), [__arg_0, __arg_1]);
 
   deltaMode_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deltaMode");
@@ -16051,6 +21932,8 @@
 
   deltaZ_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "deltaZ");
 
+  wheelDelta_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wheelDelta");
+
   wheelDeltaX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wheelDeltaX");
 
   wheelDeltaY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "wheelDeltaY");
@@ -16060,48 +21943,14 @@
 class BlinkWindow extends BlinkEventTarget {
   static final instance = new BlinkWindow();
 
-  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
-
-  CSS_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "CSS");
-
-  alert_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "alert", []);
-
-  alert_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "alert", [__arg_0]);
-
   applicationCache_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "applicationCache");
 
-  atob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "atob", []);
+  caches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "caches");
 
-  atob_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "atob", [__arg_0]);
-
-  blur_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blur", []);
-
-  btoa_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "btoa", []);
-
-  btoa_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "btoa", [__arg_0]);
-
-  cancelAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", []);
-
-  cancelAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", [__arg_0]);
-
-  captureEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "captureEvents", []);
-
-  clearInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", []);
-
-  clearInterval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", [__arg_0]);
-
-  clearTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", []);
-
-  clearTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", [__arg_0]);
-
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+  clientInformation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "clientInformation");
 
   closed_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "closed");
 
-  confirm_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "confirm", []);
-
-  confirm_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "confirm", [__arg_0]);
-
   console_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "console");
 
   crypto_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "crypto");
@@ -16122,42 +21971,10 @@
 
   event_Setter_(mthis, __arg_0) => mthis["event"] = __arg_0;
 
-  find_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "find", []);
-
-  find_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0]);
-
-  find_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1]);
-
-  find_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2]);
-
-  find_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  find_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  find_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
-
-  find_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
-
-  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
-
   frameElement_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frameElement");
 
   frames_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "frames");
 
-  getComputedStyle_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", []);
-
-  getComputedStyle_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", [__arg_0]);
-
-  getComputedStyle_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", [__arg_0, __arg_1]);
-
-  getMatchedCSSRules_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", []);
-
-  getMatchedCSSRules_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", [__arg_0]);
-
-  getMatchedCSSRules_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", [__arg_0, __arg_1]);
-
-  getSelection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelection", []);
-
   history_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "history");
 
   indexedDB_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "indexedDB");
@@ -16172,28 +21989,10 @@
 
   location_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "location");
 
-  location_Setter_(mthis, __arg_0) => mthis["location"] = __arg_0;
-
   locationbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "locationbar");
 
-  matchMedia_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchMedia", []);
-
-  matchMedia_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchMedia", [__arg_0]);
-
   menubar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "menubar");
 
-  moveBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", []);
-
-  moveBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", [__arg_0]);
-
-  moveBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", [__arg_0, __arg_1]);
-
-  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
-
-  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
-
-  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
-
   name_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "name");
 
   name_Setter_(mthis, __arg_0) => mthis["name"] = __arg_0;
@@ -16202,10 +22001,6 @@
 
   offscreenBuffering_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "offscreenBuffering");
 
-  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
-
-  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
-
   onanimationend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onanimationend");
 
   onanimationend_Setter_(mthis, __arg_0) => mthis["onanimationend"] = __arg_0;
@@ -16218,6 +22013,310 @@
 
   onanimationstart_Setter_(mthis, __arg_0) => mthis["onanimationstart"] = __arg_0;
 
+  ondevicelight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondevicelight");
+
+  ondevicelight_Setter_(mthis, __arg_0) => mthis["ondevicelight"] = __arg_0;
+
+  ondevicemotion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondevicemotion");
+
+  ondevicemotion_Setter_(mthis, __arg_0) => mthis["ondevicemotion"] = __arg_0;
+
+  ondeviceorientation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondeviceorientation");
+
+  ondeviceorientation_Setter_(mthis, __arg_0) => mthis["ondeviceorientation"] = __arg_0;
+
+  onorientationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onorientationchange");
+
+  onorientationchange_Setter_(mthis, __arg_0) => mthis["onorientationchange"] = __arg_0;
+
+  onsearch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsearch");
+
+  onsearch_Setter_(mthis, __arg_0) => mthis["onsearch"] = __arg_0;
+
+  ontouchcancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchcancel");
+
+  ontouchcancel_Setter_(mthis, __arg_0) => mthis["ontouchcancel"] = __arg_0;
+
+  ontouchend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchend");
+
+  ontouchend_Setter_(mthis, __arg_0) => mthis["ontouchend"] = __arg_0;
+
+  ontouchmove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchmove");
+
+  ontouchmove_Setter_(mthis, __arg_0) => mthis["ontouchmove"] = __arg_0;
+
+  ontouchstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchstart");
+
+  ontouchstart_Setter_(mthis, __arg_0) => mthis["ontouchstart"] = __arg_0;
+
+  ontransitionend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontransitionend");
+
+  ontransitionend_Setter_(mthis, __arg_0) => mthis["ontransitionend"] = __arg_0;
+
+  onwebkitanimationend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationend");
+
+  onwebkitanimationend_Setter_(mthis, __arg_0) => mthis["onwebkitanimationend"] = __arg_0;
+
+  onwebkitanimationiteration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationiteration");
+
+  onwebkitanimationiteration_Setter_(mthis, __arg_0) => mthis["onwebkitanimationiteration"] = __arg_0;
+
+  onwebkitanimationstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationstart");
+
+  onwebkitanimationstart_Setter_(mthis, __arg_0) => mthis["onwebkitanimationstart"] = __arg_0;
+
+  onwebkittransitionend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkittransitionend");
+
+  onwebkittransitionend_Setter_(mthis, __arg_0) => mthis["onwebkittransitionend"] = __arg_0;
+
+  onwheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwheel");
+
+  onwheel_Setter_(mthis, __arg_0) => mthis["onwheel"] = __arg_0;
+
+  opener_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "opener");
+
+  opener_Setter_(mthis, __arg_0) => mthis["opener"] = __arg_0;
+
+  orientation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "orientation");
+
+  outerHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outerHeight");
+
+  outerWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outerWidth");
+
+  pageXOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageXOffset");
+
+  pageYOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageYOffset");
+
+  parent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "parent");
+
+  performance_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "performance");
+
+  personalbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "personalbar");
+
+  screen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screen");
+
+  screenLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenLeft");
+
+  screenTop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenTop");
+
+  screenX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenX");
+
+  screenY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenY");
+
+  scrollX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollX");
+
+  scrollY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollY");
+
+  scrollbars_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollbars");
+
+  self_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "self");
+
+  sessionStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sessionStorage");
+
+  speechSynthesis_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speechSynthesis");
+
+  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+
+  status_Setter_(mthis, __arg_0) => mthis["status"] = __arg_0;
+
+  statusbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusbar");
+
+  styleMedia_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleMedia");
+
+  toolbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "toolbar");
+
+  top_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "top");
+
+  webkitIndexedDB_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitIndexedDB");
+
+  webkitStorageInfo_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitStorageInfo");
+
+  window_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "window");
+
+  $__getter___Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "__getter__", [__arg_0]);
+
+  alert_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "alert", []);
+
+  alert_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "alert", [__arg_0]);
+
+  blur_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "blur", []);
+
+  cancelAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", []);
+
+  cancelAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "cancelAnimationFrame", [__arg_0]);
+
+  captureEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "captureEvents", []);
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  confirm_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "confirm", []);
+
+  confirm_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "confirm", [__arg_0]);
+
+  createImageBitmap_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", []);
+
+  createImageBitmap_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0]);
+
+  createImageBitmap_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1]);
+
+  createImageBitmap_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2]);
+
+  createImageBitmap_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  createImageBitmap_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  fetch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fetch", []);
+
+  fetch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0]);
+
+  fetch_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0, __arg_1]);
+
+  find_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  find_Callback_6_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5]);
+
+  find_Callback_7_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6) => Blink_JsNative_DomException.callMethod(mthis, "find", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4, __arg_5, __arg_6]);
+
+  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
+
+  getComputedStyle_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", []);
+
+  getComputedStyle_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", [__arg_0]);
+
+  getComputedStyle_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getComputedStyle", [__arg_0, __arg_1]);
+
+  getMatchedCSSRules_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", []);
+
+  getMatchedCSSRules_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", [__arg_0]);
+
+  getMatchedCSSRules_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getMatchedCSSRules", [__arg_0, __arg_1]);
+
+  getSelection_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getSelection", []);
+
+  matchMedia_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "matchMedia", []);
+
+  matchMedia_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "matchMedia", [__arg_0]);
+
+  moveBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", []);
+
+  moveBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", [__arg_0]);
+
+  moveBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveBy", [__arg_0, __arg_1]);
+
+  moveTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", []);
+
+  moveTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0]);
+
+  moveTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "moveTo", [__arg_0, __arg_1]);
+
+  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
+
+  open_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0]);
+
+  open_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0, __arg_1]);
+
+  open_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0, __arg_1, __arg_2]);
+
+  openDatabase_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1]);
+
+  openDatabase_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2]);
+
+  openDatabase_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  openDatabase_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+
+  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+
+  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+
+  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+
+  postMessage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1, __arg_2]);
+
+  print_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "print", []);
+
+  prompt_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "prompt", []);
+
+  prompt_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "prompt", [__arg_0]);
+
+  prompt_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "prompt", [__arg_0, __arg_1]);
+
+  releaseEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseEvents", []);
+
+  requestAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", []);
+
+  requestAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", [__arg_0]);
+
+  resizeBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", []);
+
+  resizeBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", [__arg_0]);
+
+  resizeBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", [__arg_0, __arg_1]);
+
+  resizeTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", []);
+
+  resizeTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", [__arg_0]);
+
+  resizeTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", [__arg_0, __arg_1]);
+
+  scroll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scroll", []);
+
+  scroll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0]);
+
+  scroll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0, __arg_1]);
+
+  scroll_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0, __arg_1, __arg_2]);
+
+  scrollBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", []);
+
+  scrollBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0]);
+
+  scrollBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0, __arg_1]);
+
+  scrollBy_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0, __arg_1, __arg_2]);
+
+  scrollTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", []);
+
+  scrollTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0]);
+
+  scrollTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0, __arg_1]);
+
+  scrollTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0, __arg_1, __arg_2]);
+
+  stop_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stop", []);
+
+  webkitCancelAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelAnimationFrame", []);
+
+  webkitCancelAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelAnimationFrame", [__arg_0]);
+
+  webkitCancelRequestAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelRequestAnimationFrame", []);
+
+  webkitCancelRequestAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitCancelRequestAnimationFrame", [__arg_0]);
+
+  webkitRequestAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestAnimationFrame", []);
+
+  webkitRequestAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestAnimationFrame", [__arg_0]);
+
+  webkitRequestFileSystem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0]);
+
+  webkitRequestFileSystem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1]);
+
+  webkitRequestFileSystem_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2]);
+
+  webkitRequestFileSystem_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  webkitResolveLocalFileSystemURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", []);
+
+  webkitResolveLocalFileSystemURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0]);
+
+  webkitResolveLocalFileSystemURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1]);
+
+  webkitResolveLocalFileSystemURL_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1, __arg_2]);
+
+  onabort_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onabort");
+
+  onabort_Setter_(mthis, __arg_0) => mthis["onabort"] = __arg_0;
+
   onautocomplete_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onautocomplete");
 
   onautocomplete_Setter_(mthis, __arg_0) => mthis["onautocomplete"] = __arg_0;
@@ -16226,10 +22325,6 @@
 
   onautocompleteerror_Setter_(mthis, __arg_0) => mthis["onautocompleteerror"] = __arg_0;
 
-  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
-
-  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
-
   onblur_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onblur");
 
   onblur_Setter_(mthis, __arg_0) => mthis["onblur"] = __arg_0;
@@ -16270,18 +22365,6 @@
 
   ondblclick_Setter_(mthis, __arg_0) => mthis["ondblclick"] = __arg_0;
 
-  ondevicelight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondevicelight");
-
-  ondevicelight_Setter_(mthis, __arg_0) => mthis["ondevicelight"] = __arg_0;
-
-  ondevicemotion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondevicemotion");
-
-  ondevicemotion_Setter_(mthis, __arg_0) => mthis["ondevicemotion"] = __arg_0;
-
-  ondeviceorientation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondeviceorientation");
-
-  ondeviceorientation_Setter_(mthis, __arg_0) => mthis["ondeviceorientation"] = __arg_0;
-
   ondrag_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ondrag");
 
   ondrag_Setter_(mthis, __arg_0) => mthis["ondrag"] = __arg_0;
@@ -16330,10 +22413,6 @@
 
   onfocus_Setter_(mthis, __arg_0) => mthis["onfocus"] = __arg_0;
 
-  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
-
-  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
-
   oninput_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "oninput");
 
   oninput_Setter_(mthis, __arg_0) => mthis["oninput"] = __arg_0;
@@ -16354,10 +22433,6 @@
 
   onkeyup_Setter_(mthis, __arg_0) => mthis["onkeyup"] = __arg_0;
 
-  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
-
-  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
-
   onload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onload");
 
   onload_Setter_(mthis, __arg_0) => mthis["onload"] = __arg_0;
@@ -16374,10 +22449,6 @@
 
   onloadstart_Setter_(mthis, __arg_0) => mthis["onloadstart"] = __arg_0;
 
-  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
-
-  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
-
   onmousedown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmousedown");
 
   onmousedown_Setter_(mthis, __arg_0) => mthis["onmousedown"] = __arg_0;
@@ -16410,26 +22481,6 @@
 
   onmousewheel_Setter_(mthis, __arg_0) => mthis["onmousewheel"] = __arg_0;
 
-  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
-
-  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
-
-  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
-
-  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
-
-  onorientationchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onorientationchange");
-
-  onorientationchange_Setter_(mthis, __arg_0) => mthis["onorientationchange"] = __arg_0;
-
-  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
-
-  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
-
-  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
-
-  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
-
   onpause_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpause");
 
   onpause_Setter_(mthis, __arg_0) => mthis["onpause"] = __arg_0;
@@ -16442,9 +22493,37 @@
 
   onplaying_Setter_(mthis, __arg_0) => mthis["onplaying"] = __arg_0;
 
-  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
+  onpointercancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointercancel");
 
-  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
+  onpointercancel_Setter_(mthis, __arg_0) => mthis["onpointercancel"] = __arg_0;
+
+  onpointerdown_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerdown");
+
+  onpointerdown_Setter_(mthis, __arg_0) => mthis["onpointerdown"] = __arg_0;
+
+  onpointerenter_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerenter");
+
+  onpointerenter_Setter_(mthis, __arg_0) => mthis["onpointerenter"] = __arg_0;
+
+  onpointerleave_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerleave");
+
+  onpointerleave_Setter_(mthis, __arg_0) => mthis["onpointerleave"] = __arg_0;
+
+  onpointermove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointermove");
+
+  onpointermove_Setter_(mthis, __arg_0) => mthis["onpointermove"] = __arg_0;
+
+  onpointerout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerout");
+
+  onpointerout_Setter_(mthis, __arg_0) => mthis["onpointerout"] = __arg_0;
+
+  onpointerover_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerover");
+
+  onpointerover_Setter_(mthis, __arg_0) => mthis["onpointerover"] = __arg_0;
+
+  onpointerup_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpointerup");
+
+  onpointerup_Setter_(mthis, __arg_0) => mthis["onpointerup"] = __arg_0;
 
   onprogress_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onprogress");
 
@@ -16466,10 +22545,6 @@
 
   onscroll_Setter_(mthis, __arg_0) => mthis["onscroll"] = __arg_0;
 
-  onsearch_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsearch");
-
-  onsearch_Setter_(mthis, __arg_0) => mthis["onsearch"] = __arg_0;
-
   onseeked_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onseeked");
 
   onseeked_Setter_(mthis, __arg_0) => mthis["onseeked"] = __arg_0;
@@ -16490,10 +22565,6 @@
 
   onstalled_Setter_(mthis, __arg_0) => mthis["onstalled"] = __arg_0;
 
-  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
-
-  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
-
   onsubmit_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onsubmit");
 
   onsubmit_Setter_(mthis, __arg_0) => mthis["onsubmit"] = __arg_0;
@@ -16510,30 +22581,6 @@
 
   ontoggle_Setter_(mthis, __arg_0) => mthis["ontoggle"] = __arg_0;
 
-  ontouchcancel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchcancel");
-
-  ontouchcancel_Setter_(mthis, __arg_0) => mthis["ontouchcancel"] = __arg_0;
-
-  ontouchend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchend");
-
-  ontouchend_Setter_(mthis, __arg_0) => mthis["ontouchend"] = __arg_0;
-
-  ontouchmove_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchmove");
-
-  ontouchmove_Setter_(mthis, __arg_0) => mthis["ontouchmove"] = __arg_0;
-
-  ontouchstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontouchstart");
-
-  ontouchstart_Setter_(mthis, __arg_0) => mthis["ontouchstart"] = __arg_0;
-
-  ontransitionend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ontransitionend");
-
-  ontransitionend_Setter_(mthis, __arg_0) => mthis["ontransitionend"] = __arg_0;
-
-  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
-
-  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
-
   onvolumechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onvolumechange");
 
   onvolumechange_Setter_(mthis, __arg_0) => mthis["onvolumechange"] = __arg_0;
@@ -16542,133 +22589,73 @@
 
   onwaiting_Setter_(mthis, __arg_0) => mthis["onwaiting"] = __arg_0;
 
-  onwebkitanimationend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationend");
+  atob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "atob", []);
 
-  onwebkitanimationend_Setter_(mthis, __arg_0) => mthis["onwebkitanimationend"] = __arg_0;
+  atob_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "atob", [__arg_0]);
 
-  onwebkitanimationiteration_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationiteration");
+  btoa_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "btoa", []);
 
-  onwebkitanimationiteration_Setter_(mthis, __arg_0) => mthis["onwebkitanimationiteration"] = __arg_0;
+  btoa_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "btoa", [__arg_0]);
 
-  onwebkitanimationstart_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitanimationstart");
+  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
 
-  onwebkitanimationstart_Setter_(mthis, __arg_0) => mthis["onwebkitanimationstart"] = __arg_0;
+  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
 
-  onwebkittransitionend_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkittransitionend");
+  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
 
-  onwebkittransitionend_Setter_(mthis, __arg_0) => mthis["onwebkittransitionend"] = __arg_0;
+  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
 
-  onwheel_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwheel");
+  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
 
-  onwheel_Setter_(mthis, __arg_0) => mthis["onwheel"] = __arg_0;
+  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
 
-  openDatabase_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1]);
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
 
-  openDatabase_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2]);
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
 
-  openDatabase_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2, __arg_3]);
+  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
 
-  openDatabase_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "openDatabase", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
+  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
 
-  open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
+  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
 
-  open_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0]);
+  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
 
-  open_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0, __arg_1]);
+  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
 
-  open_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0, __arg_1, __arg_2]);
+  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
 
-  opener_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "opener");
+  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
 
-  opener_Setter_(mthis, __arg_0) => mthis["opener"] = __arg_0;
+  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
 
-  orientation_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "orientation");
+  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
 
-  outerHeight_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outerHeight");
+  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
 
-  outerWidth_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "outerWidth");
+  onrejectionhandled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onrejectionhandled");
 
-  pageXOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageXOffset");
+  onrejectionhandled_Setter_(mthis, __arg_0) => mthis["onrejectionhandled"] = __arg_0;
 
-  pageYOffset_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "pageYOffset");
+  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
 
-  parent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "parent");
+  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
 
-  performance_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "performance");
+  onunhandledrejection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunhandledrejection");
 
-  personalbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "personalbar");
+  onunhandledrejection_Setter_(mthis, __arg_0) => mthis["onunhandledrejection"] = __arg_0;
 
-  postMessage_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", []);
+  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
 
-  postMessage_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0]);
+  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
 
-  postMessage_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1]);
+  clearInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", []);
 
-  postMessage_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "postMessage", [__arg_0, __arg_1, __arg_2]);
+  clearInterval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", [__arg_0]);
 
-  print_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "print", []);
+  clearTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", []);
 
-  releaseEvents_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "releaseEvents", []);
-
-  requestAnimationFrame_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", []);
-
-  requestAnimationFrame_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "requestAnimationFrame", [__arg_0]);
-
-  resizeBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", []);
-
-  resizeBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", [__arg_0]);
-
-  resizeBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "resizeBy", [__arg_0, __arg_1]);
-
-  resizeTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", []);
-
-  resizeTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", [__arg_0]);
-
-  resizeTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "resizeTo", [__arg_0, __arg_1]);
-
-  screenLeft_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenLeft");
-
-  screenTop_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenTop");
-
-  screenX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenX");
-
-  screenY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screenY");
-
-  screen_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "screen");
-
-  scrollBy_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", []);
-
-  scrollBy_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0]);
-
-  scrollBy_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0, __arg_1]);
-
-  scrollBy_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scrollBy", [__arg_0, __arg_1, __arg_2]);
-
-  scrollTo_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", []);
-
-  scrollTo_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0]);
-
-  scrollTo_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0, __arg_1]);
-
-  scrollTo_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scrollTo", [__arg_0, __arg_1, __arg_2]);
-
-  scrollX_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollX");
-
-  scrollY_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollY");
-
-  scroll_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "scroll", []);
-
-  scroll_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0]);
-
-  scroll_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0, __arg_1]);
-
-  scroll_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "scroll", [__arg_0, __arg_1, __arg_2]);
-
-  scrollbars_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "scrollbars");
-
-  self_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "self");
-
-  sessionStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "sessionStorage");
+  clearTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", [__arg_0]);
 
   setInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", []);
 
@@ -16676,55 +22663,125 @@
 
   setInterval_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1]);
 
+  setInterval_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1, __arg_2]);
+
   setTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", []);
 
   setTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0]);
 
   setTimeout_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1]);
 
-  showModalDialog_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "showModalDialog", []);
+  setTimeout_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1, __arg_2]);
 
-  showModalDialog_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "showModalDialog", [__arg_0]);
+}
 
-  showModalDialog_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "showModalDialog", [__arg_0, __arg_1]);
+class BlinkWindowBase64 {
+  static final instance = new BlinkWindowBase64();
 
-  showModalDialog_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "showModalDialog", [__arg_0, __arg_1, __arg_2]);
+  atob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "atob", []);
 
-  speechSynthesis_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "speechSynthesis");
+  atob_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "atob", [__arg_0]);
 
-  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+  btoa_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "btoa", []);
 
-  status_Setter_(mthis, __arg_0) => mthis["status"] = __arg_0;
+  btoa_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "btoa", [__arg_0]);
 
-  statusbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusbar");
+}
 
-  stop_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "stop", []);
+class BlinkWindowClient extends BlinkClient {
+  static final instance = new BlinkWindowClient();
 
-  styleMedia_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "styleMedia");
+  focused_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "focused");
 
-  toolbar_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "toolbar");
+  visibilityState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "visibilityState");
 
-  top_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "top");
+  focus_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "focus", []);
 
-  webkitRequestFileSystem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0]);
+}
 
-  webkitRequestFileSystem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1]);
+class BlinkWindowEventHandlers {
+  static final instance = new BlinkWindowEventHandlers();
 
-  webkitRequestFileSystem_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2]);
+  onbeforeunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onbeforeunload");
 
-  webkitRequestFileSystem_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2, __arg_3]);
+  onbeforeunload_Setter_(mthis, __arg_0) => mthis["onbeforeunload"] = __arg_0;
 
-  webkitResolveLocalFileSystemURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", []);
+  onhashchange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onhashchange");
 
-  webkitResolveLocalFileSystemURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0]);
+  onhashchange_Setter_(mthis, __arg_0) => mthis["onhashchange"] = __arg_0;
 
-  webkitResolveLocalFileSystemURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1]);
+  onlanguagechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onlanguagechange");
 
-  webkitResolveLocalFileSystemURL_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1, __arg_2]);
+  onlanguagechange_Setter_(mthis, __arg_0) => mthis["onlanguagechange"] = __arg_0;
 
-  webkitStorageInfo_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitStorageInfo");
+  onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
 
-  window_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "window");
+  onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
+
+  onoffline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onoffline");
+
+  onoffline_Setter_(mthis, __arg_0) => mthis["onoffline"] = __arg_0;
+
+  ononline_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "ononline");
+
+  ononline_Setter_(mthis, __arg_0) => mthis["ononline"] = __arg_0;
+
+  onpagehide_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpagehide");
+
+  onpagehide_Setter_(mthis, __arg_0) => mthis["onpagehide"] = __arg_0;
+
+  onpageshow_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpageshow");
+
+  onpageshow_Setter_(mthis, __arg_0) => mthis["onpageshow"] = __arg_0;
+
+  onpopstate_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onpopstate");
+
+  onpopstate_Setter_(mthis, __arg_0) => mthis["onpopstate"] = __arg_0;
+
+  onrejectionhandled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onrejectionhandled");
+
+  onrejectionhandled_Setter_(mthis, __arg_0) => mthis["onrejectionhandled"] = __arg_0;
+
+  onstorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onstorage");
+
+  onstorage_Setter_(mthis, __arg_0) => mthis["onstorage"] = __arg_0;
+
+  onunhandledrejection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunhandledrejection");
+
+  onunhandledrejection_Setter_(mthis, __arg_0) => mthis["onunhandledrejection"] = __arg_0;
+
+  onunload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunload");
+
+  onunload_Setter_(mthis, __arg_0) => mthis["onunload"] = __arg_0;
+
+}
+
+class BlinkWindowTimers {
+  static final instance = new BlinkWindowTimers();
+
+  clearInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", []);
+
+  clearInterval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearInterval", [__arg_0]);
+
+  clearTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", []);
+
+  clearTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", [__arg_0]);
+
+  setInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", []);
+
+  setInterval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0]);
+
+  setInterval_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1]);
+
+  setInterval_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1, __arg_2]);
+
+  setTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", []);
+
+  setTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0]);
+
+  setTimeout_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1]);
+
+  setTimeout_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1, __arg_2]);
 
 }
 
@@ -16735,10 +22792,6 @@
 
   constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "Worker"), [__arg_0]);
 
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
   onmessage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onmessage");
 
   onmessage_Setter_(mthis, __arg_0) => mthis["onmessage"] = __arg_0;
@@ -16751,6 +22804,10 @@
 
   terminate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "terminate", []);
 
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
 }
 
 class BlinkWorkerConsole extends BlinkConsoleBase {
@@ -16761,6 +22818,76 @@
 class BlinkWorkerGlobalScope extends BlinkEventTarget {
   static final instance = new BlinkWorkerGlobalScope();
 
+  caches_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "caches");
+
+  console_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "console");
+
+  crypto_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "crypto");
+
+  indexedDB_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "indexedDB");
+
+  location_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "location");
+
+  navigator_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "navigator");
+
+  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
+
+  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
+
+  onrejectionhandled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onrejectionhandled");
+
+  onrejectionhandled_Setter_(mthis, __arg_0) => mthis["onrejectionhandled"] = __arg_0;
+
+  onunhandledrejection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onunhandledrejection");
+
+  onunhandledrejection_Setter_(mthis, __arg_0) => mthis["onunhandledrejection"] = __arg_0;
+
+  performance_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "performance");
+
+  self_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "self");
+
+  webkitIndexedDB_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitIndexedDB");
+
+  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
+
+  fetch_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "fetch", []);
+
+  fetch_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0]);
+
+  fetch_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "fetch", [__arg_0, __arg_1]);
+
+  importScripts_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "importScripts", []);
+
+  importScripts_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "importScripts", [__arg_0]);
+
+  webkitRequestFileSystem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", []);
+
+  webkitRequestFileSystem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0]);
+
+  webkitRequestFileSystem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1]);
+
+  webkitRequestFileSystem_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2]);
+
+  webkitRequestFileSystem_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2, __arg_3]);
+
+  webkitRequestFileSystemSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", []);
+
+  webkitRequestFileSystemSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", [__arg_0]);
+
+  webkitRequestFileSystemSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", [__arg_0, __arg_1]);
+
+  webkitResolveLocalFileSystemSyncURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemSyncURL", []);
+
+  webkitResolveLocalFileSystemSyncURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemSyncURL", [__arg_0]);
+
+  webkitResolveLocalFileSystemURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", []);
+
+  webkitResolveLocalFileSystemURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0]);
+
+  webkitResolveLocalFileSystemURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1]);
+
+  webkitResolveLocalFileSystemURL_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1, __arg_2]);
+
   atob_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "atob", []);
 
   atob_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "atob", [__arg_0]);
@@ -16777,79 +22904,21 @@
 
   clearTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearTimeout", [__arg_0]);
 
-  close_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "close", []);
-
-  console_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "console");
-
-  createImageBitmap_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", []);
-
-  createImageBitmap_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0]);
-
-  createImageBitmap_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2]);
-
-  createImageBitmap_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  createImageBitmap_Callback_5_(mthis, __arg_0, __arg_1, __arg_2, __arg_3, __arg_4) => Blink_JsNative_DomException.callMethod(mthis, "createImageBitmap", [__arg_0, __arg_1, __arg_2, __arg_3, __arg_4]);
-
-  crypto_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "crypto");
-
-  importScripts_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "importScripts", []);
-
-  importScripts_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "importScripts", [__arg_0]);
-
-  indexedDB_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "indexedDB");
-
-  location_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "location");
-
-  navigator_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "navigator");
-
-  onerror_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onerror");
-
-  onerror_Setter_(mthis, __arg_0) => mthis["onerror"] = __arg_0;
-
-  performance_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "performance");
-
-  self_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "self");
-
   setInterval_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", []);
 
   setInterval_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0]);
 
   setInterval_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1]);
 
+  setInterval_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setInterval", [__arg_0, __arg_1, __arg_2]);
+
   setTimeout_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", []);
 
   setTimeout_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0]);
 
   setTimeout_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1]);
 
-  webkitRequestFileSystemSync_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", []);
-
-  webkitRequestFileSystemSync_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", [__arg_0]);
-
-  webkitRequestFileSystemSync_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystemSync", [__arg_0, __arg_1]);
-
-  webkitRequestFileSystem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", []);
-
-  webkitRequestFileSystem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0]);
-
-  webkitRequestFileSystem_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1]);
-
-  webkitRequestFileSystem_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2]);
-
-  webkitRequestFileSystem_Callback_4_(mthis, __arg_0, __arg_1, __arg_2, __arg_3) => Blink_JsNative_DomException.callMethod(mthis, "webkitRequestFileSystem", [__arg_0, __arg_1, __arg_2, __arg_3]);
-
-  webkitResolveLocalFileSystemSyncURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemSyncURL", []);
-
-  webkitResolveLocalFileSystemSyncURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemSyncURL", [__arg_0]);
-
-  webkitResolveLocalFileSystemURL_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", []);
-
-  webkitResolveLocalFileSystemURL_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0]);
-
-  webkitResolveLocalFileSystemURL_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1]);
-
-  webkitResolveLocalFileSystemURL_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "webkitResolveLocalFileSystemURL", [__arg_0, __arg_1, __arg_2]);
+  setTimeout_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "setTimeout", [__arg_0, __arg_1, __arg_2]);
 
 }
 
@@ -16881,41 +22950,85 @@
 class BlinkWorkerNavigator {
   static final instance = new BlinkWorkerNavigator();
 
+  connection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connection");
+
+  geofencing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "geofencing");
+
+  permissions_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "permissions");
+
+  services_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "services");
+
+  webkitPersistentStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitPersistentStorage");
+
+  webkitTemporaryStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitTemporaryStorage");
+
+  hardwareConcurrency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareConcurrency");
+
   appCodeName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appCodeName");
 
   appName_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appName");
 
   appVersion_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "appVersion");
 
-  connection_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "connection");
-
   dartEnabled_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "dartEnabled");
 
-  geofencing_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "geofencing");
-
-  hardwareConcurrency_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "hardwareConcurrency");
-
-  onLine_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onLine");
-
   platform_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "platform");
 
   product_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "product");
 
   userAgent_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "userAgent");
 
-  webkitPersistentStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitPersistentStorage");
-
-  webkitTemporaryStorage_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "webkitTemporaryStorage");
+  onLine_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onLine");
 
 }
 
-class BlinkWorkerPerformance {
+class BlinkWorkerPerformance extends BlinkEventTarget {
   static final instance = new BlinkWorkerPerformance();
 
   memory_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "memory");
 
+  onwebkitresourcetimingbufferfull_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onwebkitresourcetimingbufferfull");
+
+  onwebkitresourcetimingbufferfull_Setter_(mthis, __arg_0) => mthis["onwebkitresourcetimingbufferfull"] = __arg_0;
+
+  clearMarks_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearMarks", []);
+
+  clearMarks_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearMarks", [__arg_0]);
+
+  clearMeasures_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearMeasures", []);
+
+  clearMeasures_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "clearMeasures", [__arg_0]);
+
+  getEntries_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntries", []);
+
+  getEntriesByName_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByName", []);
+
+  getEntriesByName_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByName", [__arg_0]);
+
+  getEntriesByName_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByName", [__arg_0, __arg_1]);
+
+  getEntriesByType_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByType", []);
+
+  getEntriesByType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getEntriesByType", [__arg_0]);
+
+  mark_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "mark", []);
+
+  mark_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "mark", [__arg_0]);
+
+  measure_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0]);
+
+  measure_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0, __arg_1]);
+
+  measure_Callback_3_(mthis, __arg_0, __arg_1, __arg_2) => Blink_JsNative_DomException.callMethod(mthis, "measure", [__arg_0, __arg_1, __arg_2]);
+
   now_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "now", []);
 
+  webkitClearResourceTimings_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitClearResourceTimings", []);
+
+  webkitSetResourceTimingBufferSize_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "webkitSetResourceTimingBufferSize", []);
+
+  webkitSetResourceTimingBufferSize_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "webkitSetResourceTimingBufferSize", [__arg_0]);
+
 }
 
 class BlinkXMLDocument extends BlinkDocument {
@@ -16926,11 +23039,41 @@
 class BlinkXMLHttpRequest extends BlinkXMLHttpRequestEventTarget {
   static final instance = new BlinkXMLHttpRequest();
 
-  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "XMLHttpRequest"), []);
 
-  constructorCallback_1_(__arg_0) => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "XMLHttpRequest"), [__arg_0]);
+  onreadystatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreadystatechange");
+
+  onreadystatechange_Setter_(mthis, __arg_0) => mthis["onreadystatechange"] = __arg_0;
+
+  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
+
+  response_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "response");
+
+  responseText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseText");
+
+  responseType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseType");
+
+  responseType_Setter_(mthis, __arg_0) => mthis["responseType"] = __arg_0;
+
+  responseURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseURL");
+
+  responseXML_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseXML");
+
+  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
+
+  statusText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusText");
+
+  timeout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeout");
+
+  timeout_Setter_(mthis, __arg_0) => mthis["timeout"] = __arg_0;
+
+  upload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upload");
+
+  withCredentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "withCredentials");
+
+  withCredentials_Setter_(mthis, __arg_0) => mthis["withCredentials"] = __arg_0;
+
+  abort_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "abort", []);
 
   getAllResponseHeaders_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getAllResponseHeaders", []);
 
@@ -16938,10 +23081,6 @@
 
   getResponseHeader_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getResponseHeader", [__arg_0]);
 
-  onreadystatechange_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "onreadystatechange");
-
-  onreadystatechange_Setter_(mthis, __arg_0) => mthis["onreadystatechange"] = __arg_0;
-
   open_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "open", []);
 
   open_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "open", [__arg_0]);
@@ -16958,20 +23097,6 @@
 
   overrideMimeType_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "overrideMimeType", [__arg_0]);
 
-  readyState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "readyState");
-
-  responseText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseText");
-
-  responseType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseType");
-
-  responseType_Setter_(mthis, __arg_0) => mthis["responseType"] = __arg_0;
-
-  responseURL_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseURL");
-
-  responseXML_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "responseXML");
-
-  response_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "response");
-
   send_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "send", []);
 
   send_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "send", [__arg_0]);
@@ -16982,20 +23107,6 @@
 
   setRequestHeader_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "setRequestHeader", [__arg_0, __arg_1]);
 
-  statusText_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "statusText");
-
-  status_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "status");
-
-  timeout_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "timeout");
-
-  timeout_Setter_(mthis, __arg_0) => mthis["timeout"] = __arg_0;
-
-  upload_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "upload");
-
-  withCredentials_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "withCredentials");
-
-  withCredentials_Setter_(mthis, __arg_0) => mthis["withCredentials"] = __arg_0;
-
 }
 
 class BlinkXMLHttpRequestEventTarget extends BlinkEventTarget {
@@ -17071,8 +23182,6 @@
 
   createNSResolver_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "createNSResolver", [__arg_0]);
 
-  evaluate_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", []);
-
   evaluate_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0]);
 
   evaluate_Callback_2_(mthis, __arg_0, __arg_1) => Blink_JsNative_DomException.callMethod(mthis, "evaluate", [__arg_0, __arg_1]);
@@ -17114,31 +23223,31 @@
 
   invalidIteratorState_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "invalidIteratorState");
 
-  iterateNext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "iterateNext", []);
-
   numberValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "numberValue");
 
   resultType_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "resultType");
 
   singleNodeValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "singleNodeValue");
 
-  snapshotItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "snapshotItem", []);
-
-  snapshotItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "snapshotItem", [__arg_0]);
-
   snapshotLength_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "snapshotLength");
 
   stringValue_Getter_(mthis) => Blink_JsNative_DomException.getProperty(mthis, "stringValue");
 
+  iterateNext_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "iterateNext", []);
+
+  snapshotItem_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "snapshotItem", []);
+
+  snapshotItem_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "snapshotItem", [__arg_0]);
+
 }
 
 class BlinkXSLTProcessor {
   static final instance = new BlinkXSLTProcessor();
 
-  clearParameters_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearParameters", []);
-
   constructorCallback_0_() => new js.JsObject(Blink_JsNative_DomException.getProperty(js.context, "XSLTProcessor"), []);
 
+  clearParameters_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "clearParameters", []);
+
   getParameter_Callback_0_(mthis) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", []);
 
   getParameter_Callback_1_(mthis, __arg_0) => Blink_JsNative_DomException.callMethod(mthis, "getParameter", [__arg_0]);
@@ -17262,5 +23371,4 @@
       throw new DomException.jsInterop(e);
     }
   }
-}
-
+}
\ No newline at end of file
diff --git a/sdk/lib/convert/line_splitter.dart b/sdk/lib/convert/line_splitter.dart
index b5ec32b..b9023f4 100644
--- a/sdk/lib/convert/line_splitter.dart
+++ b/sdk/lib/convert/line_splitter.dart
@@ -49,7 +49,29 @@
     }
   }
 
-  List<String> convert(String data) => split(data).toList();
+  List<String> convert(String data) {
+    List<String> lines = <String>[];
+    int end = data.length;
+    int sliceStart = 0;
+    int char = 0;
+    for (int i = 0; i < end; i++) {
+      int previousChar = char;
+      char = data.codeUnitAt(i);
+      if (char != _CR) {
+        if (char != _LF) continue;
+        if (previousChar == _CR) {
+          sliceStart = i + 1;
+          continue;
+        }
+      }
+      lines.add(data.substring(sliceStart, i));
+      sliceStart = i + 1;
+    }
+    if (sliceStart < end) {
+      lines.add(data.substring(sliceStart, end));
+    }
+    return lines;
+  }
 
   StringConversionSink startChunkedConversion(Sink<String> sink) {
     if (sink is! StringConversionSink) {
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 25dce9d..dc2593b 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -187,11 +187,6 @@
   @DocsEditable()
   String hreflang;
 
-  @DomName('HTMLAnchorElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLAnchorElement.rel')
   @DocsEditable()
   String rel;
@@ -268,180 +263,79 @@
 @DomName('Animation')
 @Experimental() // untriaged
 @Native("Animation")
-class Animation extends AnimationNode {
+class Animation extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory Animation._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('Animation.Animation')
-  @DocsEditable()
-  factory Animation(Element target, List<Map> keyframes, [timingInput]) {
-    if ((keyframes is List<Map> || keyframes == null) && (target is Element || target == null) && timingInput == null) {
-      return Animation._create_1(target, keyframes);
-    }
-    if ((timingInput is num || timingInput == null) && (keyframes is List<Map> || keyframes == null) && (target is Element || target == null)) {
-      return Animation._create_2(target, keyframes, timingInput);
-    }
-    if ((timingInput is Map || timingInput == null) && (keyframes is List<Map> || keyframes == null) && (target is Element || target == null)) {
-      var timingInput_1 = convertDartToNative_Dictionary(timingInput);
-      return Animation._create_3(target, keyframes, timingInput_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  static Animation _create_1(target, keyframes) => JS('Animation', 'new Animation(#,#)', target, keyframes);
-  static Animation _create_2(target, keyframes, timingInput) => JS('Animation', 'new Animation(#,#,#)', target, keyframes, timingInput);
-  static Animation _create_3(target, keyframes, timingInput) => JS('Animation', 'new Animation(#,#,#)', target, keyframes, timingInput);
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('AnimationEffect')
-@Experimental() // untriaged
-@Native("AnimationEffect")
-class AnimationEffect extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationEffect._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('WebKitAnimationEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-@Native("WebKitAnimationEvent")
-class AnimationEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationEvent._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('WebKitAnimationEvent.animationName')
-  @DocsEditable()
-  final String animationName;
-
-  @DomName('WebKitAnimationEvent.elapsedTime')
-  @DocsEditable()
-  final double elapsedTime;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('AnimationNode')
-@Experimental() // untriaged
-@Native("AnimationNode")
-class AnimationNode extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationNode._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('AnimationNode.activeDuration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double activeDuration;
-
-  @DomName('AnimationNode.currentIteration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int currentIteration;
-
-  @DomName('AnimationNode.duration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double duration;
-
-  @DomName('AnimationNode.endTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double endTime;
-
-  @DomName('AnimationNode.localTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double localTime;
-
-  @DomName('AnimationNode.player')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final AnimationPlayer player;
-
-  @DomName('AnimationNode.startTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final double startTime;
-
-  @DomName('AnimationNode.timing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Timing timing;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('AnimationPlayer')
-@Experimental() // untriaged
-@Native("AnimationPlayer")
-class AnimationPlayer extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationPlayer._() { throw new UnsupportedError("Not supported"); }
-
   /// Checks if this type is supported on the current platform.
   static bool get supported => JS('bool', '!!(document.body.animate)');
 
-  @DomName('AnimationPlayer.currentTime')
+  @DomName('Animation.currentTime')
   @DocsEditable()
   @Experimental() // untriaged
   num currentTime;
 
-  @DomName('AnimationPlayer.playState')
+  @DomName('Animation.effect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AnimationEffectReadOnly effect;
+
+  @DomName('Animation.endClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num endClip;
+
+  @DomName('Animation.finished')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Future finished;
+
+  @DomName('Animation.playState')
   @DocsEditable()
   @Experimental() // untriaged
   final String playState;
 
-  @DomName('AnimationPlayer.playbackRate')
+  @DomName('Animation.playbackRate')
   @DocsEditable()
   @Experimental() // untriaged
   num playbackRate;
 
-  @DomName('AnimationPlayer.source')
+  @DomName('Animation.ready')
   @DocsEditable()
   @Experimental() // untriaged
-  AnimationNode source;
+  final Future ready;
 
-  @DomName('AnimationPlayer.startTime')
+  @DomName('Animation.startClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num startClip;
+
+  @DomName('Animation.startTime')
   @DocsEditable()
   @Experimental() // untriaged
   num startTime;
 
-  @DomName('AnimationPlayer.cancel')
+  @DomName('Animation.cancel')
   @DocsEditable()
   @Experimental() // untriaged
   void cancel() native;
 
-  @DomName('AnimationPlayer.finish')
+  @DomName('Animation.finish')
   @DocsEditable()
   @Experimental() // untriaged
   void finish() native;
 
-  @DomName('AnimationPlayer.pause')
+  @DomName('Animation.pause')
   @DocsEditable()
   @Experimental() // untriaged
   void pause() native;
 
-  @DomName('AnimationPlayer.play')
+  @DomName('Animation.play')
   @DocsEditable()
   @Experimental() // untriaged
   void play() native;
 
-  @DomName('AnimationPlayer.reverse')
+  @DomName('Animation.reverse')
   @DocsEditable()
   @Experimental() // untriaged
   void reverse() native;
@@ -452,6 +346,129 @@
 
 
 @DocsEditable()
+@DomName('AnimationEffectReadOnly')
+@Experimental() // untriaged
+@Native("AnimationEffectReadOnly")
+class AnimationEffectReadOnly extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory AnimationEffectReadOnly._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('AnimationEffectReadOnly.computedTiming')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Map get computedTiming => convertNativeToDart_Dictionary(this._get_computedTiming);
+  @JSName('computedTiming')
+  @DomName('AnimationEffectReadOnly.computedTiming')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final dynamic _get_computedTiming;
+
+  @DomName('AnimationEffectReadOnly.timing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final AnimationEffectTiming timing;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('AnimationEffectTiming')
+@Experimental() // untriaged
+@Native("AnimationEffectTiming")
+class AnimationEffectTiming extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory AnimationEffectTiming._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('AnimationEffectTiming.delay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num delay;
+
+  @DomName('AnimationEffectTiming.direction')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String direction;
+
+  @DomName('AnimationEffectTiming.duration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  @Creates('Null')
+  @Returns('num|String')
+  Object duration;
+
+  @DomName('AnimationEffectTiming.easing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String easing;
+
+  @DomName('AnimationEffectTiming.endDelay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num endDelay;
+
+  @DomName('AnimationEffectTiming.fill')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String fill;
+
+  @DomName('AnimationEffectTiming.iterationStart')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num iterationStart;
+
+  @DomName('AnimationEffectTiming.iterations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num iterations;
+
+  @DomName('AnimationEffectTiming.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num playbackRate;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('AnimationEvent')
+@Experimental() // untriaged
+@Native("AnimationEvent")
+class AnimationEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory AnimationEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('AnimationEvent.AnimationEvent')
+  @DocsEditable()
+  factory AnimationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return AnimationEvent._create_1(type, eventInitDict_1);
+    }
+    return AnimationEvent._create_2(type);
+  }
+  static AnimationEvent _create_1(type, eventInitDict) => JS('AnimationEvent', 'new AnimationEvent(#,#)', type, eventInitDict);
+  static AnimationEvent _create_2(type) => JS('AnimationEvent', 'new AnimationEvent(#)', type);
+
+  @DomName('AnimationEvent.animationName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String animationName;
+
+  @DomName('AnimationEvent.elapsedTime')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double elapsedTime;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('AnimationPlayerEvent')
 @Experimental() // untriaged
 @Native("AnimationPlayerEvent")
@@ -459,6 +476,18 @@
   // To suppress missing implicit constructor warnings.
   factory AnimationPlayerEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('AnimationPlayerEvent.AnimationPlayerEvent')
+  @DocsEditable()
+  factory AnimationPlayerEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return AnimationPlayerEvent._create_1(type, eventInitDict_1);
+    }
+    return AnimationPlayerEvent._create_2(type);
+  }
+  static AnimationPlayerEvent _create_1(type, eventInitDict) => JS('AnimationPlayerEvent', 'new AnimationPlayerEvent(#,#)', type, eventInitDict);
+  static AnimationPlayerEvent _create_2(type) => JS('AnimationPlayerEvent', 'new AnimationPlayerEvent(#)', type);
+
   @DomName('AnimationPlayerEvent.currentTime')
   @DocsEditable()
   @Experimental() // untriaged
@@ -485,17 +514,45 @@
   @DomName('AnimationTimeline.currentTime')
   @DocsEditable()
   @Experimental() // untriaged
-  final double currentTime;
+  num currentTime;
 
-  @DomName('AnimationTimeline.getAnimationPlayers')
+  @DomName('AnimationTimeline.playbackRate')
   @DocsEditable()
   @Experimental() // untriaged
-  List<AnimationPlayer> getAnimationPlayers() native;
+  num playbackRate;
+
+  @DomName('AnimationTimeline.getAnimations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Animation> getAnimations() native;
 
   @DomName('AnimationTimeline.play')
   @DocsEditable()
   @Experimental() // untriaged
-  AnimationPlayer play(AnimationNode source) native;
+  Animation play(AnimationEffectReadOnly source) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('AppBannerPromptResult')
+@Experimental() // untriaged
+@Native("AppBannerPromptResult")
+class AppBannerPromptResult extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory AppBannerPromptResult._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('AppBannerPromptResult.outcome')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String outcome;
+
+  @DomName('AppBannerPromptResult.platform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String platform;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -694,6 +751,18 @@
   // To suppress missing implicit constructor warnings.
   factory ApplicationCacheErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ApplicationCacheErrorEvent.ApplicationCacheErrorEvent')
+  @DocsEditable()
+  factory ApplicationCacheErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return ApplicationCacheErrorEvent._create_2(type);
+  }
+  static ApplicationCacheErrorEvent _create_1(type, eventInitDict) => JS('ApplicationCacheErrorEvent', 'new ApplicationCacheErrorEvent(#,#)', type, eventInitDict);
+  static ApplicationCacheErrorEvent _create_2(type) => JS('ApplicationCacheErrorEvent', 'new ApplicationCacheErrorEvent(#)', type);
+
   @DomName('ApplicationCacheErrorEvent.message')
   @DocsEditable()
   @Experimental() // untriaged
@@ -935,6 +1004,18 @@
   // To suppress missing implicit constructor warnings.
   factory AutocompleteErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('AutocompleteErrorEvent.AutocompleteErrorEvent')
+  @DocsEditable()
+  factory AutocompleteErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return AutocompleteErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return AutocompleteErrorEvent._create_2(type);
+  }
+  static AutocompleteErrorEvent _create_1(type, eventInitDict) => JS('AutocompleteErrorEvent', 'new AutocompleteErrorEvent(#,#)', type, eventInitDict);
+  static AutocompleteErrorEvent _create_2(type) => JS('AutocompleteErrorEvent', 'new AutocompleteErrorEvent(#)', type);
+
   @DomName('AutocompleteErrorEvent.reason')
   @DocsEditable()
   final String reason;
@@ -1045,6 +1126,43 @@
 
 
 @DocsEditable()
+@DomName('BeforeInstallPromptEvent')
+@Experimental() // untriaged
+@Native("BeforeInstallPromptEvent")
+class BeforeInstallPromptEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory BeforeInstallPromptEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BeforeInstallPromptEvent.BeforeInstallPromptEvent')
+  @DocsEditable()
+  factory BeforeInstallPromptEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
+    }
+    return BeforeInstallPromptEvent._create_2(type);
+  }
+  static BeforeInstallPromptEvent _create_1(type, eventInitDict) => JS('BeforeInstallPromptEvent', 'new BeforeInstallPromptEvent(#,#)', type, eventInitDict);
+  static BeforeInstallPromptEvent _create_2(type) => JS('BeforeInstallPromptEvent', 'new BeforeInstallPromptEvent(#)', type);
+
+  List<String> get platforms => JS("List<String>", "#.platforms", this);
+
+  @DomName('BeforeInstallPromptEvent.userChoice')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Future userChoice;
+
+  @DomName('BeforeInstallPromptEvent.prompt')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future prompt() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('BeforeUnloadEvent')
 @Native("BeforeUnloadEvent")
 class BeforeUnloadEvent extends Event {
@@ -1111,6 +1229,204 @@
 
 
 @DocsEditable()
+@DomName('Bluetooth')
+@Experimental() // untriaged
+@Native("Bluetooth")
+class Bluetooth extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Bluetooth._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Bluetooth.requestDevice')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requestDevice(Map options) {
+    var options_1 = convertDartToNative_Dictionary(options);
+    return _requestDevice_1(options_1);
+  }
+  @JSName('requestDevice')
+  @DomName('Bluetooth.requestDevice')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _requestDevice_1(options) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('BluetoothDevice')
+@Experimental() // untriaged
+@Native("BluetoothDevice")
+class BluetoothDevice extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BluetoothDevice.deviceClass')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int deviceClass;
+
+  @DomName('BluetoothDevice.instanceID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String instanceID;
+
+  @DomName('BluetoothDevice.name')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String name;
+
+  @DomName('BluetoothDevice.paired')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool paired;
+
+  @DomName('BluetoothDevice.productID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int productID;
+
+  @DomName('BluetoothDevice.productVersion')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int productVersion;
+
+  @DomName('BluetoothDevice.vendorID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int vendorID;
+
+  @DomName('BluetoothDevice.vendorIDSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String vendorIDSource;
+
+  @JSName('connectGATT')
+  @DomName('BluetoothDevice.connectGATT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future connectGatt() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTCharacteristic')
+@Experimental() // untriaged
+@Native("BluetoothGATTCharacteristic")
+class BluetoothGattCharacteristic extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattCharacteristic._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BluetoothGATTCharacteristic.uuid')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String uuid;
+
+  @DomName('BluetoothGATTCharacteristic.readValue')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future readValue() native;
+
+  @DomName('BluetoothGATTCharacteristic.writeValue')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future writeValue(/*BufferSource*/ value) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTRemoteServer')
+@Experimental() // untriaged
+@Native("BluetoothGATTRemoteServer")
+class BluetoothGattRemoteServer extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattRemoteServer._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BluetoothGATTRemoteServer.connected')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool connected;
+
+  @DomName('BluetoothGATTRemoteServer.getPrimaryService')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getPrimaryService(/*BluetoothServiceUUID*/ service) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTService')
+@Experimental() // untriaged
+@Native("BluetoothGATTService")
+class BluetoothGattService extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattService._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BluetoothGATTService.isPrimary')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool isPrimary;
+
+  @DomName('BluetoothGATTService.uuid')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String uuid;
+
+  @DomName('BluetoothGATTService.getCharacteristic')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getCharacteristic(/*BluetoothCharacteristicUUID*/ characteristic) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('BluetoothUUID')
+@Experimental() // untriaged
+@Native("BluetoothUUID")
+class BluetoothUuid extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothUuid._() { throw new UnsupportedError("Not supported"); }
+
+  @JSName('canonicalUUID')
+  @DomName('BluetoothUUID.canonicalUUID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String canonicalUuid(int alias) native;
+
+  @DomName('BluetoothUUID.getCharacteristic')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getCharacteristic(Object name) native;
+
+  @DomName('BluetoothUUID.getDescriptor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getDescriptor(Object name) native;
+
+  @DomName('BluetoothUUID.getService')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getService(Object name) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('Body')
 @Experimental() // untriaged
 @Native("Body")
@@ -1444,6 +1760,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLButtonElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLButtonElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) native;
@@ -1475,21 +1796,11 @@
   // To suppress missing implicit constructor warnings.
   factory CacheStorage._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('CacheStorage.create')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future create(String cacheName) native;
-
   @DomName('CacheStorage.delete')
   @DocsEditable()
   @Experimental() // untriaged
   Future delete(String cacheName) native;
 
-  @DomName('CacheStorage.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future get(String cacheName) native;
-
   @DomName('CacheStorage.has')
   @DocsEditable()
   @Experimental() // untriaged
@@ -1499,29 +1810,32 @@
   @DocsEditable()
   @Experimental() // untriaged
   Future keys() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
 
-
-@DocsEditable()
-@DomName('Canvas2DContextAttributes')
-// http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
-@Experimental()
-@Native("Canvas2DContextAttributes")
-class Canvas2DContextAttributes extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Canvas2DContextAttributes._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('Canvas2DContextAttributes.alpha')
-  @DocsEditable()
-  bool alpha;
-
-  @DomName('Canvas2DContextAttributes.storage')
+  @DomName('CacheStorage.match')
   @DocsEditable()
   @Experimental() // untriaged
-  String storage;
+  Future match(/*RequestInfo*/ request, [Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _match_1(request, options_1);
+    }
+    return _match_2(request);
+  }
+  @JSName('match')
+  @DomName('CacheStorage.match')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _match_1(request, options) native;
+  @JSName('match')
+  @DomName('CacheStorage.match')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _match_2(request) native;
+
+  @DomName('CacheStorage.open')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future open(String cacheName) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -1583,10 +1897,10 @@
   @DocsEditable()
   @Creates('CanvasRenderingContext2D|RenderingContext')
   @Returns('CanvasRenderingContext2D|RenderingContext|Null')
-  Object getContext(String contextId, [Map attrs]) {
-    if (attrs != null) {
-      var attrs_1 = convertDartToNative_Dictionary(attrs);
-      return _getContext_1(contextId, attrs_1);
+  Object getContext(String contextId, [Map attributes]) {
+    if (attributes != null) {
+      var attributes_1 = convertDartToNative_Dictionary(attributes);
+      return _getContext_1(contextId, attributes_1);
     }
     return _getContext_2(contextId);
   }
@@ -1595,7 +1909,7 @@
   @DocsEditable()
   @Creates('CanvasRenderingContext2D|RenderingContext')
   @Returns('CanvasRenderingContext2D|RenderingContext|Null')
-  Object _getContext_1(contextId, attrs) native;
+  Object _getContext_1(contextId, attributes) native;
   @JSName('getContext')
   @DomName('HTMLCanvasElement.getContext')
   @DocsEditable()
@@ -1606,7 +1920,7 @@
   @JSName('toDataURL')
   @DomName('HTMLCanvasElement.toDataURL')
   @DocsEditable()
-  String _toDataUrl(String type, [num quality]) native;
+  String _toDataUrl(String type, [arguments_OR_quality]) native;
 
   /// Stream of `webglcontextlost` events handled by this [CanvasElement].
   @DomName('HTMLCanvasElement.onwebglcontextlost')
@@ -1832,6 +2146,11 @@
   @Returns('String|CanvasGradient|CanvasPattern')
   Object fillStyle;
 
+  @DomName('CanvasRenderingContext2D.filter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String filter;
+
   @DomName('CanvasRenderingContext2D.font')
   @DocsEditable()
   String font;
@@ -1948,27 +2267,26 @@
   @DomName('CanvasRenderingContext2D.createImageData')
   @DocsEditable()
   @Creates('ImageData|=Object')
-  ImageData createImageData(num sw, num sh) {
-    return convertNativeToDart_ImageData(_createImageData_1(sw, sh));
+  ImageData createImageData(imagedata_OR_sw, [num sh]) {
+    if ((imagedata_OR_sw is ImageData) && sh == null) {
+      var imagedata_1 = convertDartToNative_ImageData(imagedata_OR_sw);
+      return convertNativeToDart_ImageData(_createImageData_1(imagedata_1));
+    }
+    if (sh != null && (imagedata_OR_sw is num)) {
+      return convertNativeToDart_ImageData(_createImageData_2(imagedata_OR_sw, sh));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
   }
   @JSName('createImageData')
   @DomName('CanvasRenderingContext2D.createImageData')
   @DocsEditable()
   @Creates('ImageData|=Object')
-  _createImageData_1(sw, sh) native;
-
-  @DomName('CanvasRenderingContext2D.createImageData')
-  @DocsEditable()
-  @Creates('ImageData|=Object')
-  ImageData createImageDataFromImageData(ImageData imagedata) {
-    var imagedata_1 = convertDartToNative_ImageData(imagedata);
-    return convertNativeToDart_ImageData(_createImageDataFromImageData_1(imagedata_1));
-  }
+  _createImageData_1(imagedata) native;
   @JSName('createImageData')
   @DomName('CanvasRenderingContext2D.createImageData')
   @DocsEditable()
   @Creates('ImageData|=Object')
-  _createImageDataFromImageData_1(imagedata) native;
+  _createImageData_2(num sw, sh) native;
 
   @DomName('CanvasRenderingContext2D.createLinearGradient')
   @DocsEditable()
@@ -1976,12 +2294,7 @@
 
   @DomName('CanvasRenderingContext2D.createPattern')
   @DocsEditable()
-  CanvasPattern createPattern(canvas_OR_image, String repetitionType) native;
-
-  @JSName('createPattern')
-  @DomName('CanvasRenderingContext2D.createPattern')
-  @DocsEditable()
-  CanvasPattern createPatternFromImage(ImageElement image, String repetitionType) native;
+  CanvasPattern createPattern(Object image, String repetitionType) native;
 
   @DomName('CanvasRenderingContext2D.createRadialGradient')
   @DocsEditable()
@@ -2000,7 +2313,15 @@
   @DocsEditable()
   // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
   @Experimental()
-  Canvas2DContextAttributes getContextAttributes() native;
+  Map getContextAttributes() {
+    return convertNativeToDart_Dictionary(_getContextAttributes_1());
+  }
+  @JSName('getContextAttributes')
+  @DomName('CanvasRenderingContext2D.getContextAttributes')
+  @DocsEditable()
+  // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
+  @Experimental()
+  _getContextAttributes_1() native;
 
   @DomName('CanvasRenderingContext2D.getImageData')
   @DocsEditable()
@@ -2156,6 +2477,11 @@
   void rect(num x, num y, num width, num height) native;
 
 
+  @DomName('CanvasRenderingContext2D.createImageDataFromImageData')
+  @DocsEditable()
+  ImageData createImageDataFromImageData(ImageData imagedata) =>
+    JS('ImageData', '#.createImageData(#)', this, imagedata);
+
   /**
    * Sets the color used inside shapes.
    * [r], [g], [b] are 0-255, [a] is 0-1.
@@ -2200,6 +2526,10 @@
        endAngle, anticlockwise);
   }
 
+  @DomName('CanvasRenderingContext2D.createPatternFromImage')
+  CanvasPattern createPatternFromImage(ImageElement image, String repetitionType) =>
+    JS('CanvasPattern', '#.createPattern(#, #)', this, image, repetitionType);
+
   /**
    * Draws an image from a CanvasImageSource to an area of this canvas.
    *
@@ -2457,7 +2787,7 @@
 @DocsEditable()
 @DomName('CharacterData')
 @Native("CharacterData")
-class CharacterData extends Node implements ChildNode {
+class CharacterData extends Node implements NonDocumentTypeChildNode, ChildNode {
   // To suppress missing implicit constructor warnings.
   factory CharacterData._() { throw new UnsupportedError("Not supported"); }
 
@@ -2475,7 +2805,7 @@
 
   @DomName('CharacterData.deleteData')
   @DocsEditable()
-  void deleteData(int offset, int length) native;
+  void deleteData(int offset, int count) native;
 
   @DomName('CharacterData.insertData')
   @DocsEditable()
@@ -2483,14 +2813,26 @@
 
   @DomName('CharacterData.replaceData')
   @DocsEditable()
-  void replaceData(int offset, int length, String data) native;
+  void replaceData(int offset, int count, String data) native;
 
   @DomName('CharacterData.substringData')
   @DocsEditable()
-  String substringData(int offset, int length) native;
+  String substringData(int offset, int count) native;
 
   // From ChildNode
 
+  @DomName('CharacterData.after')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void after(Object nodes) native;
+
+  @DomName('CharacterData.before')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void before(Object nodes) native;
+
+  // From NonDocumentTypeChildNode
+
   @DomName('CharacterData.nextElementSibling')
   @DocsEditable()
   final Element nextElementSibling;
@@ -2511,9 +2853,9 @@
   // To suppress missing implicit constructor warnings.
   factory ChildNode._() { throw new UnsupportedError("Not supported"); }
 
-  final Element nextElementSibling;
+  void after(Object nodes);
 
-  final Element previousElementSibling;
+  void before(Object nodes);
 
   void remove();
 }
@@ -2523,6 +2865,19 @@
 
 
 @DocsEditable()
+@DomName('CHROMIUMValuebuffer')
+@Experimental() // untriaged
+@Native("CHROMIUMValuebuffer")
+class ChromiumValuebuffer extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ChromiumValuebuffer._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('CircularGeofencingRegion')
 @Experimental() // untriaged
 @Native("CircularGeofencingRegion")
@@ -2569,12 +2924,138 @@
 
 
 @DocsEditable()
+@DomName('Client')
+@Experimental() // untriaged
+@Native("Client")
+class Client extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Client._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Client.frameType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String frameType;
+
+  @DomName('Client.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String id;
+
+  @DomName('Client.url')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String url;
+
+  @DomName('Client.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      var message_1 = convertDartToNative_SerializedScriptValue(message);
+      _postMessage_1(message_1, transfer);
+      return;
+    }
+    var message_1 = convertDartToNative_SerializedScriptValue(message);
+    _postMessage_2(message_1);
+    return;
+  }
+  @JSName('postMessage')
+  @DomName('Client.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_1(message, List<MessagePort> transfer) native;
+  @JSName('postMessage')
+  @DomName('Client.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_2(message) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('Clients')
+@Experimental() // untriaged
+@Native("Clients")
+class Clients extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Clients._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Clients.claim')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future claim() native;
+
+  @DomName('Clients.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future matchAll([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _matchAll_1(options_1);
+    }
+    return _matchAll_2();
+  }
+  @JSName('matchAll')
+  @DomName('Clients.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _matchAll_1(options) native;
+  @JSName('matchAll')
+  @DomName('Clients.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _matchAll_2() native;
+
+  @DomName('Clients.openWindow')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future openWindow(String url) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('ClipboardEvent')
+@Experimental() // untriaged
+@Native("ClipboardEvent")
+class ClipboardEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory ClipboardEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ClipboardEvent.clipboardData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DataTransfer clipboardData;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('CloseEvent')
 @Native("CloseEvent")
 class CloseEvent extends Event {
   // To suppress missing implicit constructor warnings.
   factory CloseEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('CloseEvent.CloseEvent')
+  @DocsEditable()
+  factory CloseEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return CloseEvent._create_1(type, eventInitDict_1);
+    }
+    return CloseEvent._create_2(type);
+  }
+  static CloseEvent _create_1(type, eventInitDict) => JS('CloseEvent', 'new CloseEvent(#,#)', type, eventInitDict);
+  static CloseEvent _create_2(type) => JS('CloseEvent', 'new CloseEvent(#)', type);
+
   @DomName('CloseEvent.code')
   @DocsEditable()
   final int code;
@@ -2634,32 +3115,27 @@
     return e;
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory CompositionEvent._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('CompositionEvent.activeSegmentEnd')
+  @DomName('CompositionEvent.CompositionEvent')
   @DocsEditable()
-  @Experimental() // untriaged
-  final int activeSegmentEnd;
-
-  @DomName('CompositionEvent.activeSegmentStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int activeSegmentStart;
+  factory CompositionEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return CompositionEvent._create_1(type, eventInitDict_1);
+    }
+    return CompositionEvent._create_2(type);
+  }
+  static CompositionEvent _create_1(type, eventInitDict) => JS('CompositionEvent', 'new CompositionEvent(#,#)', type, eventInitDict);
+  static CompositionEvent _create_2(type) => JS('CompositionEvent', 'new CompositionEvent(#)', type);
 
   @DomName('CompositionEvent.data')
   @DocsEditable()
   final String data;
 
-  @DomName('CompositionEvent.getSegments')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<int> getSegments() native;
-
   @JSName('initCompositionEvent')
   @DomName('CompositionEvent.initCompositionEvent')
   @DocsEditable()
-  void _initCompositionEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Window viewArg, String dataArg) native;
+  void _initCompositionEvent(String type, bool bubbles, bool cancelable, Window view, String data) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2667,6 +3143,182 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
+@DocsEditable()
+@DomName('CompositorProxy')
+@Experimental() // untriaged
+@Native("CompositorProxy")
+class CompositorProxy extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorProxy._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorProxy.CompositorProxy')
+  @DocsEditable()
+  factory CompositorProxy(Element element, List<String> attributeArray) {
+    return CompositorProxy._create_1(element, attributeArray);
+  }
+  static CompositorProxy _create_1(element, attributeArray) => JS('CompositorProxy', 'new CompositorProxy(#,#)', element, attributeArray);
+
+  @DomName('CompositorProxy.opacity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num opacity;
+
+  @DomName('CompositorProxy.scrollLeft')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num scrollLeft;
+
+  @DomName('CompositorProxy.scrollTop')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num scrollTop;
+
+  @DomName('CompositorProxy.transform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomMatrix transform;
+
+  @DomName('CompositorProxy.disconnect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disconnect() native;
+
+  @DomName('CompositorProxy.supports')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool supports(String attribute) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('CompositorWorker')
+@Experimental() // untriaged
+@Native("CompositorWorker")
+class CompositorWorker extends EventTarget implements AbstractWorker {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorWorker._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorWorker.errorEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> errorEvent = const EventStreamProvider<Event>('error');
+
+  @DomName('CompositorWorker.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('CompositorWorker.CompositorWorker')
+  @DocsEditable()
+  factory CompositorWorker(String scriptUrl) {
+    return CompositorWorker._create_1(scriptUrl);
+  }
+  static CompositorWorker _create_1(scriptUrl) => JS('CompositorWorker', 'new CompositorWorker(#)', scriptUrl);
+
+  @DomName('CompositorWorker.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      var message_1 = convertDartToNative_SerializedScriptValue(message);
+      _postMessage_1(message_1, transfer);
+      return;
+    }
+    var message_1 = convertDartToNative_SerializedScriptValue(message);
+    _postMessage_2(message_1);
+    return;
+  }
+  @JSName('postMessage')
+  @DomName('CompositorWorker.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_1(message, List<MessagePort> transfer) native;
+  @JSName('postMessage')
+  @DomName('CompositorWorker.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_2(message) native;
+
+  @DomName('CompositorWorker.terminate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void terminate() native;
+
+  @DomName('CompositorWorker.onerror')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onError => errorEvent.forTarget(this);
+
+  @DomName('CompositorWorker.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('CompositorWorkerGlobalScope')
+@Experimental() // untriaged
+@Native("CompositorWorkerGlobalScope")
+class CompositorWorkerGlobalScope extends WorkerGlobalScope {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorWorkerGlobalScope._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorWorkerGlobalScope.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('CompositorWorkerGlobalScope.cancelAnimationFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void cancelAnimationFrame(int handle) native;
+
+  @DomName('CompositorWorkerGlobalScope.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      var message_1 = convertDartToNative_SerializedScriptValue(message);
+      _postMessage_1(message_1, transfer);
+      return;
+    }
+    var message_1 = convertDartToNative_SerializedScriptValue(message);
+    _postMessage_2(message_1);
+    return;
+  }
+  @JSName('postMessage')
+  @DomName('CompositorWorkerGlobalScope.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_1(message, List<MessagePort> transfer) native;
+  @JSName('postMessage')
+  @DomName('CompositorWorkerGlobalScope.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_2(message) native;
+
+  @DomName('CompositorWorkerGlobalScope.requestAnimationFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int requestAnimationFrame(FrameRequestCallback callback) native;
+
+  @DomName('CompositorWorkerGlobalScope.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
 @DomName('Console')
 class Console {
 
@@ -2780,6 +3432,12 @@
   // To suppress missing implicit constructor warnings.
   factory ConsoleBase._() { throw new UnsupportedError("Not supported"); }
 
+  @JSName('assert')
+  @DomName('ConsoleBase.assert')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void assertCondition(bool condition, Object arg) native;
+
   @DomName('ConsoleBase.timeline')
   @DocsEditable()
   @Experimental() // untriaged
@@ -2881,11 +3539,11 @@
   // To suppress missing implicit constructor warnings.
   factory Credential._() { throw new UnsupportedError("Not supported"); }
 
-  @JSName('avatarURL')
-  @DomName('Credential.avatarURL')
+  @JSName('iconURL')
+  @DomName('Credential.iconURL')
   @DocsEditable()
   @Experimental() // untriaged
-  final String avatarUrl;
+  final String iconUrl;
 
   @DomName('Credential.id')
   @DocsEditable()
@@ -2896,6 +3554,11 @@
   @DocsEditable()
   @Experimental() // untriaged
   final String name;
+
+  @DomName('Credential.type')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String type;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -2910,21 +3573,11 @@
   // To suppress missing implicit constructor warnings.
   factory CredentialsContainer._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('CredentialsContainer.notifyFailedSignIn')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future notifyFailedSignIn(Credential credential) native;
-
   @DomName('CredentialsContainer.notifySignedIn')
   @DocsEditable()
   @Experimental() // untriaged
   Future notifySignedIn(Credential credential) native;
 
-  @DomName('CredentialsContainer.notifySignedOut')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future notifySignedOut() native;
-
   @DomName('CredentialsContainer.request')
   @DocsEditable()
   @Experimental() // untriaged
@@ -2945,6 +3598,81 @@
   @DocsEditable()
   @Experimental() // untriaged
   Future _request_2() native;
+
+  @DomName('CredentialsContainer.requireUserMediation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requireUserMediation() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('CrossOriginConnectEvent')
+@Experimental() // untriaged
+@Native("CrossOriginConnectEvent")
+class CrossOriginConnectEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory CrossOriginConnectEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CrossOriginConnectEvent.client')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final CrossOriginServiceWorkerClient client;
+
+  @DomName('CrossOriginConnectEvent.acceptConnection')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void acceptConnection(Future shouldAccept) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('CrossOriginServiceWorkerClient')
+@Experimental() // untriaged
+@Native("CrossOriginServiceWorkerClient")
+class CrossOriginServiceWorkerClient extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory CrossOriginServiceWorkerClient._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CrossOriginServiceWorkerClient.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String origin;
+
+  @DomName('CrossOriginServiceWorkerClient.targetUrl')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String targetUrl;
+
+  @DomName('CrossOriginServiceWorkerClient.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      var message_1 = convertDartToNative_SerializedScriptValue(message);
+      _postMessage_1(message_1, transfer);
+      return;
+    }
+    var message_1 = convertDartToNative_SerializedScriptValue(message);
+    _postMessage_2(message_1);
+    return;
+  }
+  @JSName('postMessage')
+  @DomName('CrossOriginServiceWorkerClient.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_1(message, List<MessagePort> transfer) native;
+  @JSName('postMessage')
+  @DomName('CrossOriginServiceWorkerClient.postMessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _postMessage_2(message) native;
 }
 // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -2998,6 +3726,7 @@
   @DomName('CryptoKey.algorithm')
   @DocsEditable()
   @Experimental() // untriaged
+  @Creates('Null')
   final Object algorithm;
 
   @DomName('CryptoKey.extractable')
@@ -3031,12 +3760,12 @@
 
   @DomName('CSS.supports')
   @DocsEditable()
-  bool supports(String property, String value) native;
+  static bool supports(String property, String value) native;
 
   @JSName('supports')
   @DomName('CSS.supports')
   @DocsEditable()
-  bool supportsCondition(String conditionText) native;
+  static bool supportsCondition(String conditionText) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -3062,26 +3791,6 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSFilterRule')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/filter-effects/
-@Native("WebKitCSSFilterRule")
-class CssFilterRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssFilterRule._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('WebKitCSSFilterRule.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('CSSFontFaceRule')
 @Native("CSSFontFaceRule")
 class CssFontFaceRule extends CssRule {
@@ -3098,6 +3807,36 @@
 
 
 @DocsEditable()
+@DomName('CSSGroupingRule')
+@Experimental() // untriaged
+@Native("CSSGroupingRule")
+class CssGroupingRule extends CssRule {
+  // To suppress missing implicit constructor warnings.
+  factory CssGroupingRule._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CSSGroupingRule.cssRules')
+  @DocsEditable()
+  @Experimental() // untriaged
+  @Returns('_CssRuleList')
+  @Creates('_CssRuleList')
+  final List<CssRule> cssRules;
+
+  @DomName('CSSGroupingRule.deleteRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteRule(int index) native;
+
+  @DomName('CSSGroupingRule.insertRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int insertRule(String rule, int index) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('CSSImportRule')
 @Native("CSSImportRule")
 class CssImportRule extends CssRule {
@@ -3169,21 +3908,20 @@
   @Experimental() // untriaged
   CssKeyframeRule __getter__(int index) native;
 
+  @DomName('CSSKeyframesRule.appendRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void appendRule(String rule) native;
+
   @DomName('CSSKeyframesRule.deleteRule')
   @DocsEditable()
   @Experimental() // untriaged
-  void deleteRule(String key) native;
+  void deleteRule(String select) native;
 
   @DomName('CSSKeyframesRule.findRule')
   @DocsEditable()
   @Experimental() // untriaged
-  CssKeyframeRule findRule(String key) native;
-
-  @JSName('insertRule')
-  @DomName('CSSKeyframesRule.insertRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendRule(String rule) native;
+  CssKeyframeRule findRule(String select) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -3193,27 +3931,13 @@
 @DocsEditable()
 @DomName('CSSMediaRule')
 @Native("CSSMediaRule")
-class CssMediaRule extends CssRule {
+class CssMediaRule extends CssGroupingRule {
   // To suppress missing implicit constructor warnings.
   factory CssMediaRule._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('CSSMediaRule.cssRules')
-  @DocsEditable()
-  @Returns('_CssRuleList')
-  @Creates('_CssRuleList')
-  final List<CssRule> cssRules;
-
   @DomName('CSSMediaRule.media')
   @DocsEditable()
   final MediaList media;
-
-  @DomName('CSSMediaRule.deleteRule')
-  @DocsEditable()
-  void deleteRule(int index) native;
-
-  @DomName('CSSMediaRule.insertRule')
-  @DocsEditable()
-  int insertRule(String rule, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -3290,12 +4014,6 @@
   @Experimental() // untriaged
   static const int VIEWPORT_RULE = 15;
 
-  @DomName('CSSRule.WEBKIT_FILTER_RULE')
-  @DocsEditable()
-  // http://www.w3.org/TR/filter-effects/
-  @Experimental()
-  static const int WEBKIT_FILTER_RULE = 17;
-
   @DomName('CSSRule.WEBKIT_KEYFRAMES_RULE')
   @DocsEditable()
   // http://www.w3.org/TR/css3-animations/#cssrule
@@ -3439,23 +4157,14 @@
   @DocsEditable()
   final CssRule parentRule;
 
-  @DomName('CSSStyleDeclaration.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object __getter__(String name) native;
-
-  @DomName('CSSStyleDeclaration.__setter__')
-  @DocsEditable()
-  void __setter__(String propertyName, String propertyValue) native;
-
   @DomName('CSSStyleDeclaration.getPropertyPriority')
   @DocsEditable()
-  String getPropertyPriority(String propertyName) native;
+  String getPropertyPriority(String property) native;
 
   @JSName('getPropertyValue')
   @DomName('CSSStyleDeclaration.getPropertyValue')
   @DocsEditable()
-  String _getPropertyValue(String propertyName) native;
+  String _getPropertyValue(String property) native;
 
   @DomName('CSSStyleDeclaration.item')
   @DocsEditable()
@@ -3463,7 +4172,7 @@
 
   @DomName('CSSStyleDeclaration.removeProperty')
   @DocsEditable()
-  String removeProperty(String propertyName) native;
+  String removeProperty(String property) native;
 
 
   /** Gets the value of "background" */
@@ -8188,8 +8897,18 @@
     }
     return _detail;
   }
-  // To suppress missing implicit constructor warnings.
-  factory CustomEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CustomEvent.CustomEvent')
+  @DocsEditable()
+  factory CustomEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return CustomEvent._create_1(type, eventInitDict_1);
+    }
+    return CustomEvent._create_2(type);
+  }
+  static CustomEvent _create_1(type, eventInitDict) => JS('CustomEvent', 'new CustomEvent(#,#)', type, eventInitDict);
+  static CustomEvent _create_2(type) => JS('CustomEvent', 'new CustomEvent(#)', type);
 
   @DomName('CustomEvent._detail')
   @DocsEditable()
@@ -8205,7 +8924,7 @@
   @JSName('initCustomEvent')
   @DomName('CustomEvent.initCustomEvent')
   @DocsEditable()
-  void _initCustomEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object detailArg) native;
+  void _initCustomEvent(String type, bool bubbles, bool cancelable, Object detail) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -8308,17 +9027,17 @@
   @DomName('DataTransfer.clearData')
   @DocsEditable()
   @Experimental() // untriaged
-  void clearData([String type]) native;
+  void clearData([String format]) native;
 
   @DomName('DataTransfer.getData')
   @DocsEditable()
   @Experimental() // untriaged
-  String getData(String type) native;
+  String getData(String format) native;
 
   @DomName('DataTransfer.setData')
   @DocsEditable()
   @Experimental() // untriaged
-  void setData(String type, String data) native;
+  void setData(String format, String data) native;
 
   @DomName('DataTransfer.setDragImage')
   @DocsEditable()
@@ -8392,11 +9111,6 @@
   @DocsEditable()
   final int length;
 
-  @DomName('DataTransferItemList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DataTransferItem __getter__(int index) native;
-
   @DomName('DataTransferItemList.add')
   @DocsEditable()
   DataTransferItem add(data_OR_file, [String type]) native;
@@ -8415,6 +9129,10 @@
   @DocsEditable()
   void clear() native;
 
+  @DomName('DataTransferItemList.item')
+  @DocsEditable()
+  DataTransferItem item(int index) native;
+
   @DomName('DataTransferItemList.remove')
   @DocsEditable()
   @Experimental() // untriaged
@@ -8497,6 +9215,36 @@
 
 
 @DocsEditable()
+@DomName('DefaultSessionStartEvent')
+@Experimental() // untriaged
+@Native("DefaultSessionStartEvent")
+class DefaultSessionStartEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory DefaultSessionStartEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('DefaultSessionStartEvent.DefaultSessionStartEvent')
+  @DocsEditable()
+  factory DefaultSessionStartEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return DefaultSessionStartEvent._create_1(type, eventInitDict_1);
+    }
+    return DefaultSessionStartEvent._create_2(type);
+  }
+  static DefaultSessionStartEvent _create_1(type, eventInitDict) => JS('DefaultSessionStartEvent', 'new DefaultSessionStartEvent(#,#)', type, eventInitDict);
+  static DefaultSessionStartEvent _create_2(type) => JS('DefaultSessionStartEvent', 'new DefaultSessionStartEvent(#)', type);
+
+  @DomName('DefaultSessionStartEvent.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final PresentationSession session;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('DeprecatedStorageInfo')
 @Experimental() // untriaged
 @Native("DeprecatedStorageInfo")
@@ -8618,6 +9366,18 @@
   // To suppress missing implicit constructor warnings.
   factory DeviceLightEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('DeviceLightEvent.DeviceLightEvent')
+  @DocsEditable()
+  factory DeviceLightEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return DeviceLightEvent._create_1(type, eventInitDict_1);
+    }
+    return DeviceLightEvent._create_2(type);
+  }
+  static DeviceLightEvent _create_1(type, eventInitDict) => JS('DeviceLightEvent', 'new DeviceLightEvent(#,#)', type, eventInitDict);
+  static DeviceLightEvent _create_2(type) => JS('DeviceLightEvent', 'new DeviceLightEvent(#)', type);
+
   @DomName('DeviceLightEvent.value')
   @DocsEditable()
   @Experimental() // untriaged
@@ -9156,6 +9916,11 @@
   @DocsEditable()
   final String _lastModified;
 
+  @DomName('Document.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String origin;
+
   @DomName('Document.pointerLockElement')
   @DocsEditable()
   @Experimental() // untriaged
@@ -9180,6 +9945,11 @@
   @Experimental() // untriaged
   final SvgSvgElement rootElement;
 
+  @DomName('Document.scrollingElement')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Element scrollingElement;
+
   @JSName('selectedStylesheetSet')
   @DomName('Document.selectedStylesheetSet')
   @DocsEditable()
@@ -9286,16 +10056,16 @@
   @DocsEditable()
   // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
   @Experimental()
-  Touch _createTouch(Window window, EventTarget target, int identifier, num pageX, num pageY, num screenX, num screenY, num webkitRadiusX, num webkitRadiusY, num webkitRotationAngle, num webkitForce) {
+  Touch _createTouch(Window window, EventTarget target, int identifier, num pageX, num pageY, num screenX, num screenY, num radiusX, num radiusY, num rotationAngle, num force) {
     var target_1 = _convertDartToNative_EventTarget(target);
-    return _createTouch_1(window, target_1, identifier, pageX, pageY, screenX, screenY, webkitRadiusX, webkitRadiusY, webkitRotationAngle, webkitForce);
+    return _createTouch_1(window, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
   }
   @JSName('createTouch')
   @DomName('Document.createTouch')
   @DocsEditable()
   // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
   @Experimental()
-  Touch _createTouch_1(Window window, target, identifier, pageX, pageY, screenX, screenY, webkitRadiusX, webkitRadiusY, webkitRotationAngle, webkitForce) native;
+  Touch _createTouch_1(Window window, target, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force) native;
 
   @JSName('createTouchList')
   @DomName('Document.createTouchList')
@@ -9309,9 +10079,14 @@
   @DocsEditable()
   Element _elementFromPoint(int x, int y) native;
 
+  @DomName('Document.elementsFromPoint')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Element> elementsFromPoint(int x, int y) native;
+
   @DomName('Document.execCommand')
   @DocsEditable()
-  bool execCommand(String command, bool userInterface, String value) native;
+  bool execCommand(String commandId, [bool showUI, String value]) native;
 
   @DomName('Document.exitFullscreen')
   @DocsEditable()
@@ -9330,10 +10105,6 @@
   @Experimental() // non-standard
   Object _getCssCanvasContext(String contextId, String name, int width, int height) native;
 
-  @DomName('Document.getElementById')
-  @DocsEditable()
-  Element getElementById(String elementId) native;
-
   @DomName('Document.getElementsByClassName')
   @DocsEditable()
   @Creates('NodeList|HtmlCollection')
@@ -9358,23 +10129,23 @@
 
   @DomName('Document.queryCommandEnabled')
   @DocsEditable()
-  bool queryCommandEnabled(String command) native;
+  bool queryCommandEnabled(String commandId) native;
 
   @DomName('Document.queryCommandIndeterm')
   @DocsEditable()
-  bool queryCommandIndeterm(String command) native;
+  bool queryCommandIndeterm(String commandId) native;
 
   @DomName('Document.queryCommandState')
   @DocsEditable()
-  bool queryCommandState(String command) native;
+  bool queryCommandState(String commandId) native;
 
   @DomName('Document.queryCommandSupported')
   @DocsEditable()
-  bool queryCommandSupported(String command) native;
+  bool queryCommandSupported(String commandId) native;
 
   @DomName('Document.queryCommandValue')
   @DocsEditable()
-  String queryCommandValue(String command) native;
+  String queryCommandValue(String commandId) native;
 
   @DomName('Document.transformDocumentToTreeView')
   @DocsEditable()
@@ -9390,6 +10161,12 @@
   // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
   void _webkitExitFullscreen() native;
 
+  // From NonElementParentNode
+
+  @DomName('Document.getElementById')
+  @DocsEditable()
+  Element getElementById(String elementId) native;
+
   // From ParentNode
 
   @JSName('childElementCount')
@@ -9495,12 +10272,12 @@
   /// Stream of `copy` events handled by this [Document].
   @DomName('Document.oncopy')
   @DocsEditable()
-  Stream<Event> get onCopy => Element.copyEvent.forTarget(this);
+  Stream<ClipboardEvent> get onCopy => Element.copyEvent.forTarget(this);
 
   /// Stream of `cut` events handled by this [Document].
   @DomName('Document.oncut')
   @DocsEditable()
-  Stream<Event> get onCut => Element.cutEvent.forTarget(this);
+  Stream<ClipboardEvent> get onCut => Element.cutEvent.forTarget(this);
 
   /// Stream of `doubleclick` events handled by this [Document].
   @DomName('Document.ondblclick')
@@ -9652,7 +10429,7 @@
   /// Stream of `paste` events handled by this [Document].
   @DomName('Document.onpaste')
   @DocsEditable()
-  Stream<Event> get onPaste => Element.pasteEvent.forTarget(this);
+  Stream<ClipboardEvent> get onPaste => Element.pasteEvent.forTarget(this);
 
   @DomName('Document.onpause')
   @DocsEditable()
@@ -9909,7 +10686,7 @@
 
 @DomName('DocumentFragment')
 @Native("DocumentFragment")
-class DocumentFragment extends Node implements ParentNode {
+class DocumentFragment extends Node implements NonElementParentNode, ParentNode {
   factory DocumentFragment() => document.createDocumentFragment();
 
   factory DocumentFragment.html(String html,
@@ -10024,6 +10801,8 @@
   // To suppress missing implicit constructor warnings.
   factory DocumentFragment._() { throw new UnsupportedError("Not supported"); }
 
+  // From NonElementParentNode
+
   @DomName('DocumentFragment.getElementById')
   @DocsEditable()
   @Experimental() // untriaged
@@ -10182,7 +10961,7 @@
 
   @DomName('DOMImplementation.hasFeature')
   @DocsEditable()
-  bool hasFeature(String feature, String version) native;
+  bool hasFeature() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -10396,17 +11175,17 @@
   @DomName('DOMMatrix.scale3dSelf')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scale3dSelf(num scale, [num ox, num oy, num oz]) native;
+  DomMatrix scale3dSelf(num scale, [num originX, num originY, num originZ]) native;
 
   @DomName('DOMMatrix.scaleNonUniformSelf')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scaleNonUniformSelf(num sx, [num sy, num sz, num ox, num oy, num oz]) native;
+  DomMatrix scaleNonUniformSelf(num scaleX, [num scaleY, num scaleZ, num originX, num originY, num originZ]) native;
 
   @DomName('DOMMatrix.scaleSelf')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scaleSelf(num scale, [num ox, num oy]) native;
+  DomMatrix scaleSelf(num scale, [num originX, num originY]) native;
 
   @DomName('DOMMatrix.translateSelf')
   @DocsEditable()
@@ -10554,17 +11333,17 @@
   @DomName('DOMMatrixReadOnly.scale')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scale(num scale, [num ox, num oy]) native;
+  DomMatrix scale(num scale, [num originX, num originY]) native;
 
   @DomName('DOMMatrixReadOnly.scale3d')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scale3d(num scale, [num ox, num oy, num oz]) native;
+  DomMatrix scale3d(num scale, [num originX, num originY, num originZ]) native;
 
   @DomName('DOMMatrixReadOnly.scaleNonUniform')
   @DocsEditable()
   @Experimental() // untriaged
-  DomMatrix scaleNonUniform(num sx, [num sy, num sz, num ox, num oy, num oz]) native;
+  DomMatrix scaleNonUniform(num scaleX, [num scaleY, num scaleZn, num originX, num originY, num originZ]) native;
 
   @DomName('DOMMatrixReadOnly.toFloat32Array')
   @DocsEditable()
@@ -10602,7 +11381,7 @@
 
   @DomName('DOMParser.parseFromString')
   @DocsEditable()
-  Document parseFromString(String str, String contentType) native;
+  Document parseFromString(String str, String type) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -10620,29 +11399,33 @@
   @DomName('DOMPoint.DOMPoint')
   @DocsEditable()
   factory DomPoint([point_OR_x, num y, num z, num w]) {
-    if (point_OR_x == null && y == null && z == null && w == null) {
-      return DomPoint._create_1();
-    }
     if ((point_OR_x is Map || point_OR_x == null) && y == null && z == null && w == null) {
       var point_1 = convertDartToNative_Dictionary(point_OR_x);
-      return DomPoint._create_2(point_1);
+      return DomPoint._create_1(point_1);
+    }
+    if (point_OR_x == null && y == null && z == null && w == null) {
+      return DomPoint._create_2();
+    }
+    if ((point_OR_x is num || point_OR_x == null) && y == null && z == null && w == null) {
+      return DomPoint._create_3(point_OR_x);
     }
     if ((y is num || y == null) && (point_OR_x is num || point_OR_x == null) && z == null && w == null) {
-      return DomPoint._create_3(point_OR_x, y);
+      return DomPoint._create_4(point_OR_x, y);
     }
     if ((z is num || z == null) && (y is num || y == null) && (point_OR_x is num || point_OR_x == null) && w == null) {
-      return DomPoint._create_4(point_OR_x, y, z);
+      return DomPoint._create_5(point_OR_x, y, z);
     }
     if ((w is num || w == null) && (z is num || z == null) && (y is num || y == null) && (point_OR_x is num || point_OR_x == null)) {
-      return DomPoint._create_5(point_OR_x, y, z, w);
+      return DomPoint._create_6(point_OR_x, y, z, w);
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
-  static DomPoint _create_1() => JS('DomPoint', 'new DOMPoint()');
-  static DomPoint _create_2(point_OR_x) => JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
-  static DomPoint _create_3(point_OR_x, y) => JS('DomPoint', 'new DOMPoint(#,#)', point_OR_x, y);
-  static DomPoint _create_4(point_OR_x, y, z) => JS('DomPoint', 'new DOMPoint(#,#,#)', point_OR_x, y, z);
-  static DomPoint _create_5(point_OR_x, y, z, w) => JS('DomPoint', 'new DOMPoint(#,#,#,#)', point_OR_x, y, z, w);
+  static DomPoint _create_1(point_OR_x) => JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
+  static DomPoint _create_2() => JS('DomPoint', 'new DOMPoint()');
+  static DomPoint _create_3(point_OR_x) => JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
+  static DomPoint _create_4(point_OR_x, y) => JS('DomPoint', 'new DOMPoint(#,#)', point_OR_x, y);
+  static DomPoint _create_5(point_OR_x, y, z) => JS('DomPoint', 'new DOMPoint(#,#,#)', point_OR_x, y, z);
+  static DomPoint _create_6(point_OR_x, y, z, w) => JS('DomPoint', 'new DOMPoint(#,#,#,#)', point_OR_x, y, z, w);
 
   /// Checks if this type is supported on the current platform.
   static bool get supported => JS('bool', '!!(window.DOMPoint) || !!(window.WebKitPoint)');
@@ -10881,10 +11664,6 @@
   @DomName('DOMSettableTokenList.value')
   @DocsEditable()
   String value;
-
-  @DomName('DOMSettableTokenList.__getter__')
-  @DocsEditable()
-  String __getter__(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -10894,7 +11673,7 @@
 @DocsEditable()
 @DomName('DOMStringList')
 @Native("DOMStringList")
-class DomStringList extends Interceptor with ListMixin<String>, ImmutableListMixin<String> implements JavaScriptIndexingBehavior, List<String> {
+class DomStringList extends Interceptor with ListMixin<String>, ImmutableListMixin<String> implements List<String> {
   // To suppress missing implicit constructor warnings.
   factory DomStringList._() { throw new UnsupportedError("Not supported"); }
 
@@ -10906,7 +11685,7 @@
     if (JS("bool", "# >>> 0 !== # || # >= #", index,
         index, index, length))
       throw new RangeError.index(index, this);
-    return JS("String", "#[#]", this, index);
+    return this.item(index);
   }
   void operator[]=(int index, String value) {
     throw new UnsupportedError("Cannot assign element of immutable List.");
@@ -10946,6 +11725,11 @@
   String elementAt(int index) => this[index];
   // -- end List<String> mixins.
 
+  @DomName('DOMStringList.__getter__')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String __getter__(int index) native;
+
   @DomName('DOMStringList.contains')
   @DocsEditable()
   bool contains(String string) native;
@@ -10965,11 +11749,13 @@
   // To suppress missing implicit constructor warnings.
   factory DomStringMap._() { throw new UnsupportedError("Not supported"); }
 
-  bool __delete__(index_OR_name);
+  void __delete__(index_OR_name);
 
-  String __getter__(index_OR_name);
+  String __getter__(int index);
 
   void __setter__(index_OR_name, String value);
+
+  String item(String name);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -11014,6 +11800,19 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
+@DocsEditable()
+@DomName('EffectModel')
+@Experimental() // untriaged
+@Native("EffectModel")
+class EffectModel extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory EffectModel._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
 class _ChildrenElementList extends ListBase<Element>
     implements NodeListWrapper {
   // Raw Element.
@@ -11314,12 +12113,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy;
+  ElementStream<ClipboardEvent> get onCopy;
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut;
+  ElementStream<ClipboardEvent> get onCut;
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -11567,7 +12366,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste;
+  ElementStream<ClipboardEvent> get onPaste;
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -11846,12 +12645,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy => Element.copyEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onCopy => Element.copyEvent._forElementList(this);
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut => Element.cutEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onCut => Element.cutEvent._forElementList(this);
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -12099,7 +12898,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste => Element.pasteEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onPaste => Element.pasteEvent._forElementList(this);
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -12267,7 +13066,7 @@
  */
 @DomName('Element')
 @Native("Element")
-class Element extends Node implements GlobalEventHandlers, ParentNode, ChildNode {
+class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandlers, ParentNode, ChildNode {
 
   /**
    * Creates an HTML element from a valid fragment of HTML.
@@ -12730,7 +13529,7 @@
    * on which the method is called, and calls the play() method of the
    * AnimationTimeline object of the document timeline of the node document
    * of the element, passing the newly created AnimationEffect as the argument
-   * to the method. Returns an AnimationPlayer for the effect.
+   * to the method. Returns an Animation for the effect.
    *
    * Examples
    *
@@ -12749,7 +13548,7 @@
   **/
   @Experimental()
   @SupportedBrowser(SupportedBrowser.CHROME, '36')
-  AnimationPlayer animate(Iterable<Map<String, dynamic>> frames, [timing]) {
+  Animation animate(Iterable<Map<String, dynamic>> frames, [timing]) {
     if (frames is! Iterable || !(frames.every((x) => x is Map))) {
       throw new ArgumentError("The frames parameter should be a List of Maps "
           "with frame information");
@@ -12770,7 +13569,7 @@
   @DomName('Element.animate')
   @JSName('animate')
   @Experimental() // untriaged
-  AnimationPlayer _animate(Object effect, [timing]) native;
+  Animation _animate(Object effect, [timing]) native;
   /**
    * Called by the DOM whenever an attribute on this has been changed.
    */
@@ -13391,6 +14190,10 @@
     return result;
   }
 
+  @DomName('Element.offsetParent')
+  @DocsEditable()
+  final Element offsetParent;
+
   @DomName('Element.offsetHeight')
   @DocsEditable()
   int get offsetHeight => JS('num', '#.offsetHeight', this).round();
@@ -13407,22 +14210,6 @@
   @DocsEditable()
   int get offsetWidth => JS('num', '#.offsetWidth', this).round();
 
-  @DomName('Element.clientHeight')
-  @DocsEditable()
-  int get clientHeight => JS('num', '#.clientHeight', this).round();
-
-  @DomName('Element.clientLeft')
-  @DocsEditable()
-  int get clientLeft => JS('num', '#.clientLeft', this).round();
-
-  @DomName('Element.clientTop')
-  @DocsEditable()
-  int get clientTop => JS('num', '#.clientTop', this).round();
-
-  @DomName('Element.clientWidth')
-  @DocsEditable()
-  int get clientWidth => JS('num', '#.clientWidth', this).round();
-
   @DomName('Element.scrollHeight')
   @DocsEditable()
   int get scrollHeight => JS('num', '#.scrollHeight', this).round();
@@ -13553,7 +14340,7 @@
    */
   @DomName('Element.copyEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> copyEvent = const EventStreamProvider<Event>('copy');
+  static const EventStreamProvider<ClipboardEvent> copyEvent = const EventStreamProvider<ClipboardEvent>('copy');
 
   /**
    * Static factory designed to expose `cut` events to event
@@ -13563,7 +14350,7 @@
    */
   @DomName('Element.cutEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> cutEvent = const EventStreamProvider<Event>('cut');
+  static const EventStreamProvider<ClipboardEvent> cutEvent = const EventStreamProvider<ClipboardEvent>('cut');
 
   /**
    * Static factory designed to expose `doubleclick` events to event
@@ -13888,7 +14675,7 @@
    */
   @DomName('Element.pasteEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> pasteEvent = const EventStreamProvider<Event>('paste');
+  static const EventStreamProvider<ClipboardEvent> pasteEvent = const EventStreamProvider<ClipboardEvent>('paste');
 
   @DomName('Element.pauseEvent')
   @DocsEditable()
@@ -14170,6 +14957,10 @@
   @Experimental() // nonstandard
   bool spellcheck;
 
+  @DomName('Element.style')
+  @DocsEditable()
+  final CssStyleDeclaration style;
+
   @DomName('Element.tabIndex')
   @DocsEditable()
   int tabIndex;
@@ -14217,10 +15008,18 @@
   // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dropzone-attribute
   String dropzone;
 
+  @DomName('Element.blur')
+  @DocsEditable()
+  void blur() native;
+
   @DomName('Element.click')
   @DocsEditable()
   void click() native;
 
+  @DomName('Element.focus')
+  @DocsEditable()
+  void focus() native;
+
   @JSName('attributes')
   @DomName('Element.attributes')
   @DocsEditable()
@@ -14230,25 +15029,31 @@
   @DocsEditable()
   String className;
 
-  @JSName('clientHeight')
   @DomName('Element.clientHeight')
   @DocsEditable()
-  final int _clientHeight;
+  final int clientHeight;
 
-  @JSName('clientLeft')
   @DomName('Element.clientLeft')
   @DocsEditable()
-  final int _clientLeft;
+  final int clientLeft;
 
-  @JSName('clientTop')
   @DomName('Element.clientTop')
   @DocsEditable()
-  final int _clientTop;
+  final int clientTop;
 
-  @JSName('clientWidth')
   @DomName('Element.clientWidth')
   @DocsEditable()
-  final int _clientWidth;
+  final int clientWidth;
+
+  @DomName('Element.computedName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String computedName;
+
+  @DomName('Element.computedRole')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String computedRole;
 
   @DomName('Element.id')
   @DocsEditable()
@@ -14265,30 +15070,6 @@
   // Use implementation from Node.
   // final String _namespaceUri;
 
-  @JSName('offsetHeight')
-  @DomName('Element.offsetHeight')
-  @DocsEditable()
-  final int _offsetHeight;
-
-  @JSName('offsetLeft')
-  @DomName('Element.offsetLeft')
-  @DocsEditable()
-  final int _offsetLeft;
-
-  @DomName('Element.offsetParent')
-  @DocsEditable()
-  final Element offsetParent;
-
-  @JSName('offsetTop')
-  @DomName('Element.offsetTop')
-  @DocsEditable()
-  final int _offsetTop;
-
-  @JSName('offsetWidth')
-  @DomName('Element.offsetWidth')
-  @DocsEditable()
-  final int _offsetWidth;
-
   @JSName('outerHTML')
   @DomName('Element.outerHTML')
   @DocsEditable()
@@ -14314,26 +15095,19 @@
   @DocsEditable()
   final int _scrollWidth;
 
-  @DomName('Element.style')
-  @DocsEditable()
-  final CssStyleDeclaration style;
-
   @DomName('Element.tagName')
   @DocsEditable()
   final String tagName;
 
-  @DomName('Element.blur')
-  @DocsEditable()
-  void blur() native;
-
-  @DomName('Element.focus')
-  @DocsEditable()
-  void focus() native;
-
-  @DomName('Element.getAnimationPlayers')
+  @DomName('Element.closest')
   @DocsEditable()
   @Experimental() // untriaged
-  List<AnimationPlayer> getAnimationPlayers() native;
+  Element closest(String selectors) native;
+
+  @DomName('Element.getAnimations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Animation> getAnimations() native;
 
   @DomName('Element.getAttribute')
   @DocsEditable()
@@ -14416,7 +15190,7 @@
   @DocsEditable()
   @Creates('NodeList|HtmlCollection')
   @Returns('NodeList|HtmlCollection')
-  List<Node> _getElementsByTagName(String name) native;
+  List<Node> _getElementsByTagName(String localName) native;
 
   @JSName('hasAttribute')
   @DomName('Element.hasAttribute')
@@ -14448,6 +15222,76 @@
   @Experimental() // untriaged
   void requestPointerLock() native;
 
+  @DomName('Element.scroll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void scroll([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _scroll_1();
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scroll_2(options_1);
+      return;
+    }
+    if (y != null && (options_OR_x is num)) {
+      _scroll_3(options_OR_x, y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('scroll')
+  @DomName('Element.scroll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scroll_1() native;
+  @JSName('scroll')
+  @DomName('Element.scroll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scroll_2(options) native;
+  @JSName('scroll')
+  @DomName('Element.scroll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scroll_3(num x, y) native;
+
+  @DomName('Element.scrollBy')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void scrollBy([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _scrollBy_1();
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scrollBy_2(options_1);
+      return;
+    }
+    if (y != null && (options_OR_x is num)) {
+      _scrollBy_3(options_OR_x, y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('scrollBy')
+  @DomName('Element.scrollBy')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollBy_1() native;
+  @JSName('scrollBy')
+  @DomName('Element.scrollBy')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollBy_2(options) native;
+  @JSName('scrollBy')
+  @DomName('Element.scrollBy')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollBy_3(num x, y) native;
+
   @JSName('scrollIntoView')
   @DomName('Element.scrollIntoView')
   @DocsEditable()
@@ -14460,16 +15304,63 @@
   @Experimental() // non-standard
   void _scrollIntoViewIfNeeded([bool centerIfNeeded]) native;
 
+  @DomName('Element.scrollTo')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void scrollTo([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _scrollTo_1();
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scrollTo_2(options_1);
+      return;
+    }
+    if (y != null && (options_OR_x is num)) {
+      _scrollTo_3(options_OR_x, y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('scrollTo')
+  @DomName('Element.scrollTo')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollTo_1() native;
+  @JSName('scrollTo')
+  @DomName('Element.scrollTo')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollTo_2(options) native;
+  @JSName('scrollTo')
+  @DomName('Element.scrollTo')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _scrollTo_3(num x, y) native;
+
   @DomName('Element.setAttribute')
   @DocsEditable()
   void setAttribute(String name, String value) native;
 
   @DomName('Element.setAttributeNS')
   @DocsEditable()
-  void setAttributeNS(String namespaceURI, String qualifiedName, String value) native;
+  void setAttributeNS(String namespaceURI, String name, String value) native;
 
   // From ChildNode
 
+  @DomName('Element.after')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void after(Object nodes) native;
+
+  @DomName('Element.before')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void before(Object nodes) native;
+
+  // From NonDocumentTypeChildNode
+
   @DomName('Element.nextElementSibling')
   @DocsEditable()
   final Element nextElementSibling;
@@ -14582,12 +15473,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy => copyEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onCopy => copyEvent.forElement(this);
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut => cutEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onCut => cutEvent.forElement(this);
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -14835,7 +15726,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste => pasteEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onPaste => pasteEvent.forElement(this);
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -15067,11 +15958,6 @@
   @DocsEditable()
   String height;
 
-  @DomName('HTMLEmbedElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLEmbedElement.name')
   @DocsEditable()
   String name;
@@ -15261,6 +16147,18 @@
   // To suppress missing implicit constructor warnings.
   factory ErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ErrorEvent.ErrorEvent')
+  @DocsEditable()
+  factory ErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return ErrorEvent._create_2(type);
+  }
+  static ErrorEvent _create_1(type, eventInitDict) => JS('ErrorEvent', 'new ErrorEvent(#,#)', type, eventInitDict);
+  static ErrorEvent _create_2(type) => JS('ErrorEvent', 'new ErrorEvent(#)', type);
+
   @DomName('ErrorEvent.colno')
   @DocsEditable()
   @Experimental() // untriaged
@@ -15292,7 +16190,7 @@
 
 
 @DomName('Event')
-@Native("Event,InputEvent,ClipboardEvent")
+@Native("Event,InputEvent")
 class Event extends Interceptor {
   // In JS, canBubble and cancelable are technically required parameters to
   // init*Event. In practice, though, if they aren't provided they simply
@@ -15343,8 +16241,18 @@
     } while (target != null && target != currentTarget.parent);
     throw new StateError('No selector matched for populating matchedTarget.');
   }
-  // To suppress missing implicit constructor warnings.
-  factory Event._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Event.Event')
+  @DocsEditable()
+  factory Event._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return Event._create_1(type, eventInitDict_1);
+    }
+    return Event._create_2(type);
+  }
+  static Event _create_1(type, eventInitDict) => JS('Event', 'new Event(#,#)', type, eventInitDict);
+  static Event _create_2(type) => JS('Event', 'new Event(#)', type);
 
   /**
    * This event is being handled by the event target.
@@ -15391,24 +16299,6 @@
   @DocsEditable()
   final bool cancelable;
 
-  /**
-   * Access to the system's clipboard data during copy, cut, and paste events.
-   *
-   * ## Other resources
-   *
-   * * [clipboardData specification](http://www.w3.org/TR/clipboard-apis/#attributes)
-   *   from W3C.
-   */
-  @DomName('Event.clipboardData')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // Part of copy/paste
-  @Experimental() // nonstandard
-  final DataTransfer clipboardData;
-
   @DomName('Event.currentTarget')
   @DocsEditable()
   EventTarget get currentTarget => _convertNativeToDart_EventTarget(this._get_currentTarget);
@@ -15416,7 +16306,7 @@
   @DomName('Event.currentTarget')
   @DocsEditable()
   @Creates('Null')
-  @Returns('EventTarget|=Object|Null')
+  @Returns('EventTarget|=Object')
   final dynamic _get_currentTarget;
 
   @DomName('Event.defaultPrevented')
@@ -15440,9 +16330,7 @@
   @DocsEditable()
   // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
   @Experimental()
-  @Returns('NodeList')
-  @Creates('NodeList')
-  final List<Node> path;
+  final List<EventTarget> path;
 
   @DomName('Event.target')
   @DocsEditable()
@@ -15451,7 +16339,7 @@
   @DomName('Event.target')
   @DocsEditable()
   @Creates('Node')
-  @Returns('EventTarget|=Object|Null')
+  @Returns('EventTarget|=Object')
   final dynamic _get_target;
 
   @DomName('Event.timeStamp')
@@ -15465,7 +16353,7 @@
   @JSName('initEvent')
   @DomName('Event.initEvent')
   @DocsEditable()
-  void _initEvent(String eventTypeArg, bool canBubbleArg, bool cancelableArg) native;
+  void _initEvent(String type, bool bubbles, bool cancelable) native;
 
   @DomName('Event.preventDefault')
   @DocsEditable()
@@ -15531,14 +16419,14 @@
 
   @DomName('EventSource.EventSource')
   @DocsEditable()
-  static EventSource _factoryEventSource(String url, [Map eventSourceInit]) {
-    if (eventSourceInit != null) {
-      var eventSourceInit_1 = convertDartToNative_Dictionary(eventSourceInit);
-      return EventSource._create_1(url, eventSourceInit_1);
+  static EventSource _factoryEventSource(String url, [Map eventSourceInitDict]) {
+    if (eventSourceInitDict != null) {
+      var eventSourceInitDict_1 = convertDartToNative_Dictionary(eventSourceInitDict);
+      return EventSource._create_1(url, eventSourceInitDict_1);
     }
     return EventSource._create_2(url);
   }
-  static EventSource _create_1(url, eventSourceInit) => JS('EventSource', 'new EventSource(#,#)', url, eventSourceInit);
+  static EventSource _create_1(url, eventSourceInitDict) => JS('EventSource', 'new EventSource(#,#)', url, eventSourceInitDict);
   static EventSource _create_2(url) => JS('EventSource', 'new EventSource(#)', url);
 
   @DomName('EventSource.CLOSED')
@@ -15713,7 +16601,7 @@
   @JSName('addEventListener')
   @DomName('EventTarget.addEventListener')
   @DocsEditable()
-  void _addEventListener([String type, EventListener listener, bool useCapture]) native;
+  void _addEventListener(String type, EventListener listener, [bool capture]) native;
 
   @DomName('EventTarget.dispatchEvent')
   @DocsEditable()
@@ -15722,7 +16610,7 @@
   @JSName('removeEventListener')
   @DomName('EventTarget.removeEventListener')
   @DocsEditable()
-  void _removeEventListener([String type, EventListener listener, bool useCapture]) native;
+  void _removeEventListener(String type, EventListener listener, [bool capture]) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -15738,6 +16626,18 @@
   // To suppress missing implicit constructor warnings.
   factory ExtendableEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ExtendableEvent.ExtendableEvent')
+  @DocsEditable()
+  factory ExtendableEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ExtendableEvent._create_1(type, eventInitDict_1);
+    }
+    return ExtendableEvent._create_2(type);
+  }
+  static ExtendableEvent _create_1(type, eventInitDict) => JS('ExtendableEvent', 'new ExtendableEvent(#,#)', type, eventInitDict);
+  static ExtendableEvent _create_2(type) => JS('ExtendableEvent', 'new ExtendableEvent(#)', type);
+
   @DomName('ExtendableEvent.waitUntil')
   @DocsEditable()
   @Experimental() // untriaged
@@ -15758,15 +16658,21 @@
 
   @DomName('FederatedCredential.FederatedCredential')
   @DocsEditable()
-  factory FederatedCredential(String id, String name, String avatarURL, String federation) {
-    return FederatedCredential._create_1(id, name, avatarURL, federation);
+  factory FederatedCredential(Map data) {
+    var data_1 = convertDartToNative_Dictionary(data);
+    return FederatedCredential._create_1(data_1);
   }
-  static FederatedCredential _create_1(id, name, avatarURL, federation) => JS('FederatedCredential', 'new FederatedCredential(#,#,#,#)', id, name, avatarURL, federation);
+  static FederatedCredential _create_1(data) => JS('FederatedCredential', 'new FederatedCredential(#)', data);
 
-  @DomName('FederatedCredential.federation')
+  @DomName('FederatedCredential.protocol')
   @DocsEditable()
   @Experimental() // untriaged
-  final String federation;
+  final String protocol;
+
+  @DomName('FederatedCredential.provider')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String provider;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -15777,10 +16683,22 @@
 @DomName('FetchEvent')
 @Experimental() // untriaged
 @Native("FetchEvent")
-class FetchEvent extends Event {
+class FetchEvent extends ExtendableEvent {
   // To suppress missing implicit constructor warnings.
   factory FetchEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('FetchEvent.FetchEvent')
+  @DocsEditable()
+  factory FetchEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return FetchEvent._create_1(type, eventInitDict_1);
+    }
+    return FetchEvent._create_2(type);
+  }
+  static FetchEvent _create_1(type, eventInitDict) => JS('FetchEvent', 'new FetchEvent(#,#)', type, eventInitDict);
+  static FetchEvent _create_2(type) => JS('FetchEvent', 'new FetchEvent(#)', type);
+
   @DomName('FetchEvent.isReload')
   @DocsEditable()
   @Experimental() // untriaged
@@ -15825,9 +16743,7 @@
 
   @DomName('HTMLFieldSetElement.elements')
   @DocsEditable()
-  @Returns('HtmlCollection')
-  @Creates('HtmlCollection')
-  final List<Node> elements;
+  final HtmlFormControlsCollection elements;
 
   @DomName('HTMLFieldSetElement.form')
   @DocsEditable()
@@ -15857,6 +16773,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLFieldSetElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLFieldSetElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) native;
@@ -15873,6 +16794,18 @@
   // To suppress missing implicit constructor warnings.
   factory File._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('File.File')
+  @DocsEditable()
+  factory File(List<Object> fileBits, String fileName, [Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return File._create_1(fileBits, fileName, options_1);
+    }
+    return File._create_2(fileBits, fileName);
+  }
+  static File _create_1(fileBits, fileName, options) => JS('File', 'new File(#,#,#)', fileBits, fileName, options);
+  static File _create_2(fileBits, fileName) => JS('File', 'new File(#,#)', fileBits, fileName);
+
   @DomName('File.lastModified')
   @DocsEditable()
   @Experimental() // untriaged
@@ -16212,7 +17145,7 @@
 
   @DomName('FileReader.readAsText')
   @DocsEditable()
-  void readAsText(Blob blob, [String encoding]) native;
+  void readAsText(Blob blob, [String label]) native;
 
   /// Stream of `abort` events handled by this [FileReader].
   @DomName('FileReader.onabort')
@@ -16471,6 +17404,18 @@
   // To suppress missing implicit constructor warnings.
   factory FocusEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('FocusEvent.FocusEvent')
+  @DocsEditable()
+  factory FocusEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return FocusEvent._create_1(type, eventInitDict_1);
+    }
+    return FocusEvent._create_2(type);
+  }
+  static FocusEvent _create_1(type, eventInitDict) => JS('FocusEvent', 'new FocusEvent(#,#)', type, eventInitDict);
+  static FocusEvent _create_2(type) => JS('FocusEvent', 'new FocusEvent(#)', type);
+
   @DomName('FocusEvent.relatedTarget')
   @DocsEditable()
   EventTarget get relatedTarget => _convertNativeToDart_EventTarget(this._get_relatedTarget);
@@ -16495,36 +17440,15 @@
 
   @DomName('FontFace.FontFace')
   @DocsEditable()
-  factory FontFace(String family, source, [Map descriptors]) {
-    if ((source is String || source == null) && (family is String || family == null) && descriptors == null) {
-      return FontFace._create_1(family, source);
-    }
-    if ((descriptors is Map || descriptors == null) && (source is String || source == null) && (family is String || family == null)) {
+  factory FontFace(String family, Object source, [Map descriptors]) {
+    if (descriptors != null) {
       var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return FontFace._create_2(family, source, descriptors_1);
+      return FontFace._create_1(family, source, descriptors_1);
     }
-    if ((source is TypedData || source == null) && (family is String || family == null) && descriptors == null) {
-      return FontFace._create_3(family, source);
-    }
-    if ((descriptors is Map || descriptors == null) && (source is TypedData || source == null) && (family is String || family == null)) {
-      var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return FontFace._create_4(family, source, descriptors_1);
-    }
-    if ((source is ByteBuffer || source == null) && (family is String || family == null) && descriptors == null) {
-      return FontFace._create_5(family, source);
-    }
-    if ((descriptors is Map || descriptors == null) && (source is ByteBuffer || source == null) && (family is String || family == null)) {
-      var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return FontFace._create_6(family, source, descriptors_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return FontFace._create_2(family, source);
   }
-  static FontFace _create_1(family, source) => JS('FontFace', 'new FontFace(#,#)', family, source);
-  static FontFace _create_2(family, source, descriptors) => JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
-  static FontFace _create_3(family, source) => JS('FontFace', 'new FontFace(#,#)', family, source);
-  static FontFace _create_4(family, source, descriptors) => JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
-  static FontFace _create_5(family, source) => JS('FontFace', 'new FontFace(#,#)', family, source);
-  static FontFace _create_6(family, source, descriptors) => JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
+  static FontFace _create_1(family, source, descriptors) => JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
+  static FontFace _create_2(family, source) => JS('FontFace', 'new FontFace(#,#)', family, source);
 
   @DomName('FontFace.family')
   @DocsEditable()
@@ -16695,6 +17619,31 @@
   @DomName('FormData.append')
   @DocsEditable()
   void appendBlob(String name, Blob value, [String filename]) native;
+
+  @DomName('FormData.delete')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void delete(String name) native;
+
+  @DomName('FormData.get')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get(String name) native;
+
+  @DomName('FormData.getAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Object> getAll(String name) native;
+
+  @DomName('FormData.has')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool has(String name) native;
+
+  @DomName('FormData.set')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void set(String name, value, [String filename]) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -16762,12 +17711,22 @@
 
   @DomName('HTMLFormElement.__getter__')
   @DocsEditable()
-  Element __getter__(index_OR_name) native;
+  Object __getter__(String name) native;
 
   @DomName('HTMLFormElement.checkValidity')
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLFormElement.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element item(int index) native;
+
+  @DomName('HTMLFormElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLFormElement.requestAutocomplete')
   @DocsEditable()
   // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
@@ -16796,6 +17755,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.
 
+// WARNING: Do not edit - generated code.
+
+
+@DomName('FrameRequestCallback')
+@Experimental() // untriaged
+typedef void FrameRequestCallback(num highResTime);
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 
 @DocsEditable()
 @DomName('Gamepad')
@@ -16810,6 +17779,10 @@
   @DocsEditable()
   final List<num> axes;
 
+  @DomName('Gamepad.buttons')
+  @DocsEditable()
+  final List<GamepadButton> buttons;
+
   @DomName('Gamepad.connected')
   @DocsEditable()
   @Experimental() // untriaged
@@ -16868,6 +17841,18 @@
   // To suppress missing implicit constructor warnings.
   factory GamepadEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('GamepadEvent.GamepadEvent')
+  @DocsEditable()
+  factory GamepadEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return GamepadEvent._create_1(type, eventInitDict_1);
+    }
+    return GamepadEvent._create_2(type);
+  }
+  static GamepadEvent _create_1(type, eventInitDict) => JS('GamepadEvent', 'new GamepadEvent(#,#)', type, eventInitDict);
+  static GamepadEvent _create_2(type) => JS('GamepadEvent', 'new GamepadEvent(#)', type);
+
   @DomName('GamepadEvent.gamepad')
   @DocsEditable()
   @Experimental() // untriaged
@@ -16907,6 +17892,29 @@
 
 
 @DocsEditable()
+@DomName('GeofencingEvent')
+@Experimental() // untriaged
+@Native("GeofencingEvent")
+class GeofencingEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory GeofencingEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('GeofencingEvent.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String id;
+
+  @DomName('GeofencingEvent.region')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final GeofencingRegion region;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('GeofencingRegion')
 @Experimental() // untriaged
 @Native("GeofencingRegion")
@@ -17699,8 +18707,18 @@
         type, convertDartToNative_Dictionary(options));
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory HashChangeEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('HashChangeEvent.HashChangeEvent')
+  @DocsEditable()
+  factory HashChangeEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return HashChangeEvent._create_1(type, eventInitDict_1);
+    }
+    return HashChangeEvent._create_2(type);
+  }
+  static HashChangeEvent _create_1(type, eventInitDict) => JS('HashChangeEvent', 'new HashChangeEvent(#,#)', type, eventInitDict);
+  static HashChangeEvent _create_2(type) => JS('HashChangeEvent', 'new HashChangeEvent(#)', type);
 
   /// Checks if this type is supported on the current platform.
   static bool get supported => Device.isEventTypeSupported('HashChangeEvent');
@@ -17762,43 +18780,27 @@
     if (input == null) {
       return Headers._create_1();
     }
-    if ((input is Headers || input == null)) {
+    if ((input is Headers)) {
       return Headers._create_2(input);
     }
-    if ((input is Map || input == null)) {
+    if ((input is Map)) {
       var input_1 = convertDartToNative_Dictionary(input);
       return Headers._create_3(input_1);
     }
+    if ((input is List<Object>)) {
+      return Headers._create_4(input);
+    }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
   static Headers _create_1() => JS('Headers', 'new Headers()');
   static Headers _create_2(input) => JS('Headers', 'new Headers(#)', input);
   static Headers _create_3(input) => JS('Headers', 'new Headers(#)', input);
-
-  @DomName('Headers.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int size;
-
-  @DomName('Headers.forEach')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void forEach(HeadersForEachCallback callback, [Object thisArg]) native;
+  static Headers _create_4(input) => JS('Headers', 'new Headers(#)', input);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// WARNING: Do not edit - generated code.
-
-
-@DomName('HeadersForEachCallback')
-@Experimental() // untriaged
-typedef void HeadersForEachCallback(String value, String key, Headers map);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
 
 @DocsEditable()
 @DomName('HTMLHeadingElement')
@@ -17863,6 +18865,16 @@
   @DocsEditable()
   final int length;
 
+  @DomName('History.options')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Map get options => convertNativeToDart_Dictionary(this._get_options);
+  @JSName('options')
+  @DomName('History.options')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final dynamic _get_options;
+
   @DomName('History.state')
   @DocsEditable()
   dynamic get state => convertNativeToDart_SerializedScriptValue(this._get_state);
@@ -17883,7 +18895,7 @@
 
   @DomName('History.go')
   @DocsEditable()
-  void go(int distance) native;
+  void go([int delta]) native;
 
   @DomName('History.pushState')
   @DocsEditable()
@@ -17891,14 +18903,15 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void pushState(/*any*/ data, String title, [String url]) {
-    if (url != null) {
+  void pushState(/*SerializedScriptValue*/ data, String title, String url, [Map options]) {
+    if (options != null) {
       var data_1 = convertDartToNative_SerializedScriptValue(data);
-      _pushState_1(data_1, title, url);
+      var options_2 = convertDartToNative_Dictionary(options);
+      _pushState_1(data_1, title, url, options_2);
       return;
     }
     var data_1 = convertDartToNative_SerializedScriptValue(data);
-    _pushState_2(data_1, title);
+    _pushState_2(data_1, title, url);
     return;
   }
   @JSName('pushState')
@@ -17908,7 +18921,7 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _pushState_1(data, title, url) native;
+  void _pushState_1(data, title, url, options) native;
   @JSName('pushState')
   @DomName('History.pushState')
   @DocsEditable()
@@ -17916,7 +18929,7 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _pushState_2(data, title) native;
+  void _pushState_2(data, title, url) native;
 
   @DomName('History.replaceState')
   @DocsEditable()
@@ -17924,14 +18937,15 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void replaceState(/*any*/ data, String title, [String url]) {
-    if (url != null) {
+  void replaceState(/*SerializedScriptValue*/ data, String title, String url, [Map options]) {
+    if (options != null) {
       var data_1 = convertDartToNative_SerializedScriptValue(data);
-      _replaceState_1(data_1, title, url);
+      var options_2 = convertDartToNative_Dictionary(options);
+      _replaceState_1(data_1, title, url, options_2);
       return;
     }
     var data_1 = convertDartToNative_SerializedScriptValue(data);
-    _replaceState_2(data_1, title);
+    _replaceState_2(data_1, title, url);
     return;
   }
   @JSName('replaceState')
@@ -17941,7 +18955,7 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _replaceState_1(data, title, url) native;
+  void _replaceState_1(data, title, url, options) native;
   @JSName('replaceState')
   @DomName('History.replaceState')
   @DocsEditable()
@@ -17949,7 +18963,30 @@
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.IE, '10')
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void _replaceState_2(data, title) native;
+  void _replaceState_2(data, title, url) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('HMDVRDevice')
+@Experimental() // untriaged
+@Native("HMDVRDevice")
+class HmdvrDevice extends VRDevice {
+  // To suppress missing implicit constructor warnings.
+  factory HmdvrDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('HMDVRDevice.getEyeParameters')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VREyeParameters getEyeParameters(String whichEye) native;
+
+  @DomName('HMDVRDevice.setFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void setFieldOfView([VRFieldOfView leftFov, VRFieldOfView rightFov]) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -18309,6 +19346,11 @@
   // To suppress missing implicit constructor warnings.
   factory HtmlFormControlsCollection._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('HTMLFormControlsCollection.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Node item(int index) native;
+
   @DomName('HTMLFormControlsCollection.namedItem')
   @DocsEditable()
   Object namedItem(String name) native;
@@ -18346,6 +19388,12 @@
 class HtmlOptionsCollection extends HtmlCollection {
   // To suppress missing implicit constructor warnings.
   factory HtmlOptionsCollection._() { throw new UnsupportedError("Not supported"); }
+
+  @JSName('item')
+  @DomName('HTMLOptionsCollection.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Node _item(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -18989,7 +20037,7 @@
   @DomName('XMLHttpRequest.getResponseHeader')
   @DocsEditable()
   @Unstable()
-  String getResponseHeader(String header) native;
+  String getResponseHeader(String name) native;
 
   /**
    * Specify a particular MIME type (such as `text/xml`) desired for the
@@ -19003,7 +20051,7 @@
   @SupportedBrowser(SupportedBrowser.CHROME)
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void overrideMimeType(String override) native;
+  void overrideMimeType(String mime) native;
 
   /**
    * Send the request with any given `data`.
@@ -19020,7 +20068,7 @@
    */
   @DomName('XMLHttpRequest.send')
   @DocsEditable()
-  void send([data]) native;
+  void send([body_OR_data]) native;
 
   /**
    * Sets the value of an HTTP requst header.
@@ -19041,7 +20089,7 @@
    */
   @DomName('XMLHttpRequest.setRequestHeader')
   @DocsEditable()
-  void setRequestHeader(String header, String value) native;
+  void setRequestHeader(String name, String value) native;
 
   /// Stream of `readystatechange` events handled by this [HttpRequest].
 /**
@@ -19248,18 +20296,13 @@
   @DocsEditable()
   String height;
 
-  @DomName('HTMLIFrameElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLIFrameElement.name')
   @DocsEditable()
   String name;
 
   @DomName('HTMLIFrameElement.sandbox')
   @DocsEditable()
-  String sandbox;
+  final DomSettableTokenList sandbox;
 
   @DomName('HTMLIFrameElement.src')
   @DocsEditable()
@@ -19309,21 +20352,21 @@
 
   @DomName('ImageData.ImageData')
   @DocsEditable()
-  factory ImageData(data_OR_width, int height_OR_width, [int height]) {
-    if ((height_OR_width is int || height_OR_width == null) && (data_OR_width is int || data_OR_width == null) && height == null) {
-      return ImageData._create_1(data_OR_width, height_OR_width);
+  factory ImageData(data_OR_sw, int sh_OR_sw, [int sh]) {
+    if ((sh_OR_sw is int) && (data_OR_sw is int) && sh == null) {
+      return ImageData._create_1(data_OR_sw, sh_OR_sw);
     }
-    if ((height_OR_width is int || height_OR_width == null) && (data_OR_width is Uint8ClampedList || data_OR_width == null) && height == null) {
-      return ImageData._create_2(data_OR_width, height_OR_width);
+    if ((sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList) && sh == null) {
+      return ImageData._create_2(data_OR_sw, sh_OR_sw);
     }
-    if ((height is int || height == null) && (height_OR_width is int || height_OR_width == null) && (data_OR_width is Uint8ClampedList || data_OR_width == null)) {
-      return ImageData._create_3(data_OR_width, height_OR_width, height);
+    if ((sh is int) && (sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList)) {
+      return ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
-  static ImageData _create_1(data_OR_width, height_OR_width) => JS('ImageData', 'new ImageData(#,#)', data_OR_width, height_OR_width);
-  static ImageData _create_2(data_OR_width, height_OR_width) => JS('ImageData', 'new ImageData(#,#)', data_OR_width, height_OR_width);
-  static ImageData _create_3(data_OR_width, height_OR_width, height) => JS('ImageData', 'new ImageData(#,#,#)', data_OR_width, height_OR_width, height);
+  static ImageData _create_1(data_OR_sw, sh_OR_sw) => JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
+  static ImageData _create_2(data_OR_sw, sh_OR_sw) => JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
+  static ImageData _create_3(data_OR_sw, sh_OR_sw, sh) => JS('ImageData', 'new ImageData(#,#,#)', data_OR_sw, sh_OR_sw, sh);
 
   @DomName('ImageData.data')
   @DocsEditable()
@@ -19388,11 +20431,6 @@
   @DocsEditable()
   int height;
 
-  @DomName('HTMLImageElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLImageElement.isMap')
   @DocsEditable()
   bool isMap;
@@ -19451,6 +20489,36 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
+@DocsEditable()
+@DomName('InputDevice')
+@Experimental() // untriaged
+@Native("InputDevice")
+class InputDevice extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory InputDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('InputDevice.InputDevice')
+  @DocsEditable()
+  factory InputDevice([Map deviceInitDict]) {
+    if (deviceInitDict != null) {
+      var deviceInitDict_1 = convertDartToNative_Dictionary(deviceInitDict);
+      return InputDevice._create_1(deviceInitDict_1);
+    }
+    return InputDevice._create_2();
+  }
+  static InputDevice _create_1(deviceInitDict) => JS('InputDevice', 'new InputDevice(#)', deviceInitDict);
+  static InputDevice _create_2() => JS('InputDevice', 'new InputDevice()');
+
+  @DomName('InputDevice.firesTouchEvents')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool firesTouchEvents;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
 @DomName('HTMLInputElement')
 @Native("HTMLInputElement")
 class InputElement extends HtmlElement implements
@@ -19504,6 +20572,11 @@
   @DocsEditable()
   String alt;
 
+  @DomName('HTMLInputElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String autocapitalize;
+
   @DomName('HTMLInputElement.autocomplete')
   @DocsEditable()
   String autocomplete;
@@ -19608,6 +20681,11 @@
   @DocsEditable()
   String min;
 
+  @DomName('HTMLInputElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int minLength;
+
   @DomName('HTMLInputElement.multiple')
   @DocsEditable()
   bool multiple;
@@ -19722,6 +20800,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLInputElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLInputElement.select')
   @DocsEditable()
   void select() native;
@@ -20309,66 +21392,6 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
-@DocsEditable()
-@DomName('InputMethodContext')
-// http://www.w3.org/TR/ime-api/#idl-def-InputMethodContext
-@Experimental()
-@Native("InputMethodContext")
-class InputMethodContext extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory InputMethodContext._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('InputMethodContext.compositionEndOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int compositionEndOffset;
-
-  @DomName('InputMethodContext.compositionStartOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final int compositionStartOffset;
-
-  @DomName('InputMethodContext.locale')
-  @DocsEditable()
-  final String locale;
-
-  @DomName('InputMethodContext.target')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final HtmlElement target;
-
-  @DomName('InputMethodContext.confirmComposition')
-  @DocsEditable()
-  void confirmComposition() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('InstallEvent')
-@Experimental() // untriaged
-@Native("InstallEvent")
-class InstallEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory InstallEvent._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('InstallEvent.reloadAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future reloadAll() native;
-
-  @DomName('InstallEvent.replace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void replace() native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
 /**
  * An event that describes user interaction with the keyboard.
  *
@@ -20430,8 +21453,21 @@
 
   @DomName('KeyboardEvent.charCode')
   int get charCode => _charCode;
-  // To suppress missing implicit constructor warnings.
-  factory KeyboardEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('KeyboardEvent.which')
+  int get which => _which;
+
+  @DomName('KeyboardEvent.KeyboardEvent')
+  @DocsEditable()
+  factory KeyboardEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return KeyboardEvent._create_1(type, eventInitDict_1);
+    }
+    return KeyboardEvent._create_2(type);
+  }
+  static KeyboardEvent _create_1(type, eventInitDict) => JS('KeyboardEvent', 'new KeyboardEvent(#,#)', type, eventInitDict);
+  static KeyboardEvent _create_2(type) => JS('KeyboardEvent', 'new KeyboardEvent(#)', type);
 
   @DomName('KeyboardEvent.DOM_KEY_LOCATION_LEFT')
   @DocsEditable()
@@ -20457,10 +21493,20 @@
   @DocsEditable()
   final bool altKey;
 
+  @DomName('KeyboardEvent.code')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String code;
+
   @DomName('KeyboardEvent.ctrlKey')
   @DocsEditable()
   final bool ctrlKey;
 
+  @DomName('KeyboardEvent.key')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String key;
+
   @JSName('keyIdentifier')
   @DomName('KeyboardEvent.keyIdentifier')
   @DocsEditable()
@@ -20493,7 +21539,7 @@
   @DomName('KeyboardEvent.getModifierState')
   @DocsEditable()
   @Experimental() // untriaged
-  bool getModifierState(String keyArgument) native;
+  bool getModifierState(String keyArg) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -20502,6 +21548,38 @@
 
 
 @DocsEditable()
+@DomName('KeyframeEffect')
+@Experimental() // untriaged
+@Native("KeyframeEffect")
+class KeyframeEffect extends AnimationEffectReadOnly {
+  // To suppress missing implicit constructor warnings.
+  factory KeyframeEffect._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('KeyframeEffect.KeyframeEffect')
+  @DocsEditable()
+  factory KeyframeEffect(Element target, List<Map> keyframes, [timing]) {
+    if ((keyframes is List<Map>) && (target is Element || target == null) && timing == null) {
+      return KeyframeEffect._create_1(target, keyframes);
+    }
+    if ((timing is num) && (keyframes is List<Map>) && (target is Element || target == null)) {
+      return KeyframeEffect._create_2(target, keyframes, timing);
+    }
+    if ((timing is Map) && (keyframes is List<Map>) && (target is Element || target == null)) {
+      var timing_1 = convertDartToNative_Dictionary(timing);
+      return KeyframeEffect._create_3(target, keyframes, timing_1);
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  static KeyframeEffect _create_1(target, keyframes) => JS('KeyframeEffect', 'new KeyframeEffect(#,#)', target, keyframes);
+  static KeyframeEffect _create_2(target, keyframes, timing) => JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, keyframes, timing);
+  static KeyframeEffect _create_3(target, keyframes, timing) => JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, keyframes, timing);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('HTMLKeygenElement')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
@@ -20576,6 +21654,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLKeygenElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLKeygenElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) native;
@@ -20742,31 +21825,6 @@
     return JS('bool', '("import" in #)', this);
   }
 }
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('LocalCredential')
-@Experimental() // untriaged
-@Native("LocalCredential")
-class LocalCredential extends Credential {
-  // To suppress missing implicit constructor warnings.
-  factory LocalCredential._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('LocalCredential.LocalCredential')
-  @DocsEditable()
-  factory LocalCredential(String id, String name, String avatarURL, String password) {
-    return LocalCredential._create_1(id, name, avatarURL, password);
-  }
-  static LocalCredential _create_1(id, name, avatarURL, password) => JS('LocalCredential', 'new LocalCredential(#,#,#,#)', id, name, avatarURL, password);
-
-  @DomName('LocalCredential.password')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final String password;
-}
 // 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.
@@ -20847,27 +21905,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// WARNING: Do not edit - generated code.
-
-
-@DomName('MIDIErrorCallback')
-// http://webaudio.github.io/web-midi-api/#midierrorcallback
-@Experimental()
-typedef void MidiErrorCallback(DomError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DomName('MIDISuccessCallback')
-@Experimental() // untriaged
-typedef void MidiSuccessCallback(MidiAccess access, bool sysex);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
 
 @DocsEditable()
 @DomName('HTMLMapElement')
@@ -21010,12 +22047,33 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// WARNING: Do not edit - generated code.
 
-
-@DomName('MediaDeviceInfoCallback')
+@DocsEditable()
+@DomName('MediaDevices')
 @Experimental() // untriaged
-typedef void MediaDeviceInfoCallback(List<MediaDeviceInfo> devices);
+@Native("MediaDevices")
+class MediaDevices extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory MediaDevices._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaDevices.enumerateDevices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future enumerateDevices() native;
+
+  @DomName('MediaDevices.getUserMedia')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getUserMedia(Map options) {
+    var options_1 = convertDartToNative_Dictionary(options);
+    return _getUserMedia_1(options_1);
+  }
+  @JSName('getUserMedia')
+  @DomName('MediaDevices.getUserMedia')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _getUserMedia_1(options) native;
+}
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -21181,11 +22239,6 @@
   @DocsEditable()
   final MediaError error;
 
-  @DomName('HTMLMediaElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLMediaElement.loop')
   @DocsEditable()
   bool loop;
@@ -21236,6 +22289,16 @@
   @DocsEditable()
   final bool seeking;
 
+  @DomName('HTMLMediaElement.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  MediaSession session;
+
+  @DomName('HTMLMediaElement.sinkId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String sinkId;
+
   @DomName('HTMLMediaElement.src')
   @DocsEditable()
   String src;
@@ -21301,6 +22364,11 @@
   @Experimental() // untriaged
   Future setMediaKeys(MediaKeys mediaKeys) native;
 
+  @DomName('HTMLMediaElement.setSinkId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future setSinkId(String sinkId) native;
+
   @JSName('webkitAddKey')
   @DomName('HTMLMediaElement.webkitAddKey')
   @DocsEditable()
@@ -21362,6 +22430,41 @@
 
 
 @DocsEditable()
+@DomName('MediaEncryptedEvent')
+@Experimental() // untriaged
+@Native("MediaEncryptedEvent")
+class MediaEncryptedEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory MediaEncryptedEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaEncryptedEvent.MediaEncryptedEvent')
+  @DocsEditable()
+  factory MediaEncryptedEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MediaEncryptedEvent._create_1(type, eventInitDict_1);
+    }
+    return MediaEncryptedEvent._create_2(type);
+  }
+  static MediaEncryptedEvent _create_1(type, eventInitDict) => JS('MediaEncryptedEvent', 'new MediaEncryptedEvent(#,#)', type, eventInitDict);
+  static MediaEncryptedEvent _create_2(type) => JS('MediaEncryptedEvent', 'new MediaEncryptedEvent(#)', type);
+
+  @DomName('MediaEncryptedEvent.initData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final ByteBuffer initData;
+
+  @DomName('MediaEncryptedEvent.initDataType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String initDataType;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('MediaError')
 @Unstable()
 @Native("MediaError")
@@ -21377,12 +22480,6 @@
   @DocsEditable()
   static const int MEDIA_ERR_DECODE = 3;
 
-  @DomName('MediaError.MEDIA_ERR_ENCRYPTED')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#error-codes
-  @Experimental()
-  static const int MEDIA_ERR_ENCRYPTED = 5;
-
   @DomName('MediaError.MEDIA_ERR_NETWORK')
   @DocsEditable()
   static const int MEDIA_ERR_NETWORK = 2;
@@ -21456,6 +22553,18 @@
   // To suppress missing implicit constructor warnings.
   factory MediaKeyEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaKeyEvent.MediaKeyEvent')
+  @DocsEditable()
+  factory MediaKeyEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MediaKeyEvent._create_1(type, eventInitDict_1);
+    }
+    return MediaKeyEvent._create_2(type);
+  }
+  static MediaKeyEvent _create_1(type, eventInitDict) => JS('MediaKeyEvent', 'new MediaKeyEvent(#,#)', type, eventInitDict);
+  static MediaKeyEvent _create_2(type) => JS('MediaKeyEvent', 'new MediaKeyEvent(#)', type);
+
   @JSName('defaultURL')
   @DomName('MediaKeyEvent.defaultURL')
   @DocsEditable()
@@ -21499,37 +22608,26 @@
   // To suppress missing implicit constructor warnings.
   factory MediaKeyMessageEvent._() { throw new UnsupportedError("Not supported"); }
 
-  @JSName('destinationURL')
-  @DomName('MediaKeyMessageEvent.destinationURL')
+  @DomName('MediaKeyMessageEvent.MediaKeyMessageEvent')
   @DocsEditable()
-  final String destinationUrl;
+  factory MediaKeyMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MediaKeyMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return MediaKeyMessageEvent._create_2(type);
+  }
+  static MediaKeyMessageEvent _create_1(type, eventInitDict) => JS('MediaKeyMessageEvent', 'new MediaKeyMessageEvent(#,#)', type, eventInitDict);
+  static MediaKeyMessageEvent _create_2(type) => JS('MediaKeyMessageEvent', 'new MediaKeyMessageEvent(#)', type);
 
   @DomName('MediaKeyMessageEvent.message')
   @DocsEditable()
   final ByteBuffer message;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
 
-
-@DocsEditable()
-@DomName('MediaKeyNeededEvent')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeyneededevent
-@Experimental()
-@Native("MediaKeyNeededEvent")
-class MediaKeyNeededEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeyNeededEvent._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('MediaKeyNeededEvent.contentType')
+  @DomName('MediaKeyMessageEvent.messageType')
   @DocsEditable()
   @Experimental() // untriaged
-  final String contentType;
-
-  @DomName('MediaKeyNeededEvent.initData')
-  @DocsEditable()
-  final Uint8List initData;
+  final String messageType;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -21550,32 +22648,96 @@
   @Experimental() // untriaged
   final Future closed;
 
-  @DomName('MediaKeySession.error')
+  @DomName('MediaKeySession.expiration')
   @DocsEditable()
-  final MediaKeyError error;
+  @Experimental() // untriaged
+  final double expiration;
 
-  @DomName('MediaKeySession.keySystem')
+  @DomName('MediaKeySession.keyStatuses')
   @DocsEditable()
-  final String keySystem;
+  @Experimental() // untriaged
+  final MediaKeyStatusMap keyStatuses;
 
   @DomName('MediaKeySession.sessionId')
   @DocsEditable()
   final String sessionId;
 
+  @DomName('MediaKeySession.close')
+  @DocsEditable()
+  Future close() native;
+
   @DomName('MediaKeySession.generateRequest')
   @DocsEditable()
   @Experimental() // untriaged
-  Future generateRequest(String initDataType, initData) native;
+  Future generateRequest(String initDataType, /*BufferSource*/ initData) native;
 
-  @DomName('MediaKeySession.release')
+  @DomName('MediaKeySession.load')
   @DocsEditable()
   @Experimental() // untriaged
-  Future release() native;
+  Future load(String sessionId) native;
+
+  @DomName('MediaKeySession.remove')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future remove() native;
 
   @JSName('update')
   @DomName('MediaKeySession.update')
   @DocsEditable()
-  Future _update(response) native;
+  Future _update(/*BufferSource*/ response) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('MediaKeyStatusMap')
+@Experimental() // untriaged
+@Native("MediaKeyStatusMap")
+class MediaKeyStatusMap extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory MediaKeyStatusMap._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaKeyStatusMap.size')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int size;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('MediaKeySystemAccess')
+@Experimental() // untriaged
+@Native("MediaKeySystemAccess")
+class MediaKeySystemAccess extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory MediaKeySystemAccess._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaKeySystemAccess.keySystem')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String keySystem;
+
+  @DomName('MediaKeySystemAccess.createMediaKeys')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future createMediaKeys() native;
+
+  @DomName('MediaKeySystemAccess.getConfiguration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Map getConfiguration() {
+    return convertNativeToDart_Dictionary(_getConfiguration_1());
+  }
+  @JSName('getConfiguration')
+  @DomName('MediaKeySystemAccess.getConfiguration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  _getConfiguration_1() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -21591,24 +22753,15 @@
   // To suppress missing implicit constructor warnings.
   factory MediaKeys._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('MediaKeys.keySystem')
-  @DocsEditable()
-  final String keySystem;
-
-  @DomName('MediaKeys.create')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static Future create(String keySystem) native;
-
   @JSName('createSession')
   @DomName('MediaKeys.createSession')
   @DocsEditable()
   MediaKeySession _createSession([String sessionType]) native;
 
-  @DomName('MediaKeys.isTypeSupported')
+  @DomName('MediaKeys.setServerCertificate')
   @DocsEditable()
   @Experimental() // untriaged
-  static bool isTypeSupported(String keySystem, String contentType) native;
+  Future setServerCertificate(/*BufferSource*/ serverCertificate) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -21633,11 +22786,11 @@
 
   @DomName('MediaList.appendMedium')
   @DocsEditable()
-  void appendMedium(String newMedium) native;
+  void appendMedium(String medium) native;
 
   @DomName('MediaList.deleteMedium')
   @DocsEditable()
-  void deleteMedium(String oldMedium) native;
+  void deleteMedium(String medium) native;
 
   @DomName('MediaList.item')
   @DocsEditable()
@@ -21695,6 +22848,18 @@
   // To suppress missing implicit constructor warnings.
   factory MediaQueryListEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaQueryListEvent.MediaQueryListEvent')
+  @DocsEditable()
+  factory MediaQueryListEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MediaQueryListEvent._create_1(type, eventInitDict_1);
+    }
+    return MediaQueryListEvent._create_2(type);
+  }
+  static MediaQueryListEvent _create_1(type, eventInitDict) => JS('MediaQueryListEvent', 'new MediaQueryListEvent(#,#)', type, eventInitDict);
+  static MediaQueryListEvent _create_2(type) => JS('MediaQueryListEvent', 'new MediaQueryListEvent(#)', type);
+
   @DomName('MediaQueryListEvent.matches')
   @DocsEditable()
   @Experimental() // untriaged
@@ -21711,6 +22876,36 @@
 
 
 @DocsEditable()
+@DomName('MediaSession')
+@Experimental() // untriaged
+@Native("MediaSession")
+class MediaSession extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory MediaSession._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaSession.MediaSession')
+  @DocsEditable()
+  factory MediaSession() {
+    return MediaSession._create_1();
+  }
+  static MediaSession _create_1() => JS('MediaSession', 'new MediaSession()');
+
+  @DomName('MediaSession.activate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void activate() native;
+
+  @DomName('MediaSession.deactivate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deactivate() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('MediaSource')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.IE, '11')
@@ -21825,6 +23020,11 @@
   static MediaStream _create_2(stream_OR_tracks) => JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
   static MediaStream _create_3(stream_OR_tracks) => JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
 
+  @DomName('MediaStream.active')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool active;
+
   @DomName('MediaStream.ended')
   @DocsEditable()
   final bool ended;
@@ -21922,6 +23122,18 @@
   // To suppress missing implicit constructor warnings.
   factory MediaStreamEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaStreamEvent.MediaStreamEvent')
+  @DocsEditable()
+  factory MediaStreamEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MediaStreamEvent._create_1(type, eventInitDict_1);
+    }
+    return MediaStreamEvent._create_2(type);
+  }
+  static MediaStreamEvent _create_1(type, eventInitDict) => JS('MediaStreamEvent', 'new MediaStreamEvent(#,#)', type, eventInitDict);
+  static MediaStreamEvent _create_2(type) => JS('MediaStreamEvent', 'new MediaStreamEvent(#)', type);
+
   /// Checks if this type is supported on the current platform.
   static bool get supported => Device.isEventTypeSupported('MediaStreamEvent');
 
@@ -22175,11 +23387,21 @@
   @Experimental() // untriaged
   bool disabled;
 
+  @DomName('HTMLMenuItemElement.icon')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String icon;
+
   @DomName('HTMLMenuItemElement.label')
   @DocsEditable()
   @Experimental() // untriaged
   String label;
 
+  @DomName('HTMLMenuItemElement.radiogroup')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String radiogroup;
+
   @DomName('HTMLMenuItemElement.type')
   @DocsEditable()
   @Experimental() // untriaged
@@ -22234,12 +23456,14 @@
         lastEventId, source, messagePorts);
     return event;
   }
-  // To suppress missing implicit constructor warnings.
-  factory MessageEvent._() { throw new UnsupportedError("Not supported"); }
 
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
   @DomName('MessageEvent.data')
   @DocsEditable()
   dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
+
   @JSName('data')
   @DomName('MessageEvent.data')
   @DocsEditable()
@@ -22247,6 +23471,20 @@
   @annotation_Returns_SerializedScriptValue
   final dynamic _get_data;
 
+
+
+  @DomName('MessageEvent.MessageEvent')
+  @DocsEditable()
+  factory MessageEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MessageEvent._create_1(type, eventInitDict_1);
+    }
+    return MessageEvent._create_2(type);
+  }
+  static MessageEvent _create_1(type, eventInitDict) => JS('MessageEvent', 'new MessageEvent(#,#)', type, eventInitDict);
+  static MessageEvent _create_2(type) => JS('MessageEvent', 'new MessageEvent(#)', type);
+
   @DomName('MessageEvent.lastEventId')
   @DocsEditable()
   @Unstable()
@@ -22269,7 +23507,7 @@
   @JSName('initMessageEvent')
   @DomName('MessageEvent.initMessageEvent')
   @DocsEditable()
-  void _initMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, List<MessagePort> messagePorts) native;
+  void _initMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, List<MessagePort> portsArg) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -22475,26 +23713,6 @@
   // To suppress missing implicit constructor warnings.
   factory MidiAccess._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `connect` events to event
-   * handlers that are not necessarily instances of [MidiAccess].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIAccess.connectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> connectEvent = const EventStreamProvider<MidiConnectionEvent>('connect');
-
-  /**
-   * Static factory designed to expose `disconnect` events to event
-   * handlers that are not necessarily instances of [MidiAccess].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIAccess.disconnectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
-
   @DomName('MIDIAccess.inputs')
   @DocsEditable()
   final MidiInputMap inputs;
@@ -22507,16 +23725,6 @@
   @DocsEditable()
   @Experimental() // untriaged
   final bool sysexEnabled;
-
-  /// Stream of `connect` events handled by this [MidiAccess].
-  @DomName('MIDIAccess.onconnect')
-  @DocsEditable()
-  Stream<MidiConnectionEvent> get onConnect => connectEvent.forTarget(this);
-
-  /// Stream of `disconnect` events handled by this [MidiAccess].
-  @DomName('MIDIAccess.ondisconnect')
-  @DocsEditable()
-  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -22532,6 +23740,18 @@
   // To suppress missing implicit constructor warnings.
   factory MidiConnectionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MIDIConnectionEvent.MIDIConnectionEvent')
+  @DocsEditable()
+  factory MidiConnectionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MidiConnectionEvent._create_1(type, eventInitDict_1);
+    }
+    return MidiConnectionEvent._create_2(type);
+  }
+  static MidiConnectionEvent _create_1(type, eventInitDict) => JS('MidiConnectionEvent', 'new MIDIConnectionEvent(#,#)', type, eventInitDict);
+  static MidiConnectionEvent _create_2(type) => JS('MidiConnectionEvent', 'new MIDIConnectionEvent(#)', type);
+
   @DomName('MIDIConnectionEvent.port')
   @DocsEditable()
   final MidiPort port;
@@ -22582,31 +23802,6 @@
   @DocsEditable()
   @Experimental() // untriaged
   final int size;
-
-  @DomName('MIDIInputMap.entries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator entries() native;
-
-  @DomName('MIDIInputMap.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object get(String id) native;
-
-  @DomName('MIDIInputMap.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String key) native;
-
-  @DomName('MIDIInputMap.keys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator keys() native;
-
-  @DomName('MIDIInputMap.values')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator values() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -22622,6 +23817,18 @@
   // To suppress missing implicit constructor warnings.
   factory MidiMessageEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MIDIMessageEvent.MIDIMessageEvent')
+  @DocsEditable()
+  factory MidiMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MidiMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return MidiMessageEvent._create_2(type);
+  }
+  static MidiMessageEvent _create_1(type, eventInitDict) => JS('MidiMessageEvent', 'new MIDIMessageEvent(#,#)', type, eventInitDict);
+  static MidiMessageEvent _create_2(type) => JS('MidiMessageEvent', 'new MIDIMessageEvent(#)', type);
+
   @DomName('MIDIMessageEvent.data')
   @DocsEditable()
   final Uint8List data;
@@ -22665,31 +23872,6 @@
   @DocsEditable()
   @Experimental() // untriaged
   final int size;
-
-  @DomName('MIDIOutputMap.entries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator entries() native;
-
-  @DomName('MIDIOutputMap.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object get(String id) native;
-
-  @DomName('MIDIOutputMap.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String key) native;
-
-  @DomName('MIDIOutputMap.keys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator keys() native;
-
-  @DomName('MIDIOutputMap.values')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator values() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -22705,15 +23887,10 @@
   // To suppress missing implicit constructor warnings.
   factory MidiPort._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `disconnect` events to event
-   * handlers that are not necessarily instances of [MidiPort].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIPort.disconnectEvent')
+  @DomName('MIDIPort.connection')
   @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
+  @Experimental() // untriaged
+  final String connection;
 
   @DomName('MIDIPort.id')
   @DocsEditable()
@@ -22727,6 +23904,11 @@
   @DocsEditable()
   final String name;
 
+  @DomName('MIDIPort.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String state;
+
   @DomName('MIDIPort.type')
   @DocsEditable()
   final String type;
@@ -22735,10 +23917,15 @@
   @DocsEditable()
   final String version;
 
-  /// Stream of `disconnect` events handled by this [MidiPort].
-  @DomName('MIDIPort.ondisconnect')
+  @DomName('MIDIPort.close')
   @DocsEditable()
-  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
+  @Experimental() // untriaged
+  Future close() native;
+
+  @DomName('MIDIPort.open')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future open() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -22830,10 +24017,6 @@
   MimeType elementAt(int index) => this[index];
   // -- end List<MimeType> mixins.
 
-  @DomName('MimeTypeArray.__getter__')
-  @DocsEditable()
-  MimeType __getter__(String name) native;
-
   @DomName('MimeTypeArray.item')
   @DocsEditable()
   MimeType item(int index) native;
@@ -22875,7 +24058,7 @@
 
 
 @DomName('MouseEvent')
-@Native("MouseEvent,DragEvent,PointerEvent,MSPointerEvent")
+@Native("MouseEvent,DragEvent")
 class MouseEvent extends UIEvent {
   factory MouseEvent(String type,
       {Window view, int detail: 0, int screenX: 0, int screenY: 0,
@@ -22892,8 +24075,18 @@
         button, relatedTarget);
     return event;
   }
-  // To suppress missing implicit constructor warnings.
-  factory MouseEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MouseEvent.MouseEvent')
+  @DocsEditable()
+  factory MouseEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return MouseEvent._create_1(type, eventInitDict_1);
+    }
+    return MouseEvent._create_2(type);
+  }
+  static MouseEvent _create_1(type, eventInitDict) => JS('MouseEvent', 'new MouseEvent(#,#)', type, eventInitDict);
+  static MouseEvent _create_2(type) => JS('MouseEvent', 'new MouseEvent(#)', type);
 
   @DomName('MouseEvent.altKey')
   @DocsEditable()
@@ -22903,6 +24096,11 @@
   @DocsEditable()
   final int button;
 
+  @DomName('MouseEvent.buttons')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int buttons;
+
   @JSName('clientX')
   @DomName('MouseEvent.clientX')
   @DocsEditable()
@@ -22934,6 +24132,18 @@
   @deprecated
   final Node fromElement;
 
+  @JSName('layerX')
+  @DomName('MouseEvent.layerX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int _layerX;
+
+  @JSName('layerY')
+  @DomName('MouseEvent.layerY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int _layerY;
+
   @DomName('MouseEvent.metaKey')
   @DocsEditable()
   final bool metaKey;
@@ -22950,6 +24160,18 @@
   @Experimental() // untriaged
   final int _movementY;
 
+  @JSName('pageX')
+  @DomName('MouseEvent.pageX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int _pageX;
+
+  @JSName('pageY')
+  @DomName('MouseEvent.pageY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int _pageY;
+
   @DomName('MouseEvent.region')
   @DocsEditable()
   @Experimental() // untriaged
@@ -22962,7 +24184,7 @@
   @DomName('MouseEvent.relatedTarget')
   @DocsEditable()
   @Creates('Node')
-  @Returns('EventTarget|=Object|Null')
+  @Returns('EventTarget|=Object')
   final dynamic _get_relatedTarget;
 
   @JSName('screenX')
@@ -23007,17 +24229,20 @@
   @Experimental()
   final int _webkitMovementY;
 
+  // Use implementation from UIEvent.
+  // final int _which;
+
   @DomName('MouseEvent.initMouseEvent')
   @DocsEditable()
-  void _initMouseEvent(String type, bool canBubble, bool cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, int button, EventTarget relatedTarget) {
+  void _initMouseEvent(String type, bool bubbles, bool cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, int button, EventTarget relatedTarget) {
     var relatedTarget_1 = _convertDartToNative_EventTarget(relatedTarget);
-    _initMouseEvent_1(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
+    _initMouseEvent_1(type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
     return;
   }
   @JSName('initMouseEvent')
   @DomName('MouseEvent.initMouseEvent')
   @DocsEditable()
-  void _initMouseEvent_1(type, canBubble, cancelable, Window view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) native;
+  void _initMouseEvent_1(type, bubbles, cancelable, Window view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) native;
 
 
   @DomName('MouseEvent.clientX')
@@ -23058,6 +24283,14 @@
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
   Point get screen => new Point(_screenX, _screenY);
+
+  @DomName('MouseEvent.layerX')
+  @DomName('MouseEvent.layerY')
+  Point get layer => new Point(_layerX, _layerY);
+
+  @DomName('MouseEvent.pageX')
+  @DomName('MouseEvent.pageY')
+  Point get page => new Point(_pageX, _pageY);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -23237,7 +24470,7 @@
 
 @DomName('Navigator')
 @Native("Navigator")
-class Navigator extends Interceptor implements NavigatorCpu, NavigatorLanguage, NavigatorOnLine, NavigatorID {
+class Navigator extends Interceptor implements NavigatorStorageUtils, NavigatorCpu, NavigatorLanguage, NavigatorOnLine, NavigatorID {
 
   @DomName('Navigator.language')
   String get language => JS('String', '#.language || #.userLanguage', this,
@@ -23313,16 +24546,16 @@
   // To suppress missing implicit constructor warnings.
   factory Navigator._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('Navigator.bluetooth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Bluetooth bluetooth;
+
   @DomName('Navigator.connection')
   @DocsEditable()
   @Experimental() // untriaged
   final NetworkInformation connection;
 
-  @DomName('Navigator.cookieEnabled')
-  @DocsEditable()
-  @Unstable()
-  final bool cookieEnabled;
-
   @DomName('Navigator.credentials')
   @DocsEditable()
   @Experimental() // untriaged
@@ -23334,11 +24567,6 @@
   @Experimental() // experimental
   final String doNotTrack;
 
-  @DomName('Navigator.geofencing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final Geofencing geofencing;
-
   @DomName('Navigator.geolocation')
   @DocsEditable()
   @Unstable()
@@ -23349,11 +24577,21 @@
   @Experimental() // untriaged
   final int maxTouchPoints;
 
+  @DomName('Navigator.mediaDevices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final MediaDevices mediaDevices;
+
   @DomName('Navigator.mimeTypes')
   @DocsEditable()
   @Experimental() // nonstandard
   final MimeTypeArray mimeTypes;
 
+  @DomName('Navigator.permissions')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Permissions permissions;
+
   @DomName('Navigator.presentation')
   @DocsEditable()
   @Experimental() // untriaged
@@ -23364,16 +24602,16 @@
   @Unstable()
   final String productSub;
 
-  @DomName('Navigator.push')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final PushManager push;
-
   @DomName('Navigator.serviceWorker')
   @DocsEditable()
   @Experimental() // untriaged
   final ServiceWorkerContainer serviceWorker;
 
+  @DomName('Navigator.services')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final ServicePortCollection services;
+
   @DomName('Navigator.storageQuota')
   @DocsEditable()
   @Experimental() // untriaged
@@ -23419,21 +24657,46 @@
   @Creates('_GamepadList')
   List<Gamepad> getGamepads() native;
 
-  @DomName('Navigator.getStorageUpdates')
+  @DomName('Navigator.getVRDevices')
   @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils
-  @Experimental()
-  void getStorageUpdates() native;
+  @Experimental() // untriaged
+  Future getVRDevices() native;
 
   @DomName('Navigator.registerProtocolHandler')
   @DocsEditable()
   @Unstable()
   void registerProtocolHandler(String scheme, String url, String title) native;
 
+  @DomName('Navigator.requestMIDIAccess')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requestMidiAccess([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _requestMidiAccess_1(options_1);
+    }
+    return _requestMidiAccess_2();
+  }
+  @JSName('requestMIDIAccess')
+  @DomName('Navigator.requestMIDIAccess')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _requestMidiAccess_1(options) native;
+  @JSName('requestMIDIAccess')
+  @DomName('Navigator.requestMIDIAccess')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _requestMidiAccess_2() native;
+
+  @DomName('Navigator.requestMediaKeySystemAccess')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requestMediaKeySystemAccess(String keySystem, List<Map> supportedConfigurations) native;
+
   @DomName('Navigator.sendBeacon')
   @DocsEditable()
   @Experimental() // untriaged
-  bool sendBeacon(String url, data) native;
+  bool sendBeacon(String url, Object data) native;
 
   // From NavigatorCPU
 
@@ -23489,6 +24752,19 @@
   @Unstable()
   final bool onLine;
 
+  // From NavigatorStorageUtils
+
+  @DomName('Navigator.cookieEnabled')
+  @DocsEditable()
+  @Unstable()
+  final bool cookieEnabled;
+
+  @DomName('Navigator.getStorageUpdates')
+  @DocsEditable()
+  // http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils
+  @Experimental()
+  void getStorageUpdates() native;
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -23566,6 +24842,29 @@
 
 
 @DocsEditable()
+@DomName('NavigatorStorageUtils')
+@Experimental() // untriaged
+@Native("NavigatorStorageUtils")
+class NavigatorStorageUtils extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory NavigatorStorageUtils._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('NavigatorStorageUtils.cookieEnabled')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool cookieEnabled;
+
+  @DomName('NavigatorStorageUtils.getStorageUpdates')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void getStorageUpdates() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('NavigatorUserMediaError')
 // http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaError
 @Experimental()
@@ -24141,7 +25440,7 @@
    */
   @DomName('Node.appendChild')
   @DocsEditable()
-  Node append(Node newChild) native;
+  Node append(Node node) native;
 
   @JSName('cloneNode')
   /**
@@ -24193,17 +25492,17 @@
    */
   @DomName('Node.insertBefore')
   @DocsEditable()
-  Node insertBefore(Node newChild, Node refChild) native;
+  Node insertBefore(Node node, Node child) native;
 
   @JSName('removeChild')
   @DomName('Node.removeChild')
   @DocsEditable()
-  Node _removeChild(Node oldChild) native;
+  Node _removeChild(Node child) native;
 
   @JSName('replaceChild')
   @DomName('Node.replaceChild')
   @DocsEditable()
-  Node _replaceChild(Node newChild, Node oldChild) native;
+  Node _replaceChild(Node node, Node child) native;
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -24237,31 +25536,31 @@
 
   @DomName('NodeFilter.SHOW_COMMENT')
   @DocsEditable()
-  static const int SHOW_COMMENT = 0x00000080;
+  static const int SHOW_COMMENT = 0x80;
 
   @DomName('NodeFilter.SHOW_DOCUMENT')
   @DocsEditable()
-  static const int SHOW_DOCUMENT = 0x00000100;
+  static const int SHOW_DOCUMENT = 0x100;
 
   @DomName('NodeFilter.SHOW_DOCUMENT_FRAGMENT')
   @DocsEditable()
-  static const int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+  static const int SHOW_DOCUMENT_FRAGMENT = 0x400;
 
   @DomName('NodeFilter.SHOW_DOCUMENT_TYPE')
   @DocsEditable()
-  static const int SHOW_DOCUMENT_TYPE = 0x00000200;
+  static const int SHOW_DOCUMENT_TYPE = 0x200;
 
   @DomName('NodeFilter.SHOW_ELEMENT')
   @DocsEditable()
-  static const int SHOW_ELEMENT = 0x00000001;
+  static const int SHOW_ELEMENT = 0x1;
 
   @DomName('NodeFilter.SHOW_PROCESSING_INSTRUCTION')
   @DocsEditable()
-  static const int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+  static const int SHOW_PROCESSING_INSTRUCTION = 0x40;
 
   @DomName('NodeFilter.SHOW_TEXT')
   @DocsEditable()
-  static const int SHOW_TEXT = 0x00000004;
+  static const int SHOW_TEXT = 0x4;
 }
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -24372,6 +25671,47 @@
   @DocsEditable()
   Node _item(int index) native;
 }
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('NonDocumentTypeChildNode')
+@Experimental() // untriaged
+@Native("NonDocumentTypeChildNode")
+class NonDocumentTypeChildNode extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory NonDocumentTypeChildNode._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('NonDocumentTypeChildNode.nextElementSibling')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Element nextElementSibling;
+
+  @DomName('NonDocumentTypeChildNode.previousElementSibling')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Element previousElementSibling;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('NonElementParentNode')
+@Experimental() // untriaged
+@Native("NonElementParentNode")
+class NonElementParentNode extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory NonElementParentNode._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('NonElementParentNode.getElementById')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element getElementById(String elementId) native;
+}
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -24457,6 +25797,13 @@
   @Experimental() // untriaged
   final String body;
 
+  @DomName('Notification.data')
+  @DocsEditable()
+  @Experimental() // untriaged
+  @annotation_Creates_SerializedScriptValue
+  @annotation_Returns_SerializedScriptValue
+  final Object data;
+
   @DomName('Notification.dir')
   @DocsEditable()
   @Experimental() // nonstandard
@@ -24476,6 +25823,11 @@
   @DocsEditable()
   final String permission;
 
+  @DomName('Notification.silent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool silent;
+
   @DomName('Notification.tag')
   @DocsEditable()
   @Experimental() // nonstandard
@@ -24486,6 +25838,11 @@
   @Experimental() // untriaged
   final String title;
 
+  @DomName('Notification.vibrate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final List<int> vibrate;
+
   @DomName('Notification.close')
   @DocsEditable()
   void close() native;
@@ -24530,6 +25887,36 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+
+@DocsEditable()
+@DomName('NotificationEvent')
+@Experimental() // untriaged
+@Native("NotificationEvent")
+class NotificationEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory NotificationEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('NotificationEvent.NotificationEvent')
+  @DocsEditable()
+  factory NotificationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return NotificationEvent._create_1(type, eventInitDict_1);
+    }
+    return NotificationEvent._create_2(type);
+  }
+  static NotificationEvent _create_1(type, eventInitDict) => JS('NotificationEvent', 'new NotificationEvent(#,#)', type, eventInitDict);
+  static NotificationEvent _create_2(type) => JS('NotificationEvent', 'new NotificationEvent(#)', type);
+
+  @DomName('NotificationEvent.notification')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Notification notification;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 // WARNING: Do not edit - generated code.
 
 
@@ -24612,11 +25999,6 @@
   @DocsEditable()
   String height;
 
-  @DomName('HTMLObjectElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLObjectElement.name')
   @DocsEditable()
   String name;
@@ -24657,6 +26039,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLObjectElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLObjectElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) native;
@@ -24836,6 +26223,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLOutputElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLOutputElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) native;
@@ -24846,43 +26238,6 @@
 
 
 @DocsEditable()
-@DomName('OverflowEvent')
-@Experimental() // nonstandard
-@Native("OverflowEvent")
-class OverflowEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory OverflowEvent._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('OverflowEvent.BOTH')
-  @DocsEditable()
-  static const int BOTH = 2;
-
-  @DomName('OverflowEvent.HORIZONTAL')
-  @DocsEditable()
-  static const int HORIZONTAL = 0;
-
-  @DomName('OverflowEvent.VERTICAL')
-  @DocsEditable()
-  static const int VERTICAL = 1;
-
-  @DomName('OverflowEvent.horizontalOverflow')
-  @DocsEditable()
-  final bool horizontalOverflow;
-
-  @DomName('OverflowEvent.orient')
-  @DocsEditable()
-  final int orient;
-
-  @DomName('OverflowEvent.verticalOverflow')
-  @DocsEditable()
-  final bool verticalOverflow;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('PageTransitionEvent')
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent
 @Experimental()
@@ -24891,6 +26246,18 @@
   // To suppress missing implicit constructor warnings.
   factory PageTransitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PageTransitionEvent.PageTransitionEvent')
+  @DocsEditable()
+  factory PageTransitionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return PageTransitionEvent._create_1(type, eventInitDict_1);
+    }
+    return PageTransitionEvent._create_2(type);
+  }
+  static PageTransitionEvent _create_1(type, eventInitDict) => JS('PageTransitionEvent', 'new PageTransitionEvent(#,#)', type, eventInitDict);
+  static PageTransitionEvent _create_2(type) => JS('PageTransitionEvent', 'new PageTransitionEvent(#)', type);
+
   @DomName('PageTransitionEvent.persisted')
   @DocsEditable()
   final bool persisted;
@@ -24978,6 +26345,44 @@
 
 
 @DocsEditable()
+@DomName('PasswordCredential')
+@Experimental() // untriaged
+@Native("PasswordCredential")
+class PasswordCredential extends Credential {
+  // To suppress missing implicit constructor warnings.
+  factory PasswordCredential._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PasswordCredential.PasswordCredential')
+  @DocsEditable()
+  factory PasswordCredential(String id, String password, [String name, String iconURL]) {
+    if (iconURL != null) {
+      return PasswordCredential._create_1(id, password, name, iconURL);
+    }
+    if (name != null) {
+      return PasswordCredential._create_2(id, password, name);
+    }
+    return PasswordCredential._create_3(id, password);
+  }
+  static PasswordCredential _create_1(id, password, name, iconURL) => JS('PasswordCredential', 'new PasswordCredential(#,#,#,#)', id, password, name, iconURL);
+  static PasswordCredential _create_2(id, password, name) => JS('PasswordCredential', 'new PasswordCredential(#,#,#)', id, password, name);
+  static PasswordCredential _create_3(id, password) => JS('PasswordCredential', 'new PasswordCredential(#,#)', id, password);
+
+  @DomName('PasswordCredential.formData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final FormData formData;
+
+  @DomName('PasswordCredential.password')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String password;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('Path2D')
 @Experimental() // untriaged
 @Native("Path2D")
@@ -25100,6 +26505,11 @@
   @DocsEditable()
   final PerformanceTiming timing;
 
+  @DomName('Performance.clearFrameTimings')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearFrameTimings() native;
+
   @DomName('Performance.clearMarks')
   @DocsEditable()
   // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
@@ -25146,6 +26556,11 @@
   @DocsEditable()
   double now() native;
 
+  @DomName('Performance.setFrameTimingBufferSize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void setFrameTimingBufferSize(int maxSize) native;
+
   @JSName('webkitClearResourceTimings')
   @DomName('Performance.webkitClearResourceTimings')
   @DocsEditable()
@@ -25177,6 +26592,24 @@
 
 
 @DocsEditable()
+@DomName('PerformanceCompositeTiming')
+@Experimental() // untriaged
+@Native("PerformanceCompositeTiming")
+class PerformanceCompositeTiming extends PerformanceEntry {
+  // To suppress missing implicit constructor warnings.
+  factory PerformanceCompositeTiming._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PerformanceCompositeTiming.sourceFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int sourceFrame;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('PerformanceEntry')
 // http://www.w3.org/TR/performance-timeline/#sec-PerformanceEntry-interface
 @Experimental()
@@ -25272,6 +26705,24 @@
 
 
 @DocsEditable()
+@DomName('PerformanceRenderTiming')
+@Experimental() // untriaged
+@Native("PerformanceRenderTiming")
+class PerformanceRenderTiming extends PerformanceEntry {
+  // To suppress missing implicit constructor warnings.
+  factory PerformanceRenderTiming._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PerformanceRenderTiming.sourceFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int sourceFrame;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('PerformanceResourceTiming')
 // http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
 @Experimental()
@@ -25330,6 +26781,11 @@
   @DomName('PerformanceResourceTiming.secureConnectionStart')
   @DocsEditable()
   final double secureConnectionStart;
+
+  @DomName('PerformanceResourceTiming.workerStart')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double workerStart;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25434,6 +26890,175 @@
 
 
 @DocsEditable()
+@DomName('PeriodicSyncEvent')
+@Experimental() // untriaged
+@Native("PeriodicSyncEvent")
+class PeriodicSyncEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PeriodicSyncEvent.PeriodicSyncEvent')
+  @DocsEditable()
+  factory PeriodicSyncEvent(String type, Map init) {
+    var init_1 = convertDartToNative_Dictionary(init);
+    return PeriodicSyncEvent._create_1(type, init_1);
+  }
+  static PeriodicSyncEvent _create_1(type, init) => JS('PeriodicSyncEvent', 'new PeriodicSyncEvent(#,#)', type, init);
+
+  @DomName('PeriodicSyncEvent.registration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final PeriodicSyncRegistration registration;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PeriodicSyncManager')
+@Experimental() // untriaged
+@Native("PeriodicSyncManager")
+class PeriodicSyncManager extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncManager._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PeriodicSyncManager.minPossiblePeriod')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int minPossiblePeriod;
+
+  @DomName('PeriodicSyncManager.getRegistration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistration(String tag) native;
+
+  @DomName('PeriodicSyncManager.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() native;
+
+  @DomName('PeriodicSyncManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future permissionState() native;
+
+  @DomName('PeriodicSyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future register([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _register_1(options_1);
+    }
+    return _register_2();
+  }
+  @JSName('register')
+  @DomName('PeriodicSyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _register_1(options) native;
+  @JSName('register')
+  @DomName('PeriodicSyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _register_2() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PeriodicSyncRegistration')
+@Experimental() // untriaged
+@Native("PeriodicSyncRegistration")
+class PeriodicSyncRegistration extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncRegistration._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PeriodicSyncRegistration.minPeriod')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int minPeriod;
+
+  @DomName('PeriodicSyncRegistration.networkState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String networkState;
+
+  @DomName('PeriodicSyncRegistration.powerState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String powerState;
+
+  @DomName('PeriodicSyncRegistration.tag')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String tag;
+
+  @DomName('PeriodicSyncRegistration.unregister')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future unregister() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PermissionStatus')
+@Experimental() // untriaged
+@Native("PermissionStatus")
+class PermissionStatus extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PermissionStatus._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PermissionStatus.changeEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> changeEvent = const EventStreamProvider<Event>('change');
+
+  @DomName('PermissionStatus.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String state;
+
+  @DomName('PermissionStatus.status')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String status;
+
+  @DomName('PermissionStatus.onchange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onChange => changeEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('Permissions')
+@Experimental() // untriaged
+@Native("Permissions")
+class Permissions extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Permissions._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Permissions.query')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future query(Object permission) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('HTMLPictureElement')
 @Experimental() // untriaged
 @Native("HTMLPictureElement")
@@ -25476,10 +27101,6 @@
   @DocsEditable()
   final String name;
 
-  @DomName('Plugin.__getter__')
-  @DocsEditable()
-  MimeType __getter__(String name) native;
-
   @DomName('Plugin.item')
   @DocsEditable()
   MimeType item(int index) native;
@@ -25549,10 +27170,6 @@
   Plugin elementAt(int index) => this[index];
   // -- end List<Plugin> mixins.
 
-  @DomName('PluginArray.__getter__')
-  @DocsEditable()
-  Plugin __getter__(String name) native;
-
   @DomName('PluginArray.item')
   @DocsEditable()
   Plugin item(int index) native;
@@ -25584,6 +27201,11 @@
    */
   PluginPlaceholderElement.created() : super.created();
 
+  @DomName('PluginPlaceholderElement.closeable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool closeable;
+
   @DomName('PluginPlaceholderElement.message')
   @DocsEditable()
   @Experimental() // untriaged
@@ -25600,6 +27222,71 @@
 
 
 @DocsEditable()
+@DomName('PointerEvent')
+@Experimental() // untriaged
+@Native("PointerEvent")
+class PointerEvent extends MouseEvent {
+  // To suppress missing implicit constructor warnings.
+  factory PointerEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PointerEvent.PointerEvent')
+  @DocsEditable()
+  factory PointerEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return PointerEvent._create_1(type, eventInitDict_1);
+    }
+    return PointerEvent._create_2(type);
+  }
+  static PointerEvent _create_1(type, eventInitDict) => JS('PointerEvent', 'new PointerEvent(#,#)', type, eventInitDict);
+  static PointerEvent _create_2(type) => JS('PointerEvent', 'new PointerEvent(#)', type);
+
+  @DomName('PointerEvent.height')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double height;
+
+  @DomName('PointerEvent.isPrimary')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool isPrimary;
+
+  @DomName('PointerEvent.pointerId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int pointerId;
+
+  @DomName('PointerEvent.pointerType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String pointerType;
+
+  @DomName('PointerEvent.pressure')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double pressure;
+
+  @DomName('PointerEvent.tiltX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int tiltX;
+
+  @DomName('PointerEvent.tiltY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int tiltY;
+
+  @DomName('PointerEvent.width')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double width;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('PopStateEvent')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.FIREFOX)
@@ -25610,6 +27297,18 @@
   // To suppress missing implicit constructor warnings.
   factory PopStateEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PopStateEvent.PopStateEvent')
+  @DocsEditable()
+  factory PopStateEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return PopStateEvent._create_1(type, eventInitDict_1);
+    }
+    return PopStateEvent._create_2(type);
+  }
+  static PopStateEvent _create_1(type, eventInitDict) => JS('PopStateEvent', 'new PopStateEvent(#,#)', type, eventInitDict);
+  static PopStateEvent _create_2(type) => JS('PopStateEvent', 'new PopStateEvent(#)', type);
+
   @DomName('PopStateEvent.state')
   @DocsEditable()
   dynamic get state => convertNativeToDart_SerializedScriptValue(this._get_state);
@@ -25679,6 +27378,34 @@
 
 
 @DocsEditable()
+@DomName('PositionSensorVRDevice')
+@Experimental() // untriaged
+@Native("PositionSensorVRDevice")
+class PositionSensorVRDevice extends VRDevice {
+  // To suppress missing implicit constructor warnings.
+  factory PositionSensorVRDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PositionSensorVRDevice.getImmediateState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRPositionState getImmediateState() native;
+
+  @DomName('PositionSensorVRDevice.getState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRPositionState getState() native;
+
+  @DomName('PositionSensorVRDevice.resetSensor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void resetSensor() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('HTMLPreElement')
 @Native("HTMLPreElement")
 class PreElement extends HtmlElement {
@@ -25707,6 +27434,102 @@
 class Presentation extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory Presentation._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Presentation.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final PresentationSession session;
+
+  @DomName('Presentation.getAvailability')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getAvailability(String url) native;
+
+  @DomName('Presentation.joinSession')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future joinSession(String url, String presentationId) native;
+
+  @DomName('Presentation.startSession')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future startSession(String url) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PresentationAvailability')
+@Experimental() // untriaged
+@Native("PresentationAvailability")
+class PresentationAvailability extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PresentationAvailability._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PresentationAvailability.changeEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> changeEvent = const EventStreamProvider<Event>('change');
+
+  @DomName('PresentationAvailability.value')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool value;
+
+  @DomName('PresentationAvailability.onchange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onChange => changeEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PresentationSession')
+@Experimental() // untriaged
+@Native("PresentationSession")
+class PresentationSession extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PresentationSession._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PresentationSession.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('PresentationSession.binaryType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String binaryType;
+
+  @DomName('PresentationSession.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String id;
+
+  @DomName('PresentationSession.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String state;
+
+  @DomName('PresentationSession.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void close() native;
+
+  @DomName('PresentationSession.send')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void send(data_OR_message) native;
+
+  @DomName('PresentationSession.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25790,6 +27613,18 @@
   // To suppress missing implicit constructor warnings.
   factory ProgressEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ProgressEvent.ProgressEvent')
+  @DocsEditable()
+  factory ProgressEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ProgressEvent._create_1(type, eventInitDict_1);
+    }
+    return ProgressEvent._create_2(type);
+  }
+  static ProgressEvent _create_1(type, eventInitDict) => JS('ProgressEvent', 'new ProgressEvent(#,#)', type, eventInitDict);
+  static ProgressEvent _create_2(type) => JS('ProgressEvent', 'new ProgressEvent(#)', type);
+
   @DomName('ProgressEvent.lengthComputable')
   @DocsEditable()
   final bool lengthComputable;
@@ -25808,17 +27643,64 @@
 
 
 @DocsEditable()
+@DomName('PromiseRejectionEvent')
+@Experimental() // untriaged
+@Native("PromiseRejectionEvent")
+class PromiseRejectionEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory PromiseRejectionEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PromiseRejectionEvent.PromiseRejectionEvent')
+  @DocsEditable()
+  factory PromiseRejectionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return PromiseRejectionEvent._create_1(type, eventInitDict_1);
+    }
+    return PromiseRejectionEvent._create_2(type);
+  }
+  static PromiseRejectionEvent _create_1(type, eventInitDict) => JS('PromiseRejectionEvent', 'new PromiseRejectionEvent(#,#)', type, eventInitDict);
+  static PromiseRejectionEvent _create_2(type) => JS('PromiseRejectionEvent', 'new PromiseRejectionEvent(#)', type);
+
+  @DomName('PromiseRejectionEvent.promise')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Future promise;
+
+  @DomName('PromiseRejectionEvent.reason')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Object reason;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('PushEvent')
 @Experimental() // untriaged
 @Native("PushEvent")
-class PushEvent extends Event {
+class PushEvent extends ExtendableEvent {
   // To suppress missing implicit constructor warnings.
   factory PushEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PushEvent.PushEvent')
+  @DocsEditable()
+  factory PushEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return PushEvent._create_1(type, eventInitDict_1);
+    }
+    return PushEvent._create_2(type);
+  }
+  static PushEvent _create_1(type, eventInitDict) => JS('PushEvent', 'new PushEvent(#,#)', type, eventInitDict);
+  static PushEvent _create_2(type) => JS('PushEvent', 'new PushEvent(#)', type);
+
   @DomName('PushEvent.data')
   @DocsEditable()
   @Experimental() // untriaged
-  final String data;
+  final PushMessageData data;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25833,10 +27715,52 @@
   // To suppress missing implicit constructor warnings.
   factory PushManager._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('PushManager.register')
+  @DomName('PushManager.getSubscription')
   @DocsEditable()
   @Experimental() // untriaged
-  Future register(String senderId) native;
+  Future getSubscription() native;
+
+  @DomName('PushManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future permissionState([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _permissionState_1(options_1);
+    }
+    return _permissionState_2();
+  }
+  @JSName('permissionState')
+  @DomName('PushManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _permissionState_1(options) native;
+  @JSName('permissionState')
+  @DomName('PushManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _permissionState_2() native;
+
+  @DomName('PushManager.subscribe')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future subscribe([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _subscribe_1(options_1);
+    }
+    return _subscribe_2();
+  }
+  @JSName('subscribe')
+  @DomName('PushManager.subscribe')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _subscribe_1(options) native;
+  @JSName('subscribe')
+  @DomName('PushManager.subscribe')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _subscribe_2() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25844,22 +27768,62 @@
 
 
 @DocsEditable()
-@DomName('PushRegistration')
+@DomName('PushMessageData')
 @Experimental() // untriaged
-@Native("PushRegistration")
-class PushRegistration extends Interceptor {
+@Native("PushMessageData")
+class PushMessageData extends Interceptor {
   // To suppress missing implicit constructor warnings.
-  factory PushRegistration._() { throw new UnsupportedError("Not supported"); }
+  factory PushMessageData._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('PushRegistration.pushEndpoint')
+  @DomName('PushMessageData.PushMessageData')
+  @DocsEditable()
+  factory PushMessageData(String message) {
+    return PushMessageData._create_1(message);
+  }
+  static PushMessageData _create_1(message) => JS('PushMessageData', 'new PushMessageData(#)', message);
+
+  @DomName('PushMessageData.arrayBuffer')
   @DocsEditable()
   @Experimental() // untriaged
-  final String pushEndpoint;
+  ByteBuffer arrayBuffer() native;
 
-  @DomName('PushRegistration.pushRegistrationId')
+  @DomName('PushMessageData.blob')
   @DocsEditable()
   @Experimental() // untriaged
-  final String pushRegistrationId;
+  Blob blob() native;
+
+  @DomName('PushMessageData.json')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object json() native;
+
+  @DomName('PushMessageData.text')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String text() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('PushSubscription')
+@Experimental() // untriaged
+@Native("PushSubscription")
+class PushSubscription extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory PushSubscription._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PushSubscription.endpoint')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String endpoint;
+
+  @DomName('PushSubscription.unsubscribe')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future unsubscribe() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25946,26 +27910,6 @@
   @DocsEditable()
   static const int END_TO_START = 3;
 
-  @DomName('Range.NODE_AFTER')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_AFTER = 1;
-
-  @DomName('Range.NODE_BEFORE')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_BEFORE = 0;
-
-  @DomName('Range.NODE_BEFORE_AND_AFTER')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_BEFORE_AND_AFTER = 2;
-
-  @DomName('Range.NODE_INSIDE')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_INSIDE = 3;
-
   @DomName('Range.START_TO_END')
   @DocsEditable()
   static const int START_TO_END = 1;
@@ -26017,11 +27961,11 @@
 
   @DomName('Range.comparePoint')
   @DocsEditable()
-  int comparePoint(Node refNode, int offset) native;
+  int comparePoint(Node node, int offset) native;
 
   @DomName('Range.createContextualFragment')
   @DocsEditable()
-  DocumentFragment createContextualFragment(String html) native;
+  DocumentFragment createContextualFragment(String fragment) native;
 
   @DomName('Range.deleteContents')
   @DocsEditable()
@@ -26052,43 +27996,43 @@
 
   @DomName('Range.insertNode')
   @DocsEditable()
-  void insertNode(Node newNode) native;
+  void insertNode(Node node) native;
 
   @DomName('Range.isPointInRange')
   @DocsEditable()
-  bool isPointInRange(Node refNode, int offset) native;
+  bool isPointInRange(Node node, int offset) native;
 
   @DomName('Range.selectNode')
   @DocsEditable()
-  void selectNode(Node refNode) native;
+  void selectNode(Node node) native;
 
   @DomName('Range.selectNodeContents')
   @DocsEditable()
-  void selectNodeContents(Node refNode) native;
+  void selectNodeContents(Node node) native;
 
   @DomName('Range.setEnd')
   @DocsEditable()
-  void setEnd(Node refNode, int offset) native;
+  void setEnd(Node node, int offset) native;
 
   @DomName('Range.setEndAfter')
   @DocsEditable()
-  void setEndAfter(Node refNode) native;
+  void setEndAfter(Node node) native;
 
   @DomName('Range.setEndBefore')
   @DocsEditable()
-  void setEndBefore(Node refNode) native;
+  void setEndBefore(Node node) native;
 
   @DomName('Range.setStart')
   @DocsEditable()
-  void setStart(Node refNode, int offset) native;
+  void setStart(Node node, int offset) native;
 
   @DomName('Range.setStartAfter')
   @DocsEditable()
-  void setStartAfter(Node refNode) native;
+  void setStartAfter(Node node) native;
 
   @DomName('Range.setStartBefore')
   @DocsEditable()
-  void setStartBefore(Node refNode) native;
+  void setStartBefore(Node node) native;
 
   @DomName('Range.surroundContents')
   @DocsEditable()
@@ -26111,6 +28055,62 @@
 
 
 @DocsEditable()
+@DomName('ReadableByteStream')
+@Experimental() // untriaged
+@Native("ReadableByteStream")
+class ReadableByteStream extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableByteStream._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ReadableByteStream.cancel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future cancel([Object reason]) native;
+
+  @DomName('ReadableByteStream.getReader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ReadableByteStreamReader getReader() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('ReadableByteStreamReader')
+@Experimental() // untriaged
+@Native("ReadableByteStreamReader")
+class ReadableByteStreamReader extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableByteStreamReader._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ReadableByteStreamReader.closed')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Future closed;
+
+  @DomName('ReadableByteStreamReader.cancel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future cancel([Object reason]) native;
+
+  @DomName('ReadableByteStreamReader.read')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future read() native;
+
+  @DomName('ReadableByteStreamReader.releaseLock')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void releaseLock() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('ReadableStream')
 @Experimental() // untriaged
 @Native("ReadableStream")
@@ -26118,30 +28118,48 @@
   // To suppress missing implicit constructor warnings.
   factory ReadableStream._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('ReadableStream.closed')
+  @DomName('ReadableStream.cancel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future cancel([Object reason]) native;
+
+  @DomName('ReadableStream.getReader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ReadableStreamReader getReader() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('ReadableStreamReader')
+@Experimental() // untriaged
+@Native("ReadableStreamReader")
+class ReadableStreamReader extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableStreamReader._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ReadableStreamReader.closed')
   @DocsEditable()
   @Experimental() // untriaged
   final Future closed;
 
-  @DomName('ReadableStream.state')
+  @DomName('ReadableStreamReader.cancel')
   @DocsEditable()
   @Experimental() // untriaged
-  final String state;
+  Future cancel([Object reason]) native;
 
-  @DomName('ReadableStream.cancel')
+  @DomName('ReadableStreamReader.read')
   @DocsEditable()
   @Experimental() // untriaged
-  Future cancel(Object reason) native;
+  Future read() native;
 
-  @DomName('ReadableStream.read')
+  @DomName('ReadableStreamReader.releaseLock')
   @DocsEditable()
   @Experimental() // untriaged
-  Object read() native;
-
-  @DomName('ReadableStream.wait')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future wait() native;
+  void releaseLock() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -26156,6 +28174,18 @@
   // To suppress missing implicit constructor warnings.
   factory RelatedEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('RelatedEvent.RelatedEvent')
+  @DocsEditable()
+  factory RelatedEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return RelatedEvent._create_1(type, eventInitDict_1);
+    }
+    return RelatedEvent._create_2(type);
+  }
+  static RelatedEvent _create_1(type, eventInitDict) => JS('RelatedEvent', 'new RelatedEvent(#,#)', type, eventInitDict);
+  static RelatedEvent _create_2(type) => JS('RelatedEvent', 'new RelatedEvent(#)', type);
+
   @DomName('RelatedEvent.relatedTarget')
   @DocsEditable()
   @Experimental() // untriaged
@@ -26432,6 +28462,14 @@
   // To suppress missing implicit constructor warnings.
   factory RtcDtmfToneChangeEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent')
+  @DocsEditable()
+  factory RtcDtmfToneChangeEvent(String type, Map eventInitDict) {
+    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+    return RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
+  }
+  static RtcDtmfToneChangeEvent _create_1(type, eventInitDict) => JS('RtcDtmfToneChangeEvent', 'new RTCDTMFToneChangeEvent(#,#)', type, eventInitDict);
+
   @DomName('RTCDTMFToneChangeEvent.tone')
   @DocsEditable()
   final String tone;
@@ -26908,14 +28946,6 @@
   @DocsEditable()
   final String id;
 
-  @DomName('RTCStatsReport.local')
-  @DocsEditable()
-  final RtcStatsReport local;
-
-  @DomName('RTCStatsReport.remote')
-  @DocsEditable()
-  final RtcStatsReport remote;
-
   @DomName('RTCStatsReport.timestamp')
   @DocsEditable()
   DateTime get timestamp => convertNativeToDart_DateTime(this._get_timestamp);
@@ -26951,10 +28981,6 @@
   // To suppress missing implicit constructor warnings.
   factory RtcStatsResponse._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('RTCStatsResponse.__getter__')
-  @DocsEditable()
-  RtcStatsReport __getter__(String name) native;
-
   @DomName('RTCStatsResponse.namedItem')
   @DocsEditable()
   RtcStatsReport namedItem(String name) native;
@@ -27133,6 +29159,113 @@
 
 
 @DocsEditable()
+@DomName('ScrollState')
+@Experimental() // untriaged
+@Native("ScrollState")
+class ScrollState extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ScrollState._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ScrollState.ScrollState')
+  @DocsEditable()
+  factory ScrollState([num deltaX, num deltaY, num deltaGranularity, num velocityX, num velocityY, bool inInertialPhase, bool isBeginning, bool isEnding]) {
+    if (isEnding != null) {
+      return ScrollState._create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
+    }
+    if (isBeginning != null) {
+      return ScrollState._create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
+    }
+    if (inInertialPhase != null) {
+      return ScrollState._create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
+    }
+    if (velocityY != null) {
+      return ScrollState._create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
+    }
+    if (velocityX != null) {
+      return ScrollState._create_5(deltaX, deltaY, deltaGranularity, velocityX);
+    }
+    if (deltaGranularity != null) {
+      return ScrollState._create_6(deltaX, deltaY, deltaGranularity);
+    }
+    if (deltaY != null) {
+      return ScrollState._create_7(deltaX, deltaY);
+    }
+    if (deltaX != null) {
+      return ScrollState._create_8(deltaX);
+    }
+    return ScrollState._create_9();
+  }
+  static ScrollState _create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) => JS('ScrollState', 'new ScrollState(#,#,#,#,#,#,#,#)', deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
+  static ScrollState _create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning) => JS('ScrollState', 'new ScrollState(#,#,#,#,#,#,#)', deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
+  static ScrollState _create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase) => JS('ScrollState', 'new ScrollState(#,#,#,#,#,#)', deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
+  static ScrollState _create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY) => JS('ScrollState', 'new ScrollState(#,#,#,#,#)', deltaX, deltaY, deltaGranularity, velocityX, velocityY);
+  static ScrollState _create_5(deltaX, deltaY, deltaGranularity, velocityX) => JS('ScrollState', 'new ScrollState(#,#,#,#)', deltaX, deltaY, deltaGranularity, velocityX);
+  static ScrollState _create_6(deltaX, deltaY, deltaGranularity) => JS('ScrollState', 'new ScrollState(#,#,#)', deltaX, deltaY, deltaGranularity);
+  static ScrollState _create_7(deltaX, deltaY) => JS('ScrollState', 'new ScrollState(#,#)', deltaX, deltaY);
+  static ScrollState _create_8(deltaX) => JS('ScrollState', 'new ScrollState(#)', deltaX);
+  static ScrollState _create_9() => JS('ScrollState', 'new ScrollState()');
+
+  @DomName('ScrollState.deltaGranularity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double deltaGranularity;
+
+  @DomName('ScrollState.deltaX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double deltaX;
+
+  @DomName('ScrollState.deltaY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double deltaY;
+
+  @DomName('ScrollState.fromUserInput')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool fromUserInput;
+
+  @DomName('ScrollState.inInertialPhase')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool inInertialPhase;
+
+  @DomName('ScrollState.isBeginning')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool isBeginning;
+
+  @DomName('ScrollState.isEnding')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool isEnding;
+
+  @DomName('ScrollState.shouldPropagate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool shouldPropagate;
+
+  @DomName('ScrollState.velocityX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double velocityX;
+
+  @DomName('ScrollState.velocityY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double velocityY;
+
+  @DomName('ScrollState.consumeDelta')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void consumeDelta(num x, num y) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('SecurityPolicyViolationEvent')
 // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
 @Experimental()
@@ -27141,6 +29274,18 @@
   // To suppress missing implicit constructor warnings.
   factory SecurityPolicyViolationEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SecurityPolicyViolationEvent.SecurityPolicyViolationEvent')
+  @DocsEditable()
+  factory SecurityPolicyViolationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
+    }
+    return SecurityPolicyViolationEvent._create_2(type);
+  }
+  static SecurityPolicyViolationEvent _create_1(type, eventInitDict) => JS('SecurityPolicyViolationEvent', 'new SecurityPolicyViolationEvent(#,#)', type, eventInitDict);
+  static SecurityPolicyViolationEvent _create_2(type) => JS('SecurityPolicyViolationEvent', 'new SecurityPolicyViolationEvent(#)', type);
+
   @JSName('blockedURI')
   @DomName('SecurityPolicyViolationEvent.blockedURI')
   @DocsEditable()
@@ -27270,12 +29415,12 @@
 
   @DomName('HTMLSelectElement.__setter__')
   @DocsEditable()
-  void __setter__(int index, OptionElement value) native;
+  void __setter__(int index, OptionElement option) native;
 
   @DomName('HTMLSelectElement.add')
   @DocsEditable()
   @Experimental() // untriaged
-  void add(HtmlElement element, int before) native;
+  void add(Object element, Object before) native;
 
   @DomName('HTMLSelectElement.checkValidity')
   @DocsEditable()
@@ -27287,7 +29432,12 @@
 
   @DomName('HTMLSelectElement.namedItem')
   @DocsEditable()
-  Element namedItem(String name) native;
+  OptionElement namedItem(String name) native;
+
+  @DomName('HTMLSelectElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
 
   @DomName('HTMLSelectElement.setCustomValidity')
   @DocsEditable()
@@ -27392,7 +29542,7 @@
   @DomName('Selection.containsNode')
   @DocsEditable()
   @Experimental() // non-standard
-  bool containsNode(Node node, bool allowPartial) native;
+  bool containsNode(Node node, bool allowPartialContainment) native;
 
   @DomName('Selection.deleteFromDocument')
   @DocsEditable()
@@ -27440,19 +29590,35 @@
 
 
 @DocsEditable()
-@DomName('ServiceWorkerClient')
+@DomName('ServicePort')
 @Experimental() // untriaged
-@Native("ServiceWorkerClient")
-class ServiceWorkerClient extends Interceptor {
+@Native("ServicePort")
+class ServicePort extends Interceptor {
   // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerClient._() { throw new UnsupportedError("Not supported"); }
+  factory ServicePort._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('ServiceWorkerClient.id')
+  @DomName('ServicePort.data')
   @DocsEditable()
   @Experimental() // untriaged
-  final int id;
+  final Object data;
 
-  @DomName('ServiceWorkerClient.postMessage')
+  @DomName('ServicePort.name')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String name;
+
+  @JSName('targetURL')
+  @DomName('ServicePort.targetURL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String targetUrl;
+
+  @DomName('ServicePort.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void close() native;
+
+  @DomName('ServicePort.postMessage')
   @DocsEditable()
   @Experimental() // untriaged
   void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
@@ -27466,12 +29632,12 @@
     return;
   }
   @JSName('postMessage')
-  @DomName('ServiceWorkerClient.postMessage')
+  @DomName('ServicePort.postMessage')
   @DocsEditable()
   @Experimental() // untriaged
   void _postMessage_1(message, List<MessagePort> transfer) native;
   @JSName('postMessage')
-  @DomName('ServiceWorkerClient.postMessage')
+  @DomName('ServicePort.postMessage')
   @DocsEditable()
   @Experimental() // untriaged
   void _postMessage_2(message) native;
@@ -27482,33 +29648,118 @@
 
 
 @DocsEditable()
-@DomName('ServiceWorkerClients')
+@DomName('ServicePortCollection')
 @Experimental() // untriaged
-@Native("ServiceWorkerClients")
-class ServiceWorkerClients extends Interceptor {
+@Native("ServicePortCollection")
+class ServicePortCollection extends EventTarget {
   // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerClients._() { throw new UnsupportedError("Not supported"); }
+  factory ServicePortCollection._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('ServiceWorkerClients.getAll')
+  @DomName('ServicePortCollection.messageEvent')
   @DocsEditable()
   @Experimental() // untriaged
-  Future getAll([Map options]) {
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('ServicePortCollection.connect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future connect(String url, [Map options]) {
     if (options != null) {
       var options_1 = convertDartToNative_Dictionary(options);
-      return _getAll_1(options_1);
+      return _connect_1(url, options_1);
     }
-    return _getAll_2();
+    return _connect_2(url);
   }
-  @JSName('getAll')
-  @DomName('ServiceWorkerClients.getAll')
+  @JSName('connect')
+  @DomName('ServicePortCollection.connect')
   @DocsEditable()
   @Experimental() // untriaged
-  Future _getAll_1(options) native;
-  @JSName('getAll')
-  @DomName('ServiceWorkerClients.getAll')
+  Future _connect_1(url, options) native;
+  @JSName('connect')
+  @DomName('ServicePortCollection.connect')
   @DocsEditable()
   @Experimental() // untriaged
-  Future _getAll_2() native;
+  Future _connect_2(url) native;
+
+  @DomName('ServicePortCollection.match')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future match(Map options) {
+    var options_1 = convertDartToNative_Dictionary(options);
+    return _match_1(options_1);
+  }
+  @JSName('match')
+  @DomName('ServicePortCollection.match')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _match_1(options) native;
+
+  @DomName('ServicePortCollection.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future matchAll([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _matchAll_1(options_1);
+    }
+    return _matchAll_2();
+  }
+  @JSName('matchAll')
+  @DomName('ServicePortCollection.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _matchAll_1(options) native;
+  @JSName('matchAll')
+  @DomName('ServicePortCollection.matchAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _matchAll_2() native;
+
+  @DomName('ServicePortCollection.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('ServicePortConnectEvent')
+@Experimental() // untriaged
+@Native("ServicePortConnectEvent")
+class ServicePortConnectEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory ServicePortConnectEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ServicePortConnectEvent.ServicePortConnectEvent')
+  @DocsEditable()
+  factory ServicePortConnectEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ServicePortConnectEvent._create_1(type, eventInitDict_1);
+    }
+    return ServicePortConnectEvent._create_2(type);
+  }
+  static ServicePortConnectEvent _create_1(type, eventInitDict) => JS('ServicePortConnectEvent', 'new ServicePortConnectEvent(#,#)', type, eventInitDict);
+  static ServicePortConnectEvent _create_2(type) => JS('ServicePortConnectEvent', 'new ServicePortConnectEvent(#)', type);
+
+  @DomName('ServicePortConnectEvent.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String origin;
+
+  @JSName('targetURL')
+  @DomName('ServicePortConnectEvent.targetURL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String targetUrl;
+
+  @DomName('ServicePortConnectEvent.respondWith')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future respondWith(Future response) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27519,10 +29770,15 @@
 @DomName('ServiceWorkerContainer')
 @Experimental() // untriaged
 @Native("ServiceWorkerContainer")
-class ServiceWorkerContainer extends Interceptor {
+class ServiceWorkerContainer extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory ServiceWorkerContainer._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ServiceWorkerContainer.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
   @DomName('ServiceWorkerContainer.controller')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27538,6 +29794,11 @@
   @Experimental() // untriaged
   Future getRegistration([String documentURL]) native;
 
+  @DomName('ServiceWorkerContainer.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() native;
+
   @DomName('ServiceWorkerContainer.register')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27558,6 +29819,11 @@
   @DocsEditable()
   @Experimental() // untriaged
   Future _register_2(url) native;
+
+  @DomName('ServiceWorkerContainer.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27577,67 +29843,97 @@
   @Experimental() // untriaged
   static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
 
-  @DomName('ServiceWorkerGlobalScope.caches')
-  @DocsEditable()
-  @Experimental() // untriaged
-  final CacheStorage caches;
-
   @DomName('ServiceWorkerGlobalScope.clients')
   @DocsEditable()
   @Experimental() // untriaged
-  final ServiceWorkerClients clients;
+  final Clients clients;
 
-  @DomName('ServiceWorkerGlobalScope.scope')
+  @DomName('ServiceWorkerGlobalScope.ports')
   @DocsEditable()
   @Experimental() // untriaged
-  final String scope;
+  final StashedPortCollection ports;
 
-  @DomName('ServiceWorkerGlobalScope.fetch')
+  @DomName('ServiceWorkerGlobalScope.registration')
   @DocsEditable()
   @Experimental() // untriaged
-  Future _fetch(request, [Map requestInitDict]) {
-    if ((request is String || request == null) && requestInitDict == null) {
-      return _fetch_1(request);
-    }
-    if (requestInitDict != null && (request is String || request == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return _fetch_2(request, requestInitDict_1);
-    }
-    if ((request is _Request || request == null) && requestInitDict == null) {
-      return _fetch_3(request);
-    }
-    if (requestInitDict != null && (request is _Request || request == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return _fetch_4(request, requestInitDict_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-  @JSName('fetch')
-  @DomName('ServiceWorkerGlobalScope.fetch')
+  final ServiceWorkerRegistration registration;
+
+  @DomName('ServiceWorkerGlobalScope.skipWaiting')
   @DocsEditable()
   @Experimental() // untriaged
-  Future _fetch_1(String request) native;
-  @JSName('fetch')
-  @DomName('ServiceWorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_2(String request, requestInitDict) native;
-  @JSName('fetch')
-  @DomName('ServiceWorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_3(_Request request) native;
-  @JSName('fetch')
-  @DomName('ServiceWorkerGlobalScope.fetch')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future _fetch_4(_Request request, requestInitDict) native;
+  Future skipWaiting() native;
 
   @DomName('ServiceWorkerGlobalScope.onmessage')
   @DocsEditable()
   @Experimental() // untriaged
   Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
 }
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+// TODO(alanknight): Provide a nicer constructor that uses named parameters
+// rather than an initialization map.
+@DomName('ServiceWorkerMessageEvent')
+@Experimental() // untriaged
+@Native("ServiceWorkerMessageEvent")
+class ServiceWorkerMessageEvent extends Event {
+
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
+
+  @JSName('data')
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  @annotation_Creates_SerializedScriptValue
+  @annotation_Returns_SerializedScriptValue
+  final dynamic _get_data;
+
+  // To suppress missing implicit constructor warnings.
+  factory ServiceWorkerMessageEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ServiceWorkerMessageEvent.ServiceWorkerMessageEvent')
+  @DocsEditable()
+  factory ServiceWorkerMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return ServiceWorkerMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return ServiceWorkerMessageEvent._create_2(type);
+  }
+  static ServiceWorkerMessageEvent _create_1(type, eventInitDict) => JS('ServiceWorkerMessageEvent', 'new ServiceWorkerMessageEvent(#,#)', type, eventInitDict);
+  static ServiceWorkerMessageEvent _create_2(type) => JS('ServiceWorkerMessageEvent', 'new ServiceWorkerMessageEvent(#)', type);
+
+  @DomName('ServiceWorkerMessageEvent.lastEventId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String lastEventId;
+
+  @DomName('ServiceWorkerMessageEvent.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String origin;
+
+  @DomName('ServiceWorkerMessageEvent.ports')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final List<MessagePort> ports;
+
+  @DomName('ServiceWorkerMessageEvent.source')
+  @DocsEditable()
+  @Experimental() // untriaged
+  @Creates('Null')
+  @Returns('_ServiceWorker|MessagePort')
+  final Object source;
+
+}
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -27656,25 +29952,92 @@
   @Experimental() // untriaged
   final _ServiceWorker active;
 
+  @DomName('ServiceWorkerRegistration.geofencing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final Geofencing geofencing;
+
   @DomName('ServiceWorkerRegistration.installing')
   @DocsEditable()
   @Experimental() // untriaged
   final _ServiceWorker installing;
 
+  @DomName('ServiceWorkerRegistration.periodicSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final PeriodicSyncManager periodicSync;
+
+  @DomName('ServiceWorkerRegistration.pushManager')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final PushManager pushManager;
+
   @DomName('ServiceWorkerRegistration.scope')
   @DocsEditable()
   @Experimental() // untriaged
   final String scope;
 
+  @DomName('ServiceWorkerRegistration.sync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final SyncManager sync;
+
   @DomName('ServiceWorkerRegistration.waiting')
   @DocsEditable()
   @Experimental() // untriaged
   final _ServiceWorker waiting;
 
+  @DomName('ServiceWorkerRegistration.getNotifications')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getNotifications([Map filter]) {
+    if (filter != null) {
+      var filter_1 = convertDartToNative_Dictionary(filter);
+      return _getNotifications_1(filter_1);
+    }
+    return _getNotifications_2();
+  }
+  @JSName('getNotifications')
+  @DomName('ServiceWorkerRegistration.getNotifications')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _getNotifications_1(filter) native;
+  @JSName('getNotifications')
+  @DomName('ServiceWorkerRegistration.getNotifications')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _getNotifications_2() native;
+
+  @DomName('ServiceWorkerRegistration.showNotification')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future showNotification(String title, [Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _showNotification_1(title, options_1);
+    }
+    return _showNotification_2(title);
+  }
+  @JSName('showNotification')
+  @DomName('ServiceWorkerRegistration.showNotification')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _showNotification_1(title, options) native;
+  @JSName('showNotification')
+  @DomName('ServiceWorkerRegistration.showNotification')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _showNotification_2(title) native;
+
   @DomName('ServiceWorkerRegistration.unregister')
   @DocsEditable()
   @Experimental() // untriaged
   Future unregister() native;
+
+  @DomName('ServiceWorkerRegistration.update')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void update() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27731,6 +30094,11 @@
   @DocsEditable()
   final Element activeElement;
 
+  @DomName('ShadowRoot.delegatesFocus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool delegatesFocus;
+
   @DomName('ShadowRoot.host')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27762,17 +30130,10 @@
   @DocsEditable()
   Element elementFromPoint(int x, int y) native;
 
-  @DomName('ShadowRoot.getElementsByClassName')
+  @DomName('ShadowRoot.elementsFromPoint')
   @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByClassName(String className) native;
-
-  @DomName('ShadowRoot.getElementsByTagName')
-  @DocsEditable()
-  @Creates('NodeList|HtmlCollection')
-  @Returns('NodeList|HtmlCollection')
-  List<Node> getElementsByTagName(String tagName) native;
+  @Experimental() // untriaged
+  List<Element> elementsFromPoint(int x, int y) native;
 
   @DomName('ShadowRoot.getSelection')
   @DocsEditable()
@@ -27823,6 +30184,24 @@
 
 
 @DocsEditable()
+@DomName('SharedArrayBuffer')
+@Experimental() // untriaged
+@Native("SharedArrayBuffer")
+class SharedArrayBuffer extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory SharedArrayBuffer._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('SharedArrayBuffer.byteLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int byteLength;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('SharedWorker')
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-and-the-sharedworker-interface
 @Experimental()
@@ -27933,6 +30312,11 @@
   @DocsEditable()
   num timestampOffset;
 
+  @DomName('SourceBuffer.trackDefaults')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TrackDefaultList trackDefaults;
+
   @DomName('SourceBuffer.updating')
   @DocsEditable()
   @Experimental() // untriaged
@@ -28051,11 +30435,6 @@
    */
   SourceElement.created() : super.created();
 
-  @DomName('HTMLSourceElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLSourceElement.media')
   @DocsEditable()
   String media;
@@ -28370,6 +30749,11 @@
   /// Checks if this type is supported on the current platform.
   static bool get supported => JS('bool', '!!(window.SpeechRecognition || window.webkitSpeechRecognition)');
 
+  @DomName('SpeechRecognition.audioTrack')
+  @DocsEditable()
+  @Experimental() // untriaged
+  MediaStreamTrack audioTrack;
+
   @DomName('SpeechRecognition.continuous')
   @DocsEditable()
   bool continuous;
@@ -28390,6 +30774,12 @@
   @DocsEditable()
   int maxAlternatives;
 
+  @JSName('serviceURI')
+  @DomName('SpeechRecognition.serviceURI')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String serviceUri;
+
   @DomName('SpeechRecognition.abort')
   @DocsEditable()
   void abort() native;
@@ -28500,6 +30890,18 @@
   // To suppress missing implicit constructor warnings.
   factory SpeechRecognitionError._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SpeechRecognitionError.SpeechRecognitionError')
+  @DocsEditable()
+  factory SpeechRecognitionError(String type, [Map initDict]) {
+    if (initDict != null) {
+      var initDict_1 = convertDartToNative_Dictionary(initDict);
+      return SpeechRecognitionError._create_1(type, initDict_1);
+    }
+    return SpeechRecognitionError._create_2(type);
+  }
+  static SpeechRecognitionError _create_1(type, initDict) => JS('SpeechRecognitionError', 'new SpeechRecognitionError(#,#)', type, initDict);
+  static SpeechRecognitionError _create_2(type) => JS('SpeechRecognitionError', 'new SpeechRecognitionError(#)', type);
+
   @DomName('SpeechRecognitionError.error')
   @DocsEditable()
   final String error;
@@ -28523,6 +30925,18 @@
   // To suppress missing implicit constructor warnings.
   factory SpeechRecognitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SpeechRecognitionEvent.SpeechRecognitionEvent')
+  @DocsEditable()
+  factory SpeechRecognitionEvent(String type, [Map initDict]) {
+    if (initDict != null) {
+      var initDict_1 = convertDartToNative_Dictionary(initDict);
+      return SpeechRecognitionEvent._create_1(type, initDict_1);
+    }
+    return SpeechRecognitionEvent._create_2(type);
+  }
+  static SpeechRecognitionEvent _create_1(type, initDict) => JS('SpeechRecognitionEvent', 'new SpeechRecognitionEvent(#,#)', type, initDict);
+  static SpeechRecognitionEvent _create_2(type) => JS('SpeechRecognitionEvent', 'new SpeechRecognitionEvent(#)', type);
+
   @DomName('SpeechRecognitionEvent.emma')
   @DocsEditable()
   final Document emma;
@@ -28639,6 +31053,11 @@
   @DomName('SpeechSynthesisEvent.name')
   @DocsEditable()
   final String name;
+
+  @DomName('SpeechSynthesisEvent.utterance')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final SpeechSynthesisUtterance utterance;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -28835,6 +31254,52 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
+@DocsEditable()
+@DomName('StashedMessagePort')
+@Experimental() // untriaged
+@Native("StashedMessagePort")
+class StashedMessagePort extends MessagePort {
+  // To suppress missing implicit constructor warnings.
+  factory StashedMessagePort._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StashedMessagePort.name')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String name;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('StashedPortCollection')
+@Experimental() // untriaged
+@Native("StashedPortCollection")
+class StashedPortCollection extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory StashedPortCollection._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StashedPortCollection.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('StashedPortCollection.add')
+  @DocsEditable()
+  @Experimental() // untriaged
+  StashedMessagePort add(String name, MessagePort port) native;
+
+  @DomName('StashedPortCollection.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
 /**
  * The type used by the
  * [Window.localStorage] and [Window.sessionStorage] properties.
@@ -28995,8 +31460,18 @@
         newValue, url, storageArea);
     return e;
   }
-  // To suppress missing implicit constructor warnings.
-  factory StorageEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StorageEvent.StorageEvent')
+  @DocsEditable()
+  factory StorageEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return StorageEvent._create_1(type, eventInitDict_1);
+    }
+    return StorageEvent._create_2(type);
+  }
+  static StorageEvent _create_1(type, eventInitDict) => JS('StorageEvent', 'new StorageEvent(#,#)', type, eventInitDict);
+  static StorageEvent _create_2(type) => JS('StorageEvent', 'new StorageEvent(#)', type);
 
   @DomName('StorageEvent.key')
   @DocsEditable()
@@ -29216,6 +31691,104 @@
 
 
 @DocsEditable()
+@DomName('SyncEvent')
+@Experimental() // untriaged
+@Native("SyncEvent")
+class SyncEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory SyncEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('SyncEvent.SyncEvent')
+  @DocsEditable()
+  factory SyncEvent(String type, Map init) {
+    var init_1 = convertDartToNative_Dictionary(init);
+    return SyncEvent._create_1(type, init_1);
+  }
+  static SyncEvent _create_1(type, init) => JS('SyncEvent', 'new SyncEvent(#,#)', type, init);
+
+  @DomName('SyncEvent.registration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final SyncRegistration registration;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('SyncManager')
+@Experimental() // untriaged
+@Native("SyncManager")
+class SyncManager extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory SyncManager._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('SyncManager.getRegistration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistration(String tag) native;
+
+  @DomName('SyncManager.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() native;
+
+  @DomName('SyncManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future permissionState() native;
+
+  @DomName('SyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future register([Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return _register_1(options_1);
+    }
+    return _register_2();
+  }
+  @JSName('register')
+  @DomName('SyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _register_1(options) native;
+  @JSName('register')
+  @DomName('SyncManager.register')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _register_2() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('SyncRegistration')
+@Experimental() // untriaged
+@Native("SyncRegistration")
+class SyncRegistration extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory SyncRegistration._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('SyncRegistration.tag')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String tag;
+
+  @DomName('SyncRegistration.unregister')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future unregister() native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('HTMLTableCaptionElement')
 @Native("HTMLTableCaptionElement")
 class TableCaptionElement extends HtmlElement {
@@ -29661,6 +32234,11 @@
    */
   TextAreaElement.created() : super.created();
 
+  @DomName('HTMLTextAreaElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String autocapitalize;
+
   @DomName('HTMLTextAreaElement.autofocus')
   @DocsEditable()
   bool autofocus;
@@ -29703,6 +32281,11 @@
   @DocsEditable()
   int maxLength;
 
+  @DomName('HTMLTextAreaElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int minLength;
+
   @DomName('HTMLTextAreaElement.name')
   @DocsEditable()
   String name;
@@ -29767,6 +32350,11 @@
   @DocsEditable()
   bool checkValidity() native;
 
+  @DomName('HTMLTextAreaElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() native;
+
   @DomName('HTMLTextAreaElement.select')
   @DocsEditable()
   void select() native;
@@ -30240,69 +32828,6 @@
 
 
 @DocsEditable()
-@DomName('Timing')
-@Experimental() // untriaged
-@Native("Timing")
-class Timing extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory Timing._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('Timing.delay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num delay;
-
-  @DomName('Timing.direction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String direction;
-
-  @DomName('Timing.easing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String easing;
-
-  @DomName('Timing.endDelay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num endDelay;
-
-  @DomName('Timing.fill')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String fill;
-
-  @DomName('Timing.iterationStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num iterationStart;
-
-  @DomName('Timing.iterations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num iterations;
-
-  @DomName('Timing.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num playbackRate;
-
-  @DomName('Timing.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object __getter__(String name) native;
-
-  @DomName('Timing.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(String name, num duration) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('HTMLTitleElement')
 @Native("HTMLTitleElement")
 class TitleElement extends HtmlElement {
@@ -30374,6 +32899,11 @@
   @Experimental() // untriaged
   final double _radiusY;
 
+  @DomName('Touch.rotationAngle')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double rotationAngle;
+
   @JSName('screenX')
   @DomName('Touch.screenX')
   @DocsEditable()
@@ -30394,14 +32924,6 @@
   @Returns('Element|Document')
   final dynamic _get_target;
 
-  @JSName('webkitRotationAngle')
-  @DomName('Touch.webkitRotationAngle')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  final double rotationAngle;
-
 
 // As of Chrome 37, these all changed from long to double.  This code
 // preserves backwards compatability for the time being.
@@ -30593,6 +33115,91 @@
 
 
 @DocsEditable()
+@DomName('TrackDefault')
+@Experimental() // untriaged
+@Native("TrackDefault")
+class TrackDefault extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory TrackDefault._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('TrackDefault.TrackDefault')
+  @DocsEditable()
+  factory TrackDefault(String type, String language, String label, List<String> kinds, [String byteStreamTrackID]) {
+    if (byteStreamTrackID != null) {
+      List kinds_1 = convertDartToNative_StringArray(kinds);
+      return TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
+    }
+    List kinds_1 = convertDartToNative_StringArray(kinds);
+    return TrackDefault._create_2(type, language, label, kinds_1);
+  }
+  static TrackDefault _create_1(type, language, label, kinds, byteStreamTrackID) => JS('TrackDefault', 'new TrackDefault(#,#,#,#,#)', type, language, label, kinds, byteStreamTrackID);
+  static TrackDefault _create_2(type, language, label, kinds) => JS('TrackDefault', 'new TrackDefault(#,#,#,#)', type, language, label, kinds);
+
+  @DomName('TrackDefault.byteStreamTrackID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String byteStreamTrackID;
+
+  @DomName('TrackDefault.kinds')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final List<String> kinds;
+
+  @DomName('TrackDefault.label')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String label;
+
+  @DomName('TrackDefault.language')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String language;
+
+  @DomName('TrackDefault.type')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String type;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('TrackDefaultList')
+@Experimental() // untriaged
+@Native("TrackDefaultList")
+class TrackDefaultList extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory TrackDefaultList._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('TrackDefaultList.TrackDefaultList')
+  @DocsEditable()
+  factory TrackDefaultList([List<TrackDefault> trackDefaults]) {
+    if (trackDefaults != null) {
+      return TrackDefaultList._create_1(trackDefaults);
+    }
+    return TrackDefaultList._create_2();
+  }
+  static TrackDefaultList _create_1(trackDefaults) => JS('TrackDefaultList', 'new TrackDefaultList(#)', trackDefaults);
+  static TrackDefaultList _create_2() => JS('TrackDefaultList', 'new TrackDefaultList()');
+
+  @DomName('TrackDefaultList.length')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int length;
+
+  @DomName('TrackDefaultList.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TrackDefault item(int index) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('HTMLTrackElement')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.IE, '10')
@@ -30638,11 +33245,6 @@
   @DocsEditable()
   bool defaultValue;
 
-  @DomName('HTMLTrackElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String integrity;
-
   @DomName('HTMLTrackElement.kind')
   @DocsEditable()
   String kind;
@@ -30680,6 +33282,18 @@
   // To suppress missing implicit constructor warnings.
   factory TrackEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('TrackEvent.TrackEvent')
+  @DocsEditable()
+  factory TrackEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return TrackEvent._create_1(type, eventInitDict_1);
+    }
+    return TrackEvent._create_2(type);
+  }
+  static TrackEvent _create_1(type, eventInitDict) => JS('TrackEvent', 'new TrackEvent(#,#)', type, eventInitDict);
+  static TrackEvent _create_2(type) => JS('TrackEvent', 'new TrackEvent(#)', type);
+
   @DomName('TrackEvent.track')
   @DocsEditable()
   @Creates('Null')
@@ -30697,6 +33311,18 @@
   // To suppress missing implicit constructor warnings.
   factory TransitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('TransitionEvent.TransitionEvent')
+  @DocsEditable()
+  factory TransitionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return TransitionEvent._create_1(type, eventInitDict_1);
+    }
+    return TransitionEvent._create_2(type);
+  }
+  static TransitionEvent _create_1(type, eventInitDict) => JS('TransitionEvent', 'new TransitionEvent(#,#)', type, eventInitDict);
+  static TransitionEvent _create_2(type) => JS('TransitionEvent', 'new TransitionEvent(#)', type);
+
   @DomName('TransitionEvent.elapsedTime')
   @DocsEditable()
   final double elapsedTime;
@@ -30795,8 +33421,18 @@
     e._initUIEvent(type, canBubble, cancelable, view, detail);
     return e;
   }
-  // To suppress missing implicit constructor warnings.
-  factory UIEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('UIEvent.UIEvent')
+  @DocsEditable()
+  factory UIEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return UIEvent._create_1(type, eventInitDict_1);
+    }
+    return UIEvent._create_2(type);
+  }
+  static UIEvent _create_1(type, eventInitDict) => JS('UIEvent', 'new UIEvent(#,#)', type, eventInitDict);
+  static UIEvent _create_2(type) => JS('UIEvent', 'new UIEvent(#)', type);
 
   @JSName('charCode')
   @DomName('UIEvent.charCode')
@@ -30814,33 +33450,10 @@
   @Unstable()
   final int _keyCode;
 
-  @JSName('layerX')
-  @DomName('UIEvent.layerX')
+  @DomName('UIEvent.sourceDevice')
   @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  final int _layerX;
-
-  @JSName('layerY')
-  @DomName('UIEvent.layerY')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  final int _layerY;
-
-  @JSName('pageX')
-  @DomName('UIEvent.pageX')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  final int _pageX;
-
-  @JSName('pageY')
-  @DomName('UIEvent.pageY')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  final int _pageY;
+  @Experimental() // untriaged
+  final InputDevice sourceDevice;
 
   @DomName('UIEvent.view')
   @DocsEditable()
@@ -30852,24 +33465,17 @@
   @Returns('Window|=Object')
   final dynamic _get_view;
 
+  @JSName('which')
   @DomName('UIEvent.which')
   @DocsEditable()
   @Unstable()
-  final int which;
+  final int _which;
 
   @JSName('initUIEvent')
   @DomName('UIEvent.initUIEvent')
   @DocsEditable()
-  void _initUIEvent(String type, bool canBubble, bool cancelable, Window view, int detail) native;
+  void _initUIEvent(String type, bool bubbles, bool cancelable, Window view, int detail) native;
 
-
-  @DomName('UIEvent.layerX')
-  @DomName('UIEvent.layerY')
-  Point get layer => new Point(_layerX, _layerY);
-
-  @DomName('UIEvent.pageX')
-  @DomName('UIEvent.pageY')
-  Point get page => new Point(_pageX, _pageY);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -31077,6 +33683,170 @@
 
 
 @DocsEditable()
+@DomName('VRDevice')
+@Experimental() // untriaged
+@Native("VRDevice")
+class VRDevice extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory VRDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('VRDevice.deviceId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String deviceId;
+
+  @DomName('VRDevice.deviceName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String deviceName;
+
+  @DomName('VRDevice.hardwareUnitId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String hardwareUnitId;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('VREyeParameters')
+@Experimental() // untriaged
+@Native("VREyeParameters")
+class VREyeParameters extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory VREyeParameters._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('VREyeParameters.currentFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final VRFieldOfView currentFieldOfView;
+
+  @DomName('VREyeParameters.eyeTranslation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint eyeTranslation;
+
+  @DomName('VREyeParameters.maximumFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final VRFieldOfView maximumFieldOfView;
+
+  @DomName('VREyeParameters.minimumFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final VRFieldOfView minimumFieldOfView;
+
+  @DomName('VREyeParameters.recommendedFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final VRFieldOfView recommendedFieldOfView;
+
+  @DomName('VREyeParameters.renderRect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final _DomRect renderRect;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('VRFieldOfView')
+@Experimental() // untriaged
+@Native("VRFieldOfView")
+class VRFieldOfView extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory VRFieldOfView._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('VRFieldOfView.VRFieldOfView')
+  @DocsEditable()
+  factory VRFieldOfView([Map fov]) {
+    if (fov != null) {
+      var fov_1 = convertDartToNative_Dictionary(fov);
+      return VRFieldOfView._create_1(fov_1);
+    }
+    return VRFieldOfView._create_2();
+  }
+  static VRFieldOfView _create_1(fov) => JS('VRFieldOfView', 'new VRFieldOfView(#)', fov);
+  static VRFieldOfView _create_2() => JS('VRFieldOfView', 'new VRFieldOfView()');
+
+  @DomName('VRFieldOfView.downDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num downDegrees;
+
+  @DomName('VRFieldOfView.leftDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num leftDegrees;
+
+  @DomName('VRFieldOfView.rightDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num rightDegrees;
+
+  @DomName('VRFieldOfView.upDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num upDegrees;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('VRPositionState')
+@Experimental() // untriaged
+@Native("VRPositionState")
+class VRPositionState extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory VRPositionState._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('VRPositionState.angularAcceleration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint angularAcceleration;
+
+  @DomName('VRPositionState.angularVelocity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint angularVelocity;
+
+  @DomName('VRPositionState.linearAcceleration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint linearAcceleration;
+
+  @DomName('VRPositionState.linearVelocity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint linearVelocity;
+
+  @DomName('VRPositionState.orientation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint orientation;
+
+  @DomName('VRPositionState.position')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final DomPoint position;
+
+  @DomName('VRPositionState.timeStamp')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final double timeStamp;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('ValidityState')
 @Native("ValidityState")
 class ValidityState extends Interceptor {
@@ -31111,6 +33881,11 @@
   @DocsEditable()
   final bool tooLong;
 
+  @DomName('ValidityState.tooShort')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool tooShort;
+
   @DomName('ValidityState.typeMismatch')
   @DocsEditable()
   final bool typeMismatch;
@@ -31357,12 +34132,14 @@
   @DomName('VTTCue.line')
   @DocsEditable()
   @Experimental() // untriaged
-  int line;
+  @Returns('num|String')
+  Object line;
 
   @DomName('VTTCue.position')
   @DocsEditable()
   @Experimental() // untriaged
-  int position;
+  @Returns('num|String')
+  Object position;
 
   @DomName('VTTCue.regionId')
   @DocsEditable()
@@ -31372,7 +34149,7 @@
   @DomName('VTTCue.size')
   @DocsEditable()
   @Experimental() // untriaged
-  int size;
+  num size;
 
   @DomName('VTTCue.snapToLines')
   @DocsEditable()
@@ -31581,22 +34358,14 @@
 
   @DomName('WebSocket.WebSocket')
   @DocsEditable()
-  factory WebSocket(String url, [protocol_OR_protocols]) {
-    if ((url is String || url == null) && protocol_OR_protocols == null) {
-      return WebSocket._create_1(url);
+  factory WebSocket(String url, [Object protocols]) {
+    if (protocols != null) {
+      return WebSocket._create_1(url, protocols);
     }
-    if ((protocol_OR_protocols is String || protocol_OR_protocols == null) && (url is String || url == null)) {
-      return WebSocket._create_2(url, protocol_OR_protocols);
-    }
-    if ((protocol_OR_protocols is List<String> || protocol_OR_protocols == null) && (url is String || url == null)) {
-      List protocols_1 = convertDartToNative_StringArray(protocol_OR_protocols);
-      return WebSocket._create_3(url, protocols_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return WebSocket._create_2(url);
   }
-  static WebSocket _create_1(url) => JS('WebSocket', 'new WebSocket(#)', url);
-  static WebSocket _create_2(url, protocol_OR_protocols) => JS('WebSocket', 'new WebSocket(#,#)', url, protocol_OR_protocols);
-  static WebSocket _create_3(url, protocol_OR_protocols) => JS('WebSocket', 'new WebSocket(#,#)', url, protocol_OR_protocols);
+  static WebSocket _create_1(url, protocols) => JS('WebSocket', 'new WebSocket(#,#)', url, protocols);
+  static WebSocket _create_2(url) => JS('WebSocket', 'new WebSocket(#)', url);
 
   /// Checks if this type is supported on the current platform.
   static bool get supported => JS('bool', 'typeof window.WebSocket != "undefined"');
@@ -31771,8 +34540,18 @@
 
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory WheelEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('WheelEvent.WheelEvent')
+  @DocsEditable()
+  factory WheelEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return WheelEvent._create_1(type, eventInitDict_1);
+    }
+    return WheelEvent._create_2(type);
+  }
+  static WheelEvent _create_1(type, eventInitDict) => JS('WheelEvent', 'new WheelEvent(#,#)', type, eventInitDict);
+  static WheelEvent _create_2(type) => JS('WheelEvent', 'new WheelEvent(#)', type);
 
   @DomName('WheelEvent.DOM_DELTA_LINE')
   @DocsEditable()
@@ -32037,7 +34816,7 @@
    * for the animation to continue.
    */
   @DomName('Window.requestAnimationFrame')
-  int requestAnimationFrame(RequestAnimationFrameCallback callback) {
+  int requestAnimationFrame(FrameRequestCallback callback) {
     _ensureRequestAnimationFrame();
     return _requestAnimationFrame(_wrapZone(callback));
   }
@@ -32056,7 +34835,7 @@
   }
 
   @JSName('requestAnimationFrame')
-  int _requestAnimationFrame(RequestAnimationFrameCallback callback) native;
+  int _requestAnimationFrame(FrameRequestCallback callback) native;
 
   @JSName('cancelAnimationFrame')
   void _cancelAnimationFrame(int id) native;
@@ -32332,18 +35111,6 @@
   @Experimental()
   static const int TEMPORARY = 0;
 
-  @JSName('CSS')
-  /**
-   * Entrypoint for CSS-related functions.
-   *
-   * ## Other resources
-   *
-   * * [The CSS interface](http://dev.w3.org/csswg/css-conditional/#the-css-interface) from W3C.
-   */
-  @DomName('Window.CSS')
-  @DocsEditable()
-  final Css css;
-
   /**
    * The application cache for this window.
    *
@@ -32360,6 +35127,11 @@
   @DocsEditable()
   final ApplicationCache applicationCache;
 
+  @DomName('Window.caches')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final CacheStorage caches;
+
   @DomName('Window.closed')
   @DocsEditable()
   final bool closed;
@@ -32896,6 +35668,27 @@
   @DocsEditable()
   bool confirm([String message]) native;
 
+  @DomName('Window.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future fetch(/*RequestInfo*/ input, [Map init]) {
+    if (init != null) {
+      var init_1 = convertDartToNative_Dictionary(init);
+      return _fetch_1(input, init_1);
+    }
+    return _fetch_2(input);
+  }
+  @JSName('fetch')
+  @DomName('Window.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _fetch_1(input, init) native;
+  @JSName('fetch')
+  @DomName('Window.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _fetch_2(input) native;
+
   /**
    * Finds text in this window.
    *
@@ -32912,7 +35705,7 @@
   @JSName('getComputedStyle')
   @DomName('Window.getComputedStyle')
   @DocsEditable()
-  CssStyleDeclaration _getComputedStyle(Element element, String pseudoElement) native;
+  CssStyleDeclaration _getComputedStyle(Element elt, String pseudoElt) native;
 
   @JSName('getMatchedCSSRules')
   /**
@@ -32965,12 +35758,12 @@
    */
   @DomName('Window.moveBy')
   @DocsEditable()
-  void moveBy(num x, num y) native;
+  void moveBy(int x, int y) native;
 
   @JSName('moveTo')
   @DomName('Window.moveTo')
   @DocsEditable()
-  void _moveTo(num x, num y) native;
+  void _moveTo(int x, int y) native;
 
   /// *Deprecated.*
   @DomName('Window.openDatabase')
@@ -32985,7 +35778,7 @@
 
   @DomName('Window.postMessage')
   @DocsEditable()
-  void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List<MessagePort> transfer]) {
+  void postMessage(/*any*/ message, String targetOrigin, [List<MessagePort> transfer]) {
     if (transfer != null) {
       var message_1 = convertDartToNative_SerializedScriptValue(message);
       _postMessage_1(message_1, targetOrigin, transfer);
@@ -33026,7 +35819,7 @@
    */
   @DomName('Window.resizeBy')
   @DocsEditable()
-  void resizeBy(num x, num y) native;
+  void resizeBy(int x, int y) native;
 
   /**
    * Resizes this window to a specific width and height.
@@ -33038,7 +35831,7 @@
    */
   @DomName('Window.resizeTo')
   @DocsEditable()
-  void resizeTo(num width, num height) native;
+  void resizeTo(int x, int y) native;
 
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33052,23 +35845,27 @@
    */
   @DomName('Window.scroll')
   @DocsEditable()
-  void scroll(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _scroll_1(x, y);
+  void scroll([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _scroll_1();
       return;
     }
-    if (scrollOptions != null && (y is num) && (x is num)) {
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scroll_2(options_1);
+      return;
+    }
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _scroll_3(options_OR_x, y);
+      return;
+    }
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _scroll_4(options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
       var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scroll_2(x, y, scrollOptions_1);
-      return;
-    }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _scroll_3(x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scroll_4(x, y, scrollOptions_1);
+      _scroll_5(options_OR_x, y, scrollOptions_1);
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
@@ -33086,7 +35883,7 @@
    */
   @DomName('Window.scroll')
   @DocsEditable()
-  void _scroll_1(num x, num y) native;
+  void _scroll_1() native;
   @JSName('scroll')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33100,7 +35897,7 @@
    */
   @DomName('Window.scroll')
   @DocsEditable()
-  void _scroll_2(num x, num y, scrollOptions) native;
+  void _scroll_2(options) native;
   @JSName('scroll')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33114,7 +35911,7 @@
    */
   @DomName('Window.scroll')
   @DocsEditable()
-  void _scroll_3(int x, int y) native;
+  void _scroll_3(num x, num y) native;
   @JSName('scroll')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33128,7 +35925,21 @@
    */
   @DomName('Window.scroll')
   @DocsEditable()
-  void _scroll_4(int x, int y, scrollOptions) native;
+  void _scroll_4(int x, int y) native;
+  @JSName('scroll')
+  /**
+   * Scrolls the page horizontally and vertically to a specific point.
+   *
+   * This method is identical to [scrollTo].
+   *
+   * ## Other resources
+   *
+   * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
+   *   from WebPlatform.org.
+   */
+  @DomName('Window.scroll')
+  @DocsEditable()
+  void _scroll_5(int x, int y, scrollOptions) native;
 
   /**
    * Scrolls the page horizontally and vertically by an offset.
@@ -33140,23 +35951,27 @@
    */
   @DomName('Window.scrollBy')
   @DocsEditable()
-  void scrollBy(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _scrollBy_1(x, y);
+  void scrollBy([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _scrollBy_1();
       return;
     }
-    if (scrollOptions != null && (y is num) && (x is num)) {
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scrollBy_2(options_1);
+      return;
+    }
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _scrollBy_3(options_OR_x, y);
+      return;
+    }
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _scrollBy_4(options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
       var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollBy_2(x, y, scrollOptions_1);
-      return;
-    }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _scrollBy_3(x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollBy_4(x, y, scrollOptions_1);
+      _scrollBy_5(options_OR_x, y, scrollOptions_1);
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
@@ -33172,7 +35987,7 @@
    */
   @DomName('Window.scrollBy')
   @DocsEditable()
-  void _scrollBy_1(num x, num y) native;
+  void _scrollBy_1() native;
   @JSName('scrollBy')
   /**
    * Scrolls the page horizontally and vertically by an offset.
@@ -33184,7 +35999,7 @@
    */
   @DomName('Window.scrollBy')
   @DocsEditable()
-  void _scrollBy_2(num x, num y, scrollOptions) native;
+  void _scrollBy_2(options) native;
   @JSName('scrollBy')
   /**
    * Scrolls the page horizontally and vertically by an offset.
@@ -33196,7 +36011,7 @@
    */
   @DomName('Window.scrollBy')
   @DocsEditable()
-  void _scrollBy_3(int x, int y) native;
+  void _scrollBy_3(num x, num y) native;
   @JSName('scrollBy')
   /**
    * Scrolls the page horizontally and vertically by an offset.
@@ -33208,7 +36023,19 @@
    */
   @DomName('Window.scrollBy')
   @DocsEditable()
-  void _scrollBy_4(int x, int y, scrollOptions) native;
+  void _scrollBy_4(int x, int y) native;
+  @JSName('scrollBy')
+  /**
+   * Scrolls the page horizontally and vertically by an offset.
+   *
+   * ## Other resources
+   *
+   * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
+   *   from WebPlatform.org.
+   */
+  @DomName('Window.scrollBy')
+  @DocsEditable()
+  void _scrollBy_5(int x, int y, scrollOptions) native;
 
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33222,23 +36049,27 @@
    */
   @DomName('Window.scrollTo')
   @DocsEditable()
-  void scrollTo(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _scrollTo_1(x, y);
+  void scrollTo([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _scrollTo_1();
       return;
     }
-    if (scrollOptions != null && (y is num) && (x is num)) {
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      var options_1 = convertDartToNative_Dictionary(options_OR_x);
+      _scrollTo_2(options_1);
+      return;
+    }
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _scrollTo_3(options_OR_x, y);
+      return;
+    }
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _scrollTo_4(options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
       var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollTo_2(x, y, scrollOptions_1);
-      return;
-    }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _scrollTo_3(x, y);
-      return;
-    }
-    if (scrollOptions != null && (y is int) && (x is int)) {
-      var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
-      _scrollTo_4(x, y, scrollOptions_1);
+      _scrollTo_5(options_OR_x, y, scrollOptions_1);
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
@@ -33256,7 +36087,7 @@
    */
   @DomName('Window.scrollTo')
   @DocsEditable()
-  void _scrollTo_1(num x, num y) native;
+  void _scrollTo_1() native;
   @JSName('scrollTo')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33270,7 +36101,7 @@
    */
   @DomName('Window.scrollTo')
   @DocsEditable()
-  void _scrollTo_2(num x, num y, scrollOptions) native;
+  void _scrollTo_2(options) native;
   @JSName('scrollTo')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33284,7 +36115,7 @@
    */
   @DomName('Window.scrollTo')
   @DocsEditable()
-  void _scrollTo_3(int x, int y) native;
+  void _scrollTo_3(num x, num y) native;
   @JSName('scrollTo')
   /**
    * Scrolls the page horizontally and vertically to a specific point.
@@ -33298,21 +36129,21 @@
    */
   @DomName('Window.scrollTo')
   @DocsEditable()
-  void _scrollTo_4(int x, int y, scrollOptions) native;
-
+  void _scrollTo_4(int x, int y) native;
+  @JSName('scrollTo')
   /**
-   * Opens a new page as a modal dialog.
+   * Scrolls the page horizontally and vertically to a specific point.
+   *
+   * This method is identical to [scroll].
    *
    * ## Other resources
    *
-   * * [Dialogs implemented using separate
-   *   documents](http://www.w3.org/html/wg/drafts/html/master/webappapis.html#dialogs-implemented-using-separate-documents)
-   *   from W3C.
+   * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
+   *   from WebPlatform.org.
    */
-  @DomName('Window.showModalDialog')
+  @DomName('Window.scrollTo')
   @DocsEditable()
-  @Creates('Null')
-  Object showModalDialog(String url, [Object dialogArgs, String featureArgs]) native;
+  void _scrollTo_5(int x, int y, scrollOptions) native;
 
   /**
    * Stops the window from loading.
@@ -33393,33 +36224,43 @@
 
   @DomName('Window.atob')
   @DocsEditable()
-  String atob(String string) native;
+  String atob(String atob) native;
 
   @DomName('Window.btoa')
   @DocsEditable()
-  String btoa(String string) native;
+  String btoa(String btoa) native;
 
   // From WindowTimers
 
-  @JSName('clearInterval')
-  @DomName('Window.clearInterval')
-  @DocsEditable()
-  void _clearInterval(int handle) native;
-
-  @JSName('clearTimeout')
-  @DomName('Window.clearTimeout')
-  @DocsEditable()
-  void _clearTimeout(int handle) native;
-
   @JSName('setInterval')
   @DomName('Window.setInterval')
   @DocsEditable()
-  int _setInterval(Object handler, int timeout) native;
+  int _setInterval_String(String handler, [int timeout, Object arguments]) native;
 
   @JSName('setTimeout')
   @DomName('Window.setTimeout')
   @DocsEditable()
-  int _setTimeout(Object handler, int timeout) native;
+  int _setTimeout_String(String handler, [int timeout, Object arguments]) native;
+
+  @JSName('clearInterval')
+  @DomName('Window.clearInterval')
+  @DocsEditable()
+  void _clearInterval([int handle]) native;
+
+  @JSName('clearTimeout')
+  @DomName('Window.clearTimeout')
+  @DocsEditable()
+  void _clearTimeout([int handle]) native;
+
+  @JSName('setInterval')
+  @DomName('Window.setInterval')
+  @DocsEditable()
+  int _setInterval(Object handler, [int timeout]) native;
+
+  @JSName('setTimeout')
+  @DomName('Window.setTimeout')
+  @DocsEditable()
+  int _setTimeout(Object handler, [int timeout]) native;
 
   /// Stream of `contentloaded` events handled by this [Window].
   @DomName('Window.onDOMContentLoaded')
@@ -33928,9 +36769,37 @@
   // To suppress missing implicit constructor warnings.
   factory WindowBase64._() { throw new UnsupportedError("Not supported"); }
 
-  String atob(String string);
+  String atob(String atob);
 
-  String btoa(String string);
+  String btoa(String btoa);
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('WindowClient')
+@Experimental() // untriaged
+@Native("WindowClient")
+class WindowClient extends Client {
+  // To suppress missing implicit constructor warnings.
+  factory WindowClient._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('WindowClient.focused')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final bool focused;
+
+  @DomName('WindowClient.visibilityState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String visibilityState;
+
+  @DomName('WindowClient.focus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future focus() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34146,6 +37015,11 @@
   @Experimental() // untriaged
   static const int TEMPORARY = 0;
 
+  @DomName('WorkerGlobalScope.caches')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final CacheStorage caches;
+
   @DomName('WorkerGlobalScope.console')
   @DocsEditable()
   @Experimental() // untriaged
@@ -34186,6 +37060,27 @@
   @Experimental() // untriaged
   void close() native;
 
+  @DomName('WorkerGlobalScope.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future fetch(/*RequestInfo*/ input, [Map init]) {
+    if (init != null) {
+      var init_1 = convertDartToNative_Dictionary(init);
+      return _fetch_1(input, init_1);
+    }
+    return _fetch_2(input);
+  }
+  @JSName('fetch')
+  @DomName('WorkerGlobalScope.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _fetch_1(input, init) native;
+  @JSName('fetch')
+  @DomName('WorkerGlobalScope.fetch')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future _fetch_2(input) native;
+
   @DomName('WorkerGlobalScope.importScripts')
   @DocsEditable()
   @Experimental() // untriaged
@@ -34250,38 +37145,50 @@
   @DomName('WorkerGlobalScope.atob')
   @DocsEditable()
   @Experimental() // untriaged
-  String atob(String string) native;
+  String atob(String atob) native;
 
   @DomName('WorkerGlobalScope.btoa')
   @DocsEditable()
   @Experimental() // untriaged
-  String btoa(String string) native;
+  String btoa(String btoa) native;
 
   // From WindowTimers
 
-  @JSName('clearInterval')
-  @DomName('WorkerGlobalScope.clearInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearInterval(int handle) native;
-
-  @JSName('clearTimeout')
-  @DomName('WorkerGlobalScope.clearTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearTimeout(int handle) native;
-
   @JSName('setInterval')
   @DomName('WorkerGlobalScope.setInterval')
   @DocsEditable()
   @Experimental() // untriaged
-  int _setInterval(Object handler, int timeout) native;
+  int _setInterval_String(String handler, [int timeout, Object arguments]) native;
 
   @JSName('setTimeout')
   @DomName('WorkerGlobalScope.setTimeout')
   @DocsEditable()
   @Experimental() // untriaged
-  int _setTimeout(Object handler, int timeout) native;
+  int _setTimeout_String(String handler, [int timeout, Object arguments]) native;
+
+  @JSName('clearInterval')
+  @DomName('WorkerGlobalScope.clearInterval')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _clearInterval([int handle]) native;
+
+  @JSName('clearTimeout')
+  @DomName('WorkerGlobalScope.clearTimeout')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _clearTimeout([int handle]) native;
+
+  @JSName('setInterval')
+  @DomName('WorkerGlobalScope.setInterval')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int _setInterval(Object handler, [int timeout]) native;
+
+  @JSName('setTimeout')
+  @DomName('WorkerGlobalScope.setTimeout')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int _setTimeout(Object handler, [int timeout]) native;
 
   /// Stream of `error` events handled by this [WorkerGlobalScope].
   @DomName('WorkerGlobalScope.onerror')
@@ -34298,7 +37205,7 @@
 @DomName('WorkerPerformance')
 @Experimental() // untriaged
 @Native("WorkerPerformance")
-class WorkerPerformance extends Interceptor {
+class WorkerPerformance extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory WorkerPerformance._() { throw new UnsupportedError("Not supported"); }
 
@@ -34307,10 +37214,63 @@
   @Experimental() // untriaged
   final MemoryInfo memory;
 
+  @DomName('WorkerPerformance.clearMarks')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearMarks(String markName) native;
+
+  @DomName('WorkerPerformance.clearMeasures')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearMeasures(String measureName) native;
+
+  @DomName('WorkerPerformance.getEntries')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntries() native;
+
+  @DomName('WorkerPerformance.getEntriesByName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
+
+  @DomName('WorkerPerformance.getEntriesByType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntriesByType(String entryType) native;
+
+  @DomName('WorkerPerformance.mark')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void mark(String markName) native;
+
+  @DomName('WorkerPerformance.measure')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void measure(String measureName, String startMark, String endMark) native;
+
   @DomName('WorkerPerformance.now')
   @DocsEditable()
   @Experimental() // untriaged
   double now() native;
+
+  @JSName('webkitClearResourceTimings')
+  @DomName('WorkerPerformance.webkitClearResourceTimings')
+  @DocsEditable()
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental()
+  @Experimental() // untriaged
+  void clearResourceTimings() native;
+
+  @JSName('webkitSetResourceTimingBufferSize')
+  @DomName('WorkerPerformance.webkitSetResourceTimingBufferSize')
+  @DocsEditable()
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental()
+  @Experimental() // untriaged
+  void setResourceTimingBufferSize(int maxSize) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34343,7 +37303,7 @@
 
   @DomName('XPathEvaluator.evaluate')
   @DocsEditable()
-  XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult) native;
+  XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, [int type, Object inResult]) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34361,7 +37321,7 @@
 
   @DomName('XPathExpression.evaluate')
   @DocsEditable()
-  XPathResult evaluate(Node contextNode, int type, XPathResult inResult) native;
+  XPathResult evaluate(Node contextNode, [int type, Object inResult]) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34508,7 +37468,7 @@
 
   @DomName('XMLSerializer.serializeToString')
   @DocsEditable()
-  String serializeToString(Node node) native;
+  String serializeToString(Node root) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34546,7 +37506,7 @@
 
   @DomName('XSLTProcessor.importStylesheet')
   @DocsEditable()
-  void importStylesheet(Node stylesheet) native;
+  void importStylesheet(Node style) native;
 
   @DomName('XSLTProcessor.removeParameter')
   @DocsEditable()
@@ -34566,7 +37526,7 @@
 
   @DomName('XSLTProcessor.transformToFragment')
   @DocsEditable()
-  DocumentFragment transformToFragment(Node source, Document docVal) native;
+  DocumentFragment transformToFragment(Node source, Document output) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34610,48 +37570,6 @@
 
 
 @DocsEditable()
-@DomName('CSSPrimitiveValue')
-// http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
-@deprecated // deprecated
-@Native("CSSPrimitiveValue")
-abstract class _CSSPrimitiveValue extends _CSSValue {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSPrimitiveValue._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('CSSUnknownRule')
-// http://dev.w3.org/csswg/cssom/#the-cssstylesheet-interface
-@deprecated // deprecated
-@Native("CSSUnknownRule")
-abstract class _CSSUnknownRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSUnknownRule._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('CSSValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("CSSValue")
-abstract class _CSSValue extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSValue._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('Cache')
 @Experimental() // untriaged
 @Native("Cache")
@@ -34842,7 +37760,7 @@
 @DocsEditable()
 @DomName('ClientRectList')
 @Native("ClientRectList,DOMRectList")
-class _ClientRectList extends Interceptor with ListMixin<Rectangle>, ImmutableListMixin<Rectangle> implements List<Rectangle>, JavaScriptIndexingBehavior {
+class _ClientRectList extends Interceptor with ListMixin<Rectangle>, ImmutableListMixin<Rectangle> implements List<Rectangle> {
   // To suppress missing implicit constructor warnings.
   factory _ClientRectList._() { throw new UnsupportedError("Not supported"); }
 
@@ -34854,7 +37772,7 @@
     if (JS("bool", "# >>> 0 !== # || # >= #", index,
         index, index, length))
       throw new RangeError.index(index, this);
-    return JS("Rectangle", "#[#]", this, index);
+    return this.item(index);
   }
   void operator[]=(int index, Rectangle value) {
     throw new UnsupportedError("Cannot assign element of immutable List.");
@@ -34894,6 +37812,11 @@
   Rectangle elementAt(int index) => this[index];
   // -- end List<Rectangle> mixins.
 
+  @DomName('ClientRectList.__getter__')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Rectangle __getter__(int index) native;
+
   @DomName('ClientRectList.item')
   @DocsEditable()
   Rectangle item(int index) native;
@@ -34904,20 +37827,6 @@
 
 
 @DocsEditable()
-@DomName('Counter')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("Counter")
-abstract class _Counter extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _Counter._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('CSSRuleList')
 @Native("CSSRuleList")
 class _CssRuleList extends Interceptor with ListMixin<CssRule>, ImmutableListMixin<CssRule> implements JavaScriptIndexingBehavior, List<CssRule> {
@@ -34982,72 +37891,6 @@
 
 
 @DocsEditable()
-@DomName('CSSValueList')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("CSSValueList")
-class _CssValueList extends _CSSValue with ListMixin<_CSSValue>, ImmutableListMixin<_CSSValue> implements JavaScriptIndexingBehavior, List<_CSSValue> {
-  // To suppress missing implicit constructor warnings.
-  factory _CssValueList._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('CSSValueList.length')
-  @DocsEditable()
-  int get length => JS("int", "#.length", this);
-
-  _CSSValue operator[](int index) {
-    if (JS("bool", "# >>> 0 !== # || # >= #", index,
-        index, index, length))
-      throw new RangeError.index(index, this);
-    return JS("_CSSValue", "#[#]", this, index);
-  }
-  void operator[]=(int index, _CSSValue value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<_CSSValue> mixins.
-  // _CSSValue is the element type.
-
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  _CSSValue get first {
-    if (this.length > 0) {
-      return JS('_CSSValue', '#[0]', this);
-    }
-    throw new StateError("No elements");
-  }
-
-  _CSSValue get last {
-    int len = this.length;
-    if (len > 0) {
-      return JS('_CSSValue', '#[#]', this, len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  _CSSValue get single {
-    int len = this.length;
-    if (len == 1) {
-      return JS('_CSSValue', '#[0]', this);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  _CSSValue elementAt(int index) => this[index];
-  // -- end List<_CSSValue> mixins.
-
-  @DomName('CSSValueList.item')
-  @DocsEditable()
-  _CSSValue item(int index) native;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('DOMFileSystemSync')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @Experimental()
@@ -35522,37 +38365,33 @@
   Node elementAt(int index) => this[index];
   // -- end List<Node> mixins.
 
-  @DomName('NamedNodeMap.__getter__')
-  @DocsEditable()
-  Node __getter__(String name) native;
-
   @DomName('NamedNodeMap.getNamedItem')
   @DocsEditable()
-  Node getNamedItem(String name) native;
+  _Attr getNamedItem(String name) native;
 
   @DomName('NamedNodeMap.getNamedItemNS')
   @DocsEditable()
-  Node getNamedItemNS(String namespaceURI, String localName) native;
+  _Attr getNamedItemNS(String namespaceURI, String localName) native;
 
   @DomName('NamedNodeMap.item')
   @DocsEditable()
-  Node item(int index) native;
+  _Attr item(int index) native;
 
   @DomName('NamedNodeMap.removeNamedItem')
   @DocsEditable()
-  Node removeNamedItem(String name) native;
+  _Attr removeNamedItem(String name) native;
 
   @DomName('NamedNodeMap.removeNamedItemNS')
   @DocsEditable()
-  Node removeNamedItemNS(String namespaceURI, String localName) native;
+  _Attr removeNamedItemNS(String namespaceURI, String localName) native;
 
   @DomName('NamedNodeMap.setNamedItem')
   @DocsEditable()
-  Node setNamedItem(Node node) native;
+  _Attr setNamedItem(_Attr attr) native;
 
   @DomName('NamedNodeMap.setNamedItemNS')
   @DocsEditable()
-  Node setNamedItemNS(Node node) native;
+  _Attr setNamedItemNS(_Attr attr) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -35567,20 +38406,6 @@
   // To suppress missing implicit constructor warnings.
   factory _PagePopupController._() { throw new UnsupportedError("Not supported"); }
 }
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('RGBColor')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("RGBColor")
-abstract class _RGBColor extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _RGBColor._() { throw new UnsupportedError("Not supported"); }
-}
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -35596,20 +38421,6 @@
 
 
 @DocsEditable()
-@DomName('Rect')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("Rect")
-abstract class _Rect extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory _Rect._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('Request')
 @Experimental() // untriaged
 @Native("Request")
@@ -35619,27 +38430,20 @@
 
   @DomName('Request.Request')
   @DocsEditable()
-  factory _Request(input, [Map requestInitDict]) {
-    if ((input is String || input == null) && requestInitDict == null) {
-      return _Request._create_1(input);
-    }
-    if ((requestInitDict is Map || requestInitDict == null) && (input is String || input == null)) {
+  factory _Request(Object input, [Map requestInitDict]) {
+    if (requestInitDict != null) {
       var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return _Request._create_2(input, requestInitDict_1);
+      return _Request._create_1(input, requestInitDict_1);
     }
-    if ((input is _Request || input == null) && requestInitDict == null) {
-      return _Request._create_3(input);
-    }
-    if ((requestInitDict is Map || requestInitDict == null) && (input is _Request || input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return _Request._create_4(input, requestInitDict_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return _Request._create_2(input);
   }
-  static _Request _create_1(input) => JS('_Request', 'new Request(#)', input);
-  static _Request _create_2(input, requestInitDict) => JS('_Request', 'new Request(#,#)', input, requestInitDict);
-  static _Request _create_3(input) => JS('_Request', 'new Request(#)', input);
-  static _Request _create_4(input, requestInitDict) => JS('_Request', 'new Request(#,#)', input, requestInitDict);
+  static _Request _create_1(input, requestInitDict) => JS('_Request', 'new Request(#,#)', input, requestInitDict);
+  static _Request _create_2(input) => JS('_Request', 'new Request(#)', input);
+
+  @DomName('Request.context')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String context;
 
   @DomName('Request.credentials')
   @DocsEditable()
@@ -35686,45 +38490,19 @@
 
   @DomName('Response.Response')
   @DocsEditable()
-  factory _Response(body_OR_input, [Map requestInitDict_OR_responseInitDict]) {
-    if ((body_OR_input is String || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return _Response._create_1(body_OR_input);
+  factory _Response([Object body, Map responseInitDict]) {
+    if (responseInitDict != null) {
+      var responseInitDict_1 = convertDartToNative_Dictionary(responseInitDict);
+      return _Response._create_1(body, responseInitDict_1);
     }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is String || body_OR_input == null)) {
-      var responseInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return _Response._create_2(body_OR_input, responseInitDict_1);
+    if (body != null) {
+      return _Response._create_2(body);
     }
-    if ((body_OR_input is Blob || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return _Response._create_3(body_OR_input);
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is Blob || body_OR_input == null)) {
-      var responseInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return _Response._create_4(body_OR_input, responseInitDict_1);
-    }
-    if ((body_OR_input is TypedData || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return _Response._create_5(body_OR_input);
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is TypedData || body_OR_input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return _Response._create_6(body_OR_input, requestInitDict_1);
-    }
-    if ((body_OR_input is ByteBuffer || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return _Response._create_7(body_OR_input);
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is ByteBuffer || body_OR_input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return _Response._create_8(body_OR_input, requestInitDict_1);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return _Response._create_3();
   }
-  static _Response _create_1(body_OR_input) => JS('_Response', 'new Response(#)', body_OR_input);
-  static _Response _create_2(body_OR_input, requestInitDict_OR_responseInitDict) => JS('_Response', 'new Response(#,#)', body_OR_input, requestInitDict_OR_responseInitDict);
-  static _Response _create_3(body_OR_input) => JS('_Response', 'new Response(#)', body_OR_input);
-  static _Response _create_4(body_OR_input, requestInitDict_OR_responseInitDict) => JS('_Response', 'new Response(#,#)', body_OR_input, requestInitDict_OR_responseInitDict);
-  static _Response _create_5(body_OR_input) => JS('_Response', 'new Response(#)', body_OR_input);
-  static _Response _create_6(body_OR_input, requestInitDict_OR_responseInitDict) => JS('_Response', 'new Response(#,#)', body_OR_input, requestInitDict_OR_responseInitDict);
-  static _Response _create_7(body_OR_input) => JS('_Response', 'new Response(#)', body_OR_input);
-  static _Response _create_8(body_OR_input, requestInitDict_OR_responseInitDict) => JS('_Response', 'new Response(#,#)', body_OR_input, requestInitDict_OR_responseInitDict);
+  static _Response _create_1(body, responseInitDict) => JS('_Response', 'new Response(#,#)', body, responseInitDict);
+  static _Response _create_2(body) => JS('_Response', 'new Response(#)', body);
+  static _Response _create_3() => JS('_Response', 'new Response()');
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -35894,20 +38672,6 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSFilterValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("WebKitCSSFilterValue")
-abstract class _WebKitCSSFilterValue extends _CssValueList {
-  // To suppress missing implicit constructor warnings.
-  factory _WebKitCSSFilterValue._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('WebKitCSSMatrix')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
@@ -35936,33 +38700,23 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSTransformValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("WebKitCSSTransformValue")
-abstract class _WebKitCSSTransformValue extends _CssValueList {
-  // To suppress missing implicit constructor warnings.
-  factory _WebKitCSSTransformValue._() { throw new UnsupportedError("Not supported"); }
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('WindowTimers')
 @Experimental() // untriaged
 abstract class _WindowTimers extends Interceptor {
   // To suppress missing implicit constructor warnings.
   factory _WindowTimers._() { throw new UnsupportedError("Not supported"); }
 
-  void _clearInterval(int handle);
+  int _setInterval_String(String handler, [int timeout, Object arguments]);
 
-  void _clearTimeout(int handle);
+  int _setTimeout_String(String handler, [int timeout, Object arguments]);
 
-  int _setInterval(Object handler, int timeout);
+  void _clearInterval([int handle]);
 
-  int _setTimeout(Object handler, int timeout);
+  void _clearTimeout([int handle]);
+
+  int _setInterval(Object handler, [int timeout]);
+
+  int _setTimeout(Object handler, [int timeout]);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -40419,22 +43173,22 @@
   /** The "fixed" value of whether the alt key is being pressed. */
   bool _shadowAltKey;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int _shadowCharCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int _shadowKeyCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get keyCode => _shadowKeyCode;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
 
-  /** Caculated value of whether the alt key is pressed is for this event. */
+  /** Calculated value of whether the alt key is pressed is for this event. */
   bool get altKey => _shadowAltKey;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get which => keyCode;
 
   /** Accessor to the underlying keyCode value is the parent event. */
@@ -40571,23 +43325,22 @@
   static EventStreamProvider<KeyEvent> keyPressEvent =
       new _KeyboardEventHandler('keypress');
 
-  /** Accessor to the clipboardData available for this event. */
-  DataTransfer get clipboardData => _parent.clipboardData;
+  String get code => _parent.code;
   /** True if the ctrl key is pressed during this event. */
   bool get ctrlKey => _parent.ctrlKey;
   int get detail => _parent.detail;
+  String get key => _parent.key;
   /**
    * Accessor to the part of the keyboard that the key was pressed from (one of
    * KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT,
    * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
    */
   int get keyLocation => _parent.keyLocation;
-  Point get layer => _parent.layer;
   /** True if the Meta (or Mac command) key is pressed during this event. */
   bool get metaKey => _parent.metaKey;
-  Point get page => _parent.page;
   /** True if the shift key was pressed during this event. */
   bool get shiftKey => _parent.shiftKey;
+  InputDevice get sourceDevice => _parent.sourceDevice;
   Window get view => _parent.view;
   void _initUIEvent(String type, bool canBubble, bool cancelable,
       Window view, int detail) {
@@ -40597,6 +43350,8 @@
 
   int get _charCode => charCode;
   int get _keyCode => keyCode;
+  int get _which => which;
+
   String get _keyIdentifier {
     throw new UnsupportedError("keyIdentifier is unsupported.");
   }
@@ -40606,10 +43361,6 @@
     throw new UnsupportedError(
         "Cannot initialize a KeyboardEvent from a KeyEvent.");
   }
-  int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
   @Experimental() // untriaged
   bool getModifierState(String keyArgument) => throw new UnimplementedError();
   @Experimental() // untriaged
@@ -40658,8 +43409,6 @@
 
   bool get cancelable => wrapped.cancelable;
 
-  DataTransfer get clipboardData => wrapped.clipboardData;
-
   EventTarget get currentTarget => wrapped.currentTarget;
 
   bool get defaultPrevented => wrapped.defaultPrevented;
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index c306d5b..bbb5d14 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -131,11 +131,12 @@
   'JsArray': () => js.JsArray,
   'AbstractWorker': () => AbstractWorker,
   'Animation': () => Animation,
-  'AnimationEffect': () => AnimationEffect,
-  'AnimationNode': () => AnimationNode,
-  'AnimationPlayer': () => AnimationPlayer,
+  'AnimationEffectReadOnly': () => AnimationEffectReadOnly,
+  'AnimationEffectTiming': () => AnimationEffectTiming,
+  'AnimationEvent': () => AnimationEvent,
   'AnimationPlayerEvent': () => AnimationPlayerEvent,
   'AnimationTimeline': () => AnimationTimeline,
+  'AppBannerPromptResult': () => AppBannerPromptResult,
   'ApplicationCache': () => ApplicationCache,
   'ApplicationCacheErrorEvent': () => ApplicationCacheErrorEvent,
   'Attr': () => _Attr,
@@ -144,32 +145,36 @@
   'AutocompleteErrorEvent': () => AutocompleteErrorEvent,
   'BarProp': () => BarProp,
   'BatteryManager': () => BatteryManager,
+  'BeforeInstallPromptEvent': () => BeforeInstallPromptEvent,
   'BeforeUnloadEvent': () => BeforeUnloadEvent,
   'Blob': () => Blob,
+  'Bluetooth': () => Bluetooth,
+  'BluetoothDevice': () => BluetoothDevice,
+  'BluetoothGATTCharacteristic': () => BluetoothGattCharacteristic,
+  'BluetoothGATTRemoteServer': () => BluetoothGattRemoteServer,
+  'BluetoothGATTService': () => BluetoothGattService,
+  'BluetoothUUID': () => BluetoothUuid,
   'Body': () => Body,
   'CDATASection': () => CDataSection,
+  'CHROMIUMValuebuffer': () => ChromiumValuebuffer,
   'CSS': () => Css,
   'CSSCharsetRule': () => CssCharsetRule,
   'CSSFontFaceRule': () => CssFontFaceRule,
+  'CSSGroupingRule': () => CssGroupingRule,
   'CSSImportRule': () => CssImportRule,
   'CSSKeyframeRule': () => CssKeyframeRule,
   'CSSKeyframesRule': () => CssKeyframesRule,
   'CSSMediaRule': () => CssMediaRule,
   'CSSPageRule': () => CssPageRule,
-  'CSSPrimitiveValue': () => _CSSPrimitiveValue,
   'CSSRule': () => CssRule,
   'CSSRuleList': () => _CssRuleList,
   'CSSStyleDeclaration': () => CssStyleDeclaration,
   'CSSStyleRule': () => CssStyleRule,
   'CSSStyleSheet': () => CssStyleSheet,
   'CSSSupportsRule': () => CssSupportsRule,
-  'CSSUnknownRule': () => _CSSUnknownRule,
-  'CSSValue': () => _CSSValue,
-  'CSSValueList': () => _CssValueList,
   'CSSViewportRule': () => CssViewportRule,
   'Cache': () => _Cache,
   'CacheStorage': () => CacheStorage,
-  'Canvas2DContextAttributes': () => Canvas2DContextAttributes,
   'CanvasGradient': () => CanvasGradient,
   'CanvasPathMethods': () => _CanvasPathMethods,
   'CanvasPattern': () => CanvasPattern,
@@ -177,17 +182,24 @@
   'CharacterData': () => CharacterData,
   'ChildNode': () => ChildNode,
   'CircularGeofencingRegion': () => CircularGeofencingRegion,
+  'Client': () => Client,
   'ClientRect': () => _ClientRect,
   'ClientRectList': () => _ClientRectList,
+  'Clients': () => Clients,
+  'ClipboardEvent': () => ClipboardEvent,
   'CloseEvent': () => CloseEvent,
   'Comment': () => Comment,
   'CompositionEvent': () => CompositionEvent,
+  'CompositorProxy': () => CompositorProxy,
+  'CompositorWorker': () => CompositorWorker,
+  'CompositorWorkerGlobalScope': () => CompositorWorkerGlobalScope,
   'Console': () => Console,
   'ConsoleBase': () => ConsoleBase,
   'Coordinates': () => Coordinates,
-  'Counter': () => _Counter,
   'Credential': () => Credential,
   'CredentialsContainer': () => CredentialsContainer,
+  'CrossOriginConnectEvent': () => CrossOriginConnectEvent,
+  'CrossOriginServiceWorkerClient': () => CrossOriginServiceWorkerClient,
   'Crypto': () => Crypto,
   'CryptoKey': () => CryptoKey,
   'CustomEvent': () => CustomEvent,
@@ -211,6 +223,7 @@
   'DataTransferItem': () => DataTransferItem,
   'DataTransferItemList': () => DataTransferItemList,
   'DedicatedWorkerGlobalScope': () => DedicatedWorkerGlobalScope,
+  'DefaultSessionStartEvent': () => DefaultSessionStartEvent,
   'DeprecatedStorageInfo': () => DeprecatedStorageInfo,
   'DeprecatedStorageQuota': () => DeprecatedStorageQuota,
   'DeviceAcceleration': () => DeviceAcceleration,
@@ -225,6 +238,7 @@
   'Document': () => Document,
   'DocumentFragment': () => DocumentFragment,
   'DocumentType': () => _DocumentType,
+  'EffectModel': () => EffectModel,
   'Element': () => Element,
   'Entry': () => Entry,
   'EntrySync': () => _EntrySync,
@@ -254,10 +268,12 @@
   'GamepadEvent': () => GamepadEvent,
   'GamepadList': () => _GamepadList,
   'Geofencing': () => Geofencing,
+  'GeofencingEvent': () => GeofencingEvent,
   'GeofencingRegion': () => GeofencingRegion,
   'Geolocation': () => Geolocation,
   'Geoposition': () => Geoposition,
   'GlobalEventHandlers': () => GlobalEventHandlers,
+  'HMDVRDevice': () => HmdvrDevice,
   'HTMLAllCollection': () => _HTMLAllCollection,
   'HTMLAnchorElement': () => AnchorElement,
   'HTMLAppletElement': () => _HTMLAppletElement,
@@ -342,11 +358,10 @@
   'ImageBitmap': () => ImageBitmap,
   'ImageData': () => ImageData,
   'InjectedScriptHost': () => InjectedScriptHost,
-  'InputMethodContext': () => InputMethodContext,
-  'InstallEvent': () => InstallEvent,
+  'InputDevice': () => InputDevice,
   'Iterator': () => DomIterator,
   'KeyboardEvent': () => KeyboardEvent,
-  'LocalCredential': () => LocalCredential,
+  'KeyframeEffect': () => KeyframeEffect,
   'Location': () => Location,
   'MIDIAccess': () => MidiAccess,
   'MIDIConnectionEvent': () => MidiConnectionEvent,
@@ -358,16 +373,20 @@
   'MIDIPort': () => MidiPort,
   'MediaController': () => MediaController,
   'MediaDeviceInfo': () => MediaDeviceInfo,
+  'MediaDevices': () => MediaDevices,
+  'MediaEncryptedEvent': () => MediaEncryptedEvent,
   'MediaError': () => MediaError,
   'MediaKeyError': () => MediaKeyError,
   'MediaKeyEvent': () => MediaKeyEvent,
   'MediaKeyMessageEvent': () => MediaKeyMessageEvent,
-  'MediaKeyNeededEvent': () => MediaKeyNeededEvent,
   'MediaKeySession': () => MediaKeySession,
+  'MediaKeyStatusMap': () => MediaKeyStatusMap,
+  'MediaKeySystemAccess': () => MediaKeySystemAccess,
   'MediaKeys': () => MediaKeys,
   'MediaList': () => MediaList,
   'MediaQueryList': () => MediaQueryList,
   'MediaQueryListEvent': () => MediaQueryListEvent,
+  'MediaSession': () => MediaSession,
   'MediaSource': () => MediaSource,
   'MediaStream': () => MediaStream,
   'MediaStreamEvent': () => MediaStreamEvent,
@@ -390,37 +409,53 @@
   'NavigatorID': () => NavigatorID,
   'NavigatorLanguage': () => NavigatorLanguage,
   'NavigatorOnLine': () => NavigatorOnLine,
+  'NavigatorStorageUtils': () => NavigatorStorageUtils,
   'NavigatorUserMediaError': () => NavigatorUserMediaError,
   'NetworkInformation': () => NetworkInformation,
   'Node': () => Node,
   'NodeFilter': () => NodeFilter,
   'NodeIterator': () => NodeIterator,
   'NodeList': () => NodeList,
+  'NonDocumentTypeChildNode': () => NonDocumentTypeChildNode,
+  'NonElementParentNode': () => NonElementParentNode,
   'Notification': () => Notification,
-  'OverflowEvent': () => OverflowEvent,
+  'NotificationEvent': () => NotificationEvent,
   'PagePopupController': () => _PagePopupController,
   'PageTransitionEvent': () => PageTransitionEvent,
   'ParentNode': () => ParentNode,
+  'PasswordCredential': () => PasswordCredential,
   'Path2D': () => Path2D,
   'Performance': () => Performance,
+  'PerformanceCompositeTiming': () => PerformanceCompositeTiming,
   'PerformanceEntry': () => PerformanceEntry,
   'PerformanceMark': () => PerformanceMark,
   'PerformanceMeasure': () => PerformanceMeasure,
   'PerformanceNavigation': () => PerformanceNavigation,
+  'PerformanceRenderTiming': () => PerformanceRenderTiming,
   'PerformanceResourceTiming': () => PerformanceResourceTiming,
   'PerformanceTiming': () => PerformanceTiming,
+  'PeriodicSyncEvent': () => PeriodicSyncEvent,
+  'PeriodicSyncManager': () => PeriodicSyncManager,
+  'PeriodicSyncRegistration': () => PeriodicSyncRegistration,
+  'PermissionStatus': () => PermissionStatus,
+  'Permissions': () => Permissions,
   'Plugin': () => Plugin,
   'PluginArray': () => PluginArray,
   'PluginPlaceholderElement': () => PluginPlaceholderElement,
+  'PointerEvent': () => PointerEvent,
   'PopStateEvent': () => PopStateEvent,
   'PositionError': () => PositionError,
+  'PositionSensorVRDevice': () => PositionSensorVRDevice,
   'Presentation': () => Presentation,
+  'PresentationAvailability': () => PresentationAvailability,
+  'PresentationSession': () => PresentationSession,
   'ProcessingInstruction': () => ProcessingInstruction,
   'ProgressEvent': () => ProgressEvent,
+  'PromiseRejectionEvent': () => PromiseRejectionEvent,
   'PushEvent': () => PushEvent,
   'PushManager': () => PushManager,
-  'PushRegistration': () => PushRegistration,
-  'RGBColor': () => _RGBColor,
+  'PushMessageData': () => PushMessageData,
+  'PushSubscription': () => PushSubscription,
   'RTCDTMFSender': () => RtcDtmfSender,
   'RTCDTMFToneChangeEvent': () => RtcDtmfToneChangeEvent,
   'RTCDataChannel': () => RtcDataChannel,
@@ -433,23 +468,29 @@
   'RTCStatsResponse': () => RtcStatsResponse,
   'RadioNodeList': () => _RadioNodeList,
   'Range': () => Range,
+  'ReadableByteStream': () => ReadableByteStream,
+  'ReadableByteStreamReader': () => ReadableByteStreamReader,
   'ReadableStream': () => ReadableStream,
-  'Rect': () => _Rect,
+  'ReadableStreamReader': () => ReadableStreamReader,
   'RelatedEvent': () => RelatedEvent,
   'Request': () => _Request,
   'ResourceProgressEvent': () => ResourceProgressEvent,
   'Response': () => _Response,
   'Screen': () => Screen,
   'ScreenOrientation': () => ScreenOrientation,
+  'ScrollState': () => ScrollState,
   'SecurityPolicyViolationEvent': () => SecurityPolicyViolationEvent,
   'Selection': () => Selection,
+  'ServicePort': () => ServicePort,
+  'ServicePortCollection': () => ServicePortCollection,
+  'ServicePortConnectEvent': () => ServicePortConnectEvent,
   'ServiceWorker': () => _ServiceWorker,
-  'ServiceWorkerClient': () => ServiceWorkerClient,
-  'ServiceWorkerClients': () => ServiceWorkerClients,
   'ServiceWorkerContainer': () => ServiceWorkerContainer,
   'ServiceWorkerGlobalScope': () => ServiceWorkerGlobalScope,
+  'ServiceWorkerMessageEvent': () => ServiceWorkerMessageEvent,
   'ServiceWorkerRegistration': () => ServiceWorkerRegistration,
   'ShadowRoot': () => ShadowRoot,
+  'SharedArrayBuffer': () => SharedArrayBuffer,
   'SharedWorker': () => SharedWorker,
   'SharedWorkerGlobalScope': () => SharedWorkerGlobalScope,
   'SourceBuffer': () => SourceBuffer,
@@ -467,6 +508,8 @@
   'SpeechSynthesisEvent': () => SpeechSynthesisEvent,
   'SpeechSynthesisUtterance': () => SpeechSynthesisUtterance,
   'SpeechSynthesisVoice': () => SpeechSynthesisVoice,
+  'StashedMessagePort': () => StashedMessagePort,
+  'StashedPortCollection': () => StashedPortCollection,
   'Storage': () => Storage,
   'StorageEvent': () => StorageEvent,
   'StorageInfo': () => StorageInfo,
@@ -476,6 +519,9 @@
   'StyleSheet': () => StyleSheet,
   'StyleSheetList': () => _StyleSheetList,
   'SubtleCrypto': () => _SubtleCrypto,
+  'SyncEvent': () => SyncEvent,
+  'SyncManager': () => SyncManager,
+  'SyncRegistration': () => SyncRegistration,
   'Text': () => Text,
   'TextEvent': () => TextEvent,
   'TextMetrics': () => TextMetrics,
@@ -484,10 +530,11 @@
   'TextTrackCueList': () => TextTrackCueList,
   'TextTrackList': () => TextTrackList,
   'TimeRanges': () => TimeRanges,
-  'Timing': () => Timing,
   'Touch': () => Touch,
   'TouchEvent': () => TouchEvent,
   'TouchList': () => TouchList,
+  'TrackDefault': () => TrackDefault,
+  'TrackDefaultList': () => TrackDefaultList,
   'TrackEvent': () => TrackEvent,
   'TransitionEvent': () => TransitionEvent,
   'TreeWalker': () => TreeWalker,
@@ -495,6 +542,10 @@
   'URL': () => Url,
   'URLUtils': () => UrlUtils,
   'URLUtilsReadOnly': () => UrlUtilsReadOnly,
+  'VRDevice': () => VRDevice,
+  'VREyeParameters': () => VREyeParameters,
+  'VRFieldOfView': () => VRFieldOfView,
+  'VRPositionState': () => VRPositionState,
   'VTTCue': () => VttCue,
   'VTTRegion': () => VttRegion,
   'VTTRegionList': () => VttRegionList,
@@ -502,15 +553,12 @@
   'VideoPlaybackQuality': () => VideoPlaybackQuality,
   'VideoTrack': () => VideoTrack,
   'VideoTrackList': () => VideoTrackList,
-  'WebKitAnimationEvent': () => AnimationEvent,
-  'WebKitCSSFilterRule': () => CssFilterRule,
-  'WebKitCSSFilterValue': () => _WebKitCSSFilterValue,
   'WebKitCSSMatrix': () => _WebKitCSSMatrix,
-  'WebKitCSSTransformValue': () => _WebKitCSSTransformValue,
   'WebSocket': () => WebSocket,
   'WheelEvent': () => WheelEvent,
   'Window': () => Window,
   'WindowBase64': () => WindowBase64,
+  'WindowClient': () => WindowClient,
   'WindowEventHandlers': () => WindowEventHandlers,
   'WindowTimers': () => _WindowTimers,
   'Worker': () => Worker,
@@ -625,11 +673,12 @@
 @Deprecated("Internal Use Only")
 final htmlBlinkFunctionMap = {
   'Animation': () => Animation.internalCreateAnimation,
-  'AnimationEffect': () => AnimationEffect.internalCreateAnimationEffect,
-  'AnimationNode': () => AnimationNode.internalCreateAnimationNode,
-  'AnimationPlayer': () => AnimationPlayer.internalCreateAnimationPlayer,
+  'AnimationEffectReadOnly': () => AnimationEffectReadOnly.internalCreateAnimationEffectReadOnly,
+  'AnimationEffectTiming': () => AnimationEffectTiming.internalCreateAnimationEffectTiming,
+  'AnimationEvent': () => AnimationEvent.internalCreateAnimationEvent,
   'AnimationPlayerEvent': () => AnimationPlayerEvent.internalCreateAnimationPlayerEvent,
   'AnimationTimeline': () => AnimationTimeline.internalCreateAnimationTimeline,
+  'AppBannerPromptResult': () => AppBannerPromptResult.internalCreateAppBannerPromptResult,
   'ApplicationCache': () => ApplicationCache.internalCreateApplicationCache,
   'ApplicationCacheErrorEvent': () => ApplicationCacheErrorEvent.internalCreateApplicationCacheErrorEvent,
   'Attr': () => _Attr.internalCreate_Attr,
@@ -638,48 +687,59 @@
   'AutocompleteErrorEvent': () => AutocompleteErrorEvent.internalCreateAutocompleteErrorEvent,
   'BarProp': () => BarProp.internalCreateBarProp,
   'BatteryManager': () => BatteryManager.internalCreateBatteryManager,
+  'BeforeInstallPromptEvent': () => BeforeInstallPromptEvent.internalCreateBeforeInstallPromptEvent,
   'BeforeUnloadEvent': () => BeforeUnloadEvent.internalCreateBeforeUnloadEvent,
   'Blob': () => Blob.internalCreateBlob,
+  'Bluetooth': () => Bluetooth.internalCreateBluetooth,
+  'BluetoothDevice': () => BluetoothDevice.internalCreateBluetoothDevice,
+  'BluetoothGATTCharacteristic': () => BluetoothGattCharacteristic.internalCreateBluetoothGattCharacteristic,
+  'BluetoothGATTRemoteServer': () => BluetoothGattRemoteServer.internalCreateBluetoothGattRemoteServer,
+  'BluetoothGATTService': () => BluetoothGattService.internalCreateBluetoothGattService,
+  'BluetoothUUID': () => BluetoothUuid.internalCreateBluetoothUuid,
   'Body': () => Body.internalCreateBody,
   'CDATASection': () => CDataSection.internalCreateCDataSection,
+  'CHROMIUMValuebuffer': () => ChromiumValuebuffer.internalCreateChromiumValuebuffer,
   'CSS': () => Css.internalCreateCss,
   'CSSCharsetRule': () => CssCharsetRule.internalCreateCssCharsetRule,
   'CSSFontFaceRule': () => CssFontFaceRule.internalCreateCssFontFaceRule,
+  'CSSGroupingRule': () => CssGroupingRule.internalCreateCssGroupingRule,
   'CSSImportRule': () => CssImportRule.internalCreateCssImportRule,
   'CSSKeyframeRule': () => CssKeyframeRule.internalCreateCssKeyframeRule,
   'CSSKeyframesRule': () => CssKeyframesRule.internalCreateCssKeyframesRule,
   'CSSMediaRule': () => CssMediaRule.internalCreateCssMediaRule,
   'CSSPageRule': () => CssPageRule.internalCreateCssPageRule,
-  'CSSPrimitiveValue': () => _CSSPrimitiveValue.internalCreate_CSSPrimitiveValue,
   'CSSRule': () => CssRule.internalCreateCssRule,
   'CSSRuleList': () => _CssRuleList.internalCreate_CssRuleList,
   'CSSStyleDeclaration': () => CssStyleDeclaration.internalCreateCssStyleDeclaration,
   'CSSStyleRule': () => CssStyleRule.internalCreateCssStyleRule,
   'CSSStyleSheet': () => CssStyleSheet.internalCreateCssStyleSheet,
   'CSSSupportsRule': () => CssSupportsRule.internalCreateCssSupportsRule,
-  'CSSUnknownRule': () => _CSSUnknownRule.internalCreate_CSSUnknownRule,
-  'CSSValue': () => _CSSValue.internalCreate_CSSValue,
-  'CSSValueList': () => _CssValueList.internalCreate_CssValueList,
   'CSSViewportRule': () => CssViewportRule.internalCreateCssViewportRule,
   'Cache': () => _Cache.internalCreate_Cache,
   'CacheStorage': () => CacheStorage.internalCreateCacheStorage,
-  'Canvas2DContextAttributes': () => Canvas2DContextAttributes.internalCreateCanvas2DContextAttributes,
   'CanvasGradient': () => CanvasGradient.internalCreateCanvasGradient,
   'CanvasPattern': () => CanvasPattern.internalCreateCanvasPattern,
   'CanvasRenderingContext2D': () => CanvasRenderingContext2D.internalCreateCanvasRenderingContext2D,
   'CharacterData': () => CharacterData.internalCreateCharacterData,
   'CircularGeofencingRegion': () => CircularGeofencingRegion.internalCreateCircularGeofencingRegion,
+  'Client': () => Client.internalCreateClient,
   'ClientRect': () => _ClientRect.internalCreate_ClientRect,
   'ClientRectList': () => _ClientRectList.internalCreate_ClientRectList,
+  'Clients': () => Clients.internalCreateClients,
+  'ClipboardEvent': () => ClipboardEvent.internalCreateClipboardEvent,
   'CloseEvent': () => CloseEvent.internalCreateCloseEvent,
   'Comment': () => Comment.internalCreateComment,
   'CompositionEvent': () => CompositionEvent.internalCreateCompositionEvent,
+  'CompositorProxy': () => CompositorProxy.internalCreateCompositorProxy,
+  'CompositorWorker': () => CompositorWorker.internalCreateCompositorWorker,
+  'CompositorWorkerGlobalScope': () => CompositorWorkerGlobalScope.internalCreateCompositorWorkerGlobalScope,
   'Console': () => Console.internalCreateConsole,
   'ConsoleBase': () => ConsoleBase.internalCreateConsoleBase,
   'Coordinates': () => Coordinates.internalCreateCoordinates,
-  'Counter': () => _Counter.internalCreate_Counter,
   'Credential': () => Credential.internalCreateCredential,
   'CredentialsContainer': () => CredentialsContainer.internalCreateCredentialsContainer,
+  'CrossOriginConnectEvent': () => CrossOriginConnectEvent.internalCreateCrossOriginConnectEvent,
+  'CrossOriginServiceWorkerClient': () => CrossOriginServiceWorkerClient.internalCreateCrossOriginServiceWorkerClient,
   'Crypto': () => Crypto.internalCreateCrypto,
   'CryptoKey': () => CryptoKey.internalCreateCryptoKey,
   'CustomEvent': () => CustomEvent.internalCreateCustomEvent,
@@ -702,6 +762,7 @@
   'DataTransferItem': () => DataTransferItem.internalCreateDataTransferItem,
   'DataTransferItemList': () => DataTransferItemList.internalCreateDataTransferItemList,
   'DedicatedWorkerGlobalScope': () => DedicatedWorkerGlobalScope.internalCreateDedicatedWorkerGlobalScope,
+  'DefaultSessionStartEvent': () => DefaultSessionStartEvent.internalCreateDefaultSessionStartEvent,
   'DeprecatedStorageInfo': () => DeprecatedStorageInfo.internalCreateDeprecatedStorageInfo,
   'DeprecatedStorageQuota': () => DeprecatedStorageQuota.internalCreateDeprecatedStorageQuota,
   'DeviceAcceleration': () => DeviceAcceleration.internalCreateDeviceAcceleration,
@@ -716,6 +777,7 @@
   'Document': () => Document.internalCreateDocument,
   'DocumentFragment': () => DocumentFragment.internalCreateDocumentFragment,
   'DocumentType': () => _DocumentType.internalCreate_DocumentType,
+  'EffectModel': () => EffectModel.internalCreateEffectModel,
   'Element': () => Element.internalCreateElement,
   'Entry': () => Entry.internalCreateEntry,
   'EntrySync': () => _EntrySync.internalCreate_EntrySync,
@@ -745,9 +807,11 @@
   'GamepadEvent': () => GamepadEvent.internalCreateGamepadEvent,
   'GamepadList': () => _GamepadList.internalCreate_GamepadList,
   'Geofencing': () => Geofencing.internalCreateGeofencing,
+  'GeofencingEvent': () => GeofencingEvent.internalCreateGeofencingEvent,
   'GeofencingRegion': () => GeofencingRegion.internalCreateGeofencingRegion,
   'Geolocation': () => Geolocation.internalCreateGeolocation,
   'Geoposition': () => Geoposition.internalCreateGeoposition,
+  'HMDVRDevice': () => HmdvrDevice.internalCreateHmdvrDevice,
   'HTMLAllCollection': () => _HTMLAllCollection.internalCreate_HTMLAllCollection,
   'HTMLAnchorElement': () => AnchorElement.internalCreateAnchorElement,
   'HTMLAppletElement': () => _HTMLAppletElement.internalCreate_HTMLAppletElement,
@@ -832,11 +896,10 @@
   'ImageBitmap': () => ImageBitmap.internalCreateImageBitmap,
   'ImageData': () => ImageData.internalCreateImageData,
   'InjectedScriptHost': () => InjectedScriptHost.internalCreateInjectedScriptHost,
-  'InputMethodContext': () => InputMethodContext.internalCreateInputMethodContext,
-  'InstallEvent': () => InstallEvent.internalCreateInstallEvent,
+  'InputDevice': () => InputDevice.internalCreateInputDevice,
   'Iterator': () => DomIterator.internalCreateDomIterator,
   'KeyboardEvent': () => KeyboardEvent.internalCreateKeyboardEvent,
-  'LocalCredential': () => LocalCredential.internalCreateLocalCredential,
+  'KeyframeEffect': () => KeyframeEffect.internalCreateKeyframeEffect,
   'Location': () => Location.internalCreateLocation,
   'MIDIAccess': () => MidiAccess.internalCreateMidiAccess,
   'MIDIConnectionEvent': () => MidiConnectionEvent.internalCreateMidiConnectionEvent,
@@ -848,16 +911,20 @@
   'MIDIPort': () => MidiPort.internalCreateMidiPort,
   'MediaController': () => MediaController.internalCreateMediaController,
   'MediaDeviceInfo': () => MediaDeviceInfo.internalCreateMediaDeviceInfo,
+  'MediaDevices': () => MediaDevices.internalCreateMediaDevices,
+  'MediaEncryptedEvent': () => MediaEncryptedEvent.internalCreateMediaEncryptedEvent,
   'MediaError': () => MediaError.internalCreateMediaError,
   'MediaKeyError': () => MediaKeyError.internalCreateMediaKeyError,
   'MediaKeyEvent': () => MediaKeyEvent.internalCreateMediaKeyEvent,
   'MediaKeyMessageEvent': () => MediaKeyMessageEvent.internalCreateMediaKeyMessageEvent,
-  'MediaKeyNeededEvent': () => MediaKeyNeededEvent.internalCreateMediaKeyNeededEvent,
   'MediaKeySession': () => MediaKeySession.internalCreateMediaKeySession,
+  'MediaKeyStatusMap': () => MediaKeyStatusMap.internalCreateMediaKeyStatusMap,
+  'MediaKeySystemAccess': () => MediaKeySystemAccess.internalCreateMediaKeySystemAccess,
   'MediaKeys': () => MediaKeys.internalCreateMediaKeys,
   'MediaList': () => MediaList.internalCreateMediaList,
   'MediaQueryList': () => MediaQueryList.internalCreateMediaQueryList,
   'MediaQueryListEvent': () => MediaQueryListEvent.internalCreateMediaQueryListEvent,
+  'MediaSession': () => MediaSession.internalCreateMediaSession,
   'MediaSource': () => MediaSource.internalCreateMediaSource,
   'MediaStream': () => MediaStream.internalCreateMediaStream,
   'MediaStreamEvent': () => MediaStreamEvent.internalCreateMediaStreamEvent,
@@ -876,36 +943,52 @@
   'MutationRecord': () => MutationRecord.internalCreateMutationRecord,
   'NamedNodeMap': () => _NamedNodeMap.internalCreate_NamedNodeMap,
   'Navigator': () => Navigator.internalCreateNavigator,
+  'NavigatorStorageUtils': () => NavigatorStorageUtils.internalCreateNavigatorStorageUtils,
   'NavigatorUserMediaError': () => NavigatorUserMediaError.internalCreateNavigatorUserMediaError,
   'NetworkInformation': () => NetworkInformation.internalCreateNetworkInformation,
   'Node': () => Node.internalCreateNode,
   'NodeFilter': () => NodeFilter.internalCreateNodeFilter,
   'NodeIterator': () => NodeIterator.internalCreateNodeIterator,
   'NodeList': () => NodeList.internalCreateNodeList,
+  'NonDocumentTypeChildNode': () => NonDocumentTypeChildNode.internalCreateNonDocumentTypeChildNode,
+  'NonElementParentNode': () => NonElementParentNode.internalCreateNonElementParentNode,
   'Notification': () => Notification.internalCreateNotification,
-  'OverflowEvent': () => OverflowEvent.internalCreateOverflowEvent,
+  'NotificationEvent': () => NotificationEvent.internalCreateNotificationEvent,
   'PagePopupController': () => _PagePopupController.internalCreate_PagePopupController,
   'PageTransitionEvent': () => PageTransitionEvent.internalCreatePageTransitionEvent,
+  'PasswordCredential': () => PasswordCredential.internalCreatePasswordCredential,
   'Path2D': () => Path2D.internalCreatePath2D,
   'Performance': () => Performance.internalCreatePerformance,
+  'PerformanceCompositeTiming': () => PerformanceCompositeTiming.internalCreatePerformanceCompositeTiming,
   'PerformanceEntry': () => PerformanceEntry.internalCreatePerformanceEntry,
   'PerformanceMark': () => PerformanceMark.internalCreatePerformanceMark,
   'PerformanceMeasure': () => PerformanceMeasure.internalCreatePerformanceMeasure,
   'PerformanceNavigation': () => PerformanceNavigation.internalCreatePerformanceNavigation,
+  'PerformanceRenderTiming': () => PerformanceRenderTiming.internalCreatePerformanceRenderTiming,
   'PerformanceResourceTiming': () => PerformanceResourceTiming.internalCreatePerformanceResourceTiming,
   'PerformanceTiming': () => PerformanceTiming.internalCreatePerformanceTiming,
+  'PeriodicSyncEvent': () => PeriodicSyncEvent.internalCreatePeriodicSyncEvent,
+  'PeriodicSyncManager': () => PeriodicSyncManager.internalCreatePeriodicSyncManager,
+  'PeriodicSyncRegistration': () => PeriodicSyncRegistration.internalCreatePeriodicSyncRegistration,
+  'PermissionStatus': () => PermissionStatus.internalCreatePermissionStatus,
+  'Permissions': () => Permissions.internalCreatePermissions,
   'Plugin': () => Plugin.internalCreatePlugin,
   'PluginArray': () => PluginArray.internalCreatePluginArray,
   'PluginPlaceholderElement': () => PluginPlaceholderElement.internalCreatePluginPlaceholderElement,
+  'PointerEvent': () => PointerEvent.internalCreatePointerEvent,
   'PopStateEvent': () => PopStateEvent.internalCreatePopStateEvent,
   'PositionError': () => PositionError.internalCreatePositionError,
+  'PositionSensorVRDevice': () => PositionSensorVRDevice.internalCreatePositionSensorVRDevice,
   'Presentation': () => Presentation.internalCreatePresentation,
+  'PresentationAvailability': () => PresentationAvailability.internalCreatePresentationAvailability,
+  'PresentationSession': () => PresentationSession.internalCreatePresentationSession,
   'ProcessingInstruction': () => ProcessingInstruction.internalCreateProcessingInstruction,
   'ProgressEvent': () => ProgressEvent.internalCreateProgressEvent,
+  'PromiseRejectionEvent': () => PromiseRejectionEvent.internalCreatePromiseRejectionEvent,
   'PushEvent': () => PushEvent.internalCreatePushEvent,
   'PushManager': () => PushManager.internalCreatePushManager,
-  'PushRegistration': () => PushRegistration.internalCreatePushRegistration,
-  'RGBColor': () => _RGBColor.internalCreate_RGBColor,
+  'PushMessageData': () => PushMessageData.internalCreatePushMessageData,
+  'PushSubscription': () => PushSubscription.internalCreatePushSubscription,
   'RTCDTMFSender': () => RtcDtmfSender.internalCreateRtcDtmfSender,
   'RTCDTMFToneChangeEvent': () => RtcDtmfToneChangeEvent.internalCreateRtcDtmfToneChangeEvent,
   'RTCDataChannel': () => RtcDataChannel.internalCreateRtcDataChannel,
@@ -918,23 +1001,29 @@
   'RTCStatsResponse': () => RtcStatsResponse.internalCreateRtcStatsResponse,
   'RadioNodeList': () => _RadioNodeList.internalCreate_RadioNodeList,
   'Range': () => Range.internalCreateRange,
+  'ReadableByteStream': () => ReadableByteStream.internalCreateReadableByteStream,
+  'ReadableByteStreamReader': () => ReadableByteStreamReader.internalCreateReadableByteStreamReader,
   'ReadableStream': () => ReadableStream.internalCreateReadableStream,
-  'Rect': () => _Rect.internalCreate_Rect,
+  'ReadableStreamReader': () => ReadableStreamReader.internalCreateReadableStreamReader,
   'RelatedEvent': () => RelatedEvent.internalCreateRelatedEvent,
   'Request': () => _Request.internalCreate_Request,
   'ResourceProgressEvent': () => ResourceProgressEvent.internalCreateResourceProgressEvent,
   'Response': () => _Response.internalCreate_Response,
   'Screen': () => Screen.internalCreateScreen,
   'ScreenOrientation': () => ScreenOrientation.internalCreateScreenOrientation,
+  'ScrollState': () => ScrollState.internalCreateScrollState,
   'SecurityPolicyViolationEvent': () => SecurityPolicyViolationEvent.internalCreateSecurityPolicyViolationEvent,
   'Selection': () => Selection.internalCreateSelection,
+  'ServicePort': () => ServicePort.internalCreateServicePort,
+  'ServicePortCollection': () => ServicePortCollection.internalCreateServicePortCollection,
+  'ServicePortConnectEvent': () => ServicePortConnectEvent.internalCreateServicePortConnectEvent,
   'ServiceWorker': () => _ServiceWorker.internalCreate_ServiceWorker,
-  'ServiceWorkerClient': () => ServiceWorkerClient.internalCreateServiceWorkerClient,
-  'ServiceWorkerClients': () => ServiceWorkerClients.internalCreateServiceWorkerClients,
   'ServiceWorkerContainer': () => ServiceWorkerContainer.internalCreateServiceWorkerContainer,
   'ServiceWorkerGlobalScope': () => ServiceWorkerGlobalScope.internalCreateServiceWorkerGlobalScope,
+  'ServiceWorkerMessageEvent': () => ServiceWorkerMessageEvent.internalCreateServiceWorkerMessageEvent,
   'ServiceWorkerRegistration': () => ServiceWorkerRegistration.internalCreateServiceWorkerRegistration,
   'ShadowRoot': () => ShadowRoot.internalCreateShadowRoot,
+  'SharedArrayBuffer': () => SharedArrayBuffer.internalCreateSharedArrayBuffer,
   'SharedWorker': () => SharedWorker.internalCreateSharedWorker,
   'SharedWorkerGlobalScope': () => SharedWorkerGlobalScope.internalCreateSharedWorkerGlobalScope,
   'SourceBuffer': () => SourceBuffer.internalCreateSourceBuffer,
@@ -952,6 +1041,8 @@
   'SpeechSynthesisEvent': () => SpeechSynthesisEvent.internalCreateSpeechSynthesisEvent,
   'SpeechSynthesisUtterance': () => SpeechSynthesisUtterance.internalCreateSpeechSynthesisUtterance,
   'SpeechSynthesisVoice': () => SpeechSynthesisVoice.internalCreateSpeechSynthesisVoice,
+  'StashedMessagePort': () => StashedMessagePort.internalCreateStashedMessagePort,
+  'StashedPortCollection': () => StashedPortCollection.internalCreateStashedPortCollection,
   'Storage': () => Storage.internalCreateStorage,
   'StorageEvent': () => StorageEvent.internalCreateStorageEvent,
   'StorageInfo': () => StorageInfo.internalCreateStorageInfo,
@@ -961,6 +1052,9 @@
   'StyleSheet': () => StyleSheet.internalCreateStyleSheet,
   'StyleSheetList': () => _StyleSheetList.internalCreate_StyleSheetList,
   'SubtleCrypto': () => _SubtleCrypto.internalCreate_SubtleCrypto,
+  'SyncEvent': () => SyncEvent.internalCreateSyncEvent,
+  'SyncManager': () => SyncManager.internalCreateSyncManager,
+  'SyncRegistration': () => SyncRegistration.internalCreateSyncRegistration,
   'Text': () => Text.internalCreateText,
   'TextEvent': () => TextEvent.internalCreateTextEvent,
   'TextMetrics': () => TextMetrics.internalCreateTextMetrics,
@@ -969,15 +1063,20 @@
   'TextTrackCueList': () => TextTrackCueList.internalCreateTextTrackCueList,
   'TextTrackList': () => TextTrackList.internalCreateTextTrackList,
   'TimeRanges': () => TimeRanges.internalCreateTimeRanges,
-  'Timing': () => Timing.internalCreateTiming,
   'Touch': () => Touch.internalCreateTouch,
   'TouchEvent': () => TouchEvent.internalCreateTouchEvent,
   'TouchList': () => TouchList.internalCreateTouchList,
+  'TrackDefault': () => TrackDefault.internalCreateTrackDefault,
+  'TrackDefaultList': () => TrackDefaultList.internalCreateTrackDefaultList,
   'TrackEvent': () => TrackEvent.internalCreateTrackEvent,
   'TransitionEvent': () => TransitionEvent.internalCreateTransitionEvent,
   'TreeWalker': () => TreeWalker.internalCreateTreeWalker,
   'UIEvent': () => UIEvent.internalCreateUIEvent,
   'URL': () => Url.internalCreateUrl,
+  'VRDevice': () => VRDevice.internalCreateVRDevice,
+  'VREyeParameters': () => VREyeParameters.internalCreateVREyeParameters,
+  'VRFieldOfView': () => VRFieldOfView.internalCreateVRFieldOfView,
+  'VRPositionState': () => VRPositionState.internalCreateVRPositionState,
   'VTTCue': () => VttCue.internalCreateVttCue,
   'VTTRegion': () => VttRegion.internalCreateVttRegion,
   'VTTRegionList': () => VttRegionList.internalCreateVttRegionList,
@@ -985,14 +1084,11 @@
   'VideoPlaybackQuality': () => VideoPlaybackQuality.internalCreateVideoPlaybackQuality,
   'VideoTrack': () => VideoTrack.internalCreateVideoTrack,
   'VideoTrackList': () => VideoTrackList.internalCreateVideoTrackList,
-  'WebKitAnimationEvent': () => AnimationEvent.internalCreateAnimationEvent,
-  'WebKitCSSFilterRule': () => CssFilterRule.internalCreateCssFilterRule,
-  'WebKitCSSFilterValue': () => _WebKitCSSFilterValue.internalCreate_WebKitCSSFilterValue,
   'WebKitCSSMatrix': () => _WebKitCSSMatrix.internalCreate_WebKitCSSMatrix,
-  'WebKitCSSTransformValue': () => _WebKitCSSTransformValue.internalCreate_WebKitCSSTransformValue,
   'WebSocket': () => WebSocket.internalCreateWebSocket,
   'WheelEvent': () => WheelEvent.internalCreateWheelEvent,
   'Window': () => Window.internalCreateWindow,
+  'WindowClient': () => WindowClient.internalCreateWindowClient,
   'Worker': () => Worker.internalCreateWorker,
   'WorkerConsole': () => WorkerConsole.internalCreateWorkerConsole,
   'WorkerGlobalScope': () => WorkerGlobalScope.internalCreateWorkerGlobalScope,
@@ -1283,16 +1379,6 @@
   @DocsEditable()
   set hreflang(String value) => _blink.BlinkHTMLAnchorElement.instance.hreflang_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLAnchorElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLAnchorElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLAnchorElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLAnchorElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLAnchorElement.rel')
   @DocsEditable()
   String get rel => _blink.BlinkHTMLAnchorElement.instance.rel_Getter_(unwrap_jso(this));
@@ -1422,26 +1508,10 @@
 @DocsEditable()
 @DomName('Animation')
 @Experimental() // untriaged
-class Animation extends AnimationNode {
+class Animation extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory Animation._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('Animation.Animation')
-  @DocsEditable()
-  factory Animation(Element target, List<Map> keyframes, [timingInput]) {
-    if ((keyframes is List<Map> || keyframes == null) && (target is Element || target == null) && timingInput == null) {
-      return wrap_jso(_blink.BlinkAnimation.instance.constructorCallback_2_(target, keyframes));
-    }
-    if ((timingInput is num || timingInput == null) && (keyframes is List<Map> || keyframes == null) && (target is Element || target == null)) {
-      return wrap_jso(_blink.BlinkAnimation.instance.constructorCallback_3_(target, keyframes, timingInput));
-    }
-    if ((timingInput is Map || timingInput == null) && (keyframes is List<Map> || keyframes == null) && (target is Element || target == null)) {
-      var timingInput_1 = convertDartToNative_Dictionary(timingInput);
-      return wrap_jso(_blink.BlinkAnimation.instance.constructorCallback_3_(target, keyframes, timingInput_1));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
 
   @Deprecated("Internal Use Only")
   static Animation internalCreateAnimation() {
@@ -1454,6 +1524,109 @@
   Animation.internal_() : super.internal_();
 
 
+  /// Checks if this type is supported on the current platform.
+  static bool get supported => true;
+
+  @DomName('Animation.currentTime')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get currentTime => _blink.BlinkAnimation.instance.currentTime_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.currentTime')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set currentTime(num value) => _blink.BlinkAnimation.instance.currentTime_Setter_(unwrap_jso(this), value);
+  
+  @DomName('Animation.effect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AnimationEffectReadOnly get effect => wrap_jso(_blink.BlinkAnimation.instance.effect_Getter_(unwrap_jso(this)));
+  
+  @DomName('Animation.effect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set effect(AnimationEffectReadOnly value) => _blink.BlinkAnimation.instance.effect_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
+  @DomName('Animation.endClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get endClip => _blink.BlinkAnimation.instance.endClip_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.endClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set endClip(num value) => _blink.BlinkAnimation.instance.endClip_Setter_(unwrap_jso(this), value);
+  
+  @DomName('Animation.finished')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future get finished => wrap_jso(_blink.BlinkAnimation.instance.finished_Getter_(unwrap_jso(this)));
+  
+  @DomName('Animation.playState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get playState => _blink.BlinkAnimation.instance.playState_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get playbackRate => _blink.BlinkAnimation.instance.playbackRate_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set playbackRate(num value) => _blink.BlinkAnimation.instance.playbackRate_Setter_(unwrap_jso(this), value);
+  
+  @DomName('Animation.ready')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future get ready => wrap_jso(_blink.BlinkAnimation.instance.ready_Getter_(unwrap_jso(this)));
+  
+  @DomName('Animation.startClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get startClip => _blink.BlinkAnimation.instance.startClip_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.startClip')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set startClip(num value) => _blink.BlinkAnimation.instance.startClip_Setter_(unwrap_jso(this), value);
+  
+  @DomName('Animation.startTime')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get startTime => _blink.BlinkAnimation.instance.startTime_Getter_(unwrap_jso(this));
+  
+  @DomName('Animation.startTime')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set startTime(num value) => _blink.BlinkAnimation.instance.startTime_Setter_(unwrap_jso(this), value);
+  
+  @DomName('Animation.cancel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void cancel() => _blink.BlinkAnimation.instance.cancel_Callback_0_(unwrap_jso(this));
+  
+  @DomName('Animation.finish')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void finish() => _blink.BlinkAnimation.instance.finish_Callback_0_(unwrap_jso(this));
+  
+  @DomName('Animation.pause')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void pause() => _blink.BlinkAnimation.instance.pause_Callback_0_(unwrap_jso(this));
+  
+  @DomName('Animation.play')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void play() => _blink.BlinkAnimation.instance.play_Callback_0_(unwrap_jso(this));
+  
+  @DomName('Animation.reverse')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void reverse() => _blink.BlinkAnimation.instance.reverse_Callback_0_(unwrap_jso(this));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -1463,27 +1636,37 @@
 
 
 @DocsEditable()
-@DomName('AnimationEffect')
+@DomName('AnimationEffectReadOnly')
 @Experimental() // untriaged
-class AnimationEffect extends DartHtmlDomObject {
+class AnimationEffectReadOnly extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
-  factory AnimationEffect._() { throw new UnsupportedError("Not supported"); }
+  factory AnimationEffectReadOnly._() { throw new UnsupportedError("Not supported"); }
 
   @Deprecated("Internal Use Only")
-  static AnimationEffect internalCreateAnimationEffect() {
-    return new AnimationEffect._internalWrap();
+  static AnimationEffectReadOnly internalCreateAnimationEffectReadOnly() {
+    return new AnimationEffectReadOnly._internalWrap();
   }
 
-  factory AnimationEffect._internalWrap() {
-    return new AnimationEffect.internal_();
+  factory AnimationEffectReadOnly._internalWrap() {
+    return new AnimationEffectReadOnly.internal_();
   }
 
   @Deprecated("Internal Use Only")
-  AnimationEffect.internal_() { }
+  AnimationEffectReadOnly.internal_() { }
 
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
+  @DomName('AnimationEffectReadOnly.computedTiming')
+  @DocsEditable()
+  @Experimental() // untriaged
+   get computedTiming => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkAnimationEffectReadOnly.instance.computedTiming_Getter_(unwrap_jso(this))));
+  
+  @DomName('AnimationEffectReadOnly.timing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AnimationEffectTiming get timing => wrap_jso(_blink.BlinkAnimationEffectReadOnly.instance.timing_Getter_(unwrap_jso(this)));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -1493,14 +1676,142 @@
 
 
 @DocsEditable()
-@DomName('WebKitAnimationEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
+@DomName('AnimationEffectTiming')
+@Experimental() // untriaged
+class AnimationEffectTiming extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory AnimationEffectTiming._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static AnimationEffectTiming internalCreateAnimationEffectTiming() {
+    return new AnimationEffectTiming._internalWrap();
+  }
+
+  factory AnimationEffectTiming._internalWrap() {
+    return new AnimationEffectTiming.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  AnimationEffectTiming.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('AnimationEffectTiming.delay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get delay => _blink.BlinkAnimationEffectTiming.instance.delay_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.delay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set delay(num value) => _blink.BlinkAnimationEffectTiming.instance.delay_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.direction')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get direction => _blink.BlinkAnimationEffectTiming.instance.direction_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.direction')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set direction(String value) => _blink.BlinkAnimationEffectTiming.instance.direction_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.duration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get duration => wrap_jso(_blink.BlinkAnimationEffectTiming.instance.duration_Getter_(unwrap_jso(this)));
+  
+  @DomName('AnimationEffectTiming.duration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set duration(Object value) => _blink.BlinkAnimationEffectTiming.instance.duration_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
+  @DomName('AnimationEffectTiming.easing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get easing => _blink.BlinkAnimationEffectTiming.instance.easing_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.easing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set easing(String value) => _blink.BlinkAnimationEffectTiming.instance.easing_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.endDelay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get endDelay => _blink.BlinkAnimationEffectTiming.instance.endDelay_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.endDelay')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set endDelay(num value) => _blink.BlinkAnimationEffectTiming.instance.endDelay_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.fill')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get fill => _blink.BlinkAnimationEffectTiming.instance.fill_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.fill')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set fill(String value) => _blink.BlinkAnimationEffectTiming.instance.fill_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.iterationStart')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get iterationStart => _blink.BlinkAnimationEffectTiming.instance.iterationStart_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.iterationStart')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set iterationStart(num value) => _blink.BlinkAnimationEffectTiming.instance.iterationStart_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.iterations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get iterations => _blink.BlinkAnimationEffectTiming.instance.iterations_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.iterations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set iterations(num value) => _blink.BlinkAnimationEffectTiming.instance.iterations_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationEffectTiming.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get playbackRate => _blink.BlinkAnimationEffectTiming.instance.playbackRate_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationEffectTiming.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set playbackRate(num value) => _blink.BlinkAnimationEffectTiming.instance.playbackRate_Setter_(unwrap_jso(this), value);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('AnimationEvent')
+@Experimental() // untriaged
 class AnimationEvent extends Event {
   // To suppress missing implicit constructor warnings.
   factory AnimationEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('AnimationEvent.AnimationEvent')
+  @DocsEditable()
+  factory AnimationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkAnimationEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkAnimationEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static AnimationEvent internalCreateAnimationEvent() {
@@ -1513,183 +1824,15 @@
   AnimationEvent.internal_() : super.internal_();
 
 
-  @DomName('WebKitAnimationEvent.animationName')
-  @DocsEditable()
-  String get animationName => _blink.BlinkWebKitAnimationEvent.instance.animationName_Getter_(unwrap_jso(this));
-  
-  @DomName('WebKitAnimationEvent.elapsedTime')
-  @DocsEditable()
-  num get elapsedTime => _blink.BlinkWebKitAnimationEvent.instance.elapsedTime_Getter_(unwrap_jso(this));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('AnimationNode')
-@Experimental() // untriaged
-class AnimationNode extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationNode._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static AnimationNode internalCreateAnimationNode() {
-    return new AnimationNode._internalWrap();
-  }
-
-  factory AnimationNode._internalWrap() {
-    return new AnimationNode.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  AnimationNode.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-  @DomName('AnimationNode.activeDuration')
+  @DomName('AnimationEvent.animationName')
   @DocsEditable()
   @Experimental() // untriaged
-  num get activeDuration => _blink.BlinkAnimationNode.instance.activeDuration_Getter_(unwrap_jso(this));
+  String get animationName => _blink.BlinkAnimationEvent.instance.animationName_Getter_(unwrap_jso(this));
   
-  @DomName('AnimationNode.currentIteration')
+  @DomName('AnimationEvent.elapsedTime')
   @DocsEditable()
   @Experimental() // untriaged
-  int get currentIteration => _blink.BlinkAnimationNode.instance.currentIteration_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationNode.duration')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get duration => _blink.BlinkAnimationNode.instance.duration_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationNode.endTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get endTime => _blink.BlinkAnimationNode.instance.endTime_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationNode.localTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get localTime => _blink.BlinkAnimationNode.instance.localTime_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationNode.player')
-  @DocsEditable()
-  @Experimental() // untriaged
-  AnimationPlayer get player => wrap_jso(_blink.BlinkAnimationNode.instance.player_Getter_(unwrap_jso(this)));
-  
-  @DomName('AnimationNode.startTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get startTime => _blink.BlinkAnimationNode.instance.startTime_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationNode.timing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Timing get timing => wrap_jso(_blink.BlinkAnimationNode.instance.timing_Getter_(unwrap_jso(this)));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('AnimationPlayer')
-@Experimental() // untriaged
-class AnimationPlayer extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory AnimationPlayer._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static AnimationPlayer internalCreateAnimationPlayer() {
-    return new AnimationPlayer._internalWrap();
-  }
-
-  external factory AnimationPlayer._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  AnimationPlayer.internal_() : super.internal_();
-
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => true;
-
-  @DomName('AnimationPlayer.currentTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get currentTime => _blink.BlinkAnimationPlayer.instance.currentTime_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.currentTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set currentTime(num value) => _blink.BlinkAnimationPlayer.instance.currentTime_Setter_(unwrap_jso(this), value);
-  
-  @DomName('AnimationPlayer.playState')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get playState => _blink.BlinkAnimationPlayer.instance.playState_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get playbackRate => _blink.BlinkAnimationPlayer.instance.playbackRate_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set playbackRate(num value) => _blink.BlinkAnimationPlayer.instance.playbackRate_Setter_(unwrap_jso(this), value);
-  
-  @DomName('AnimationPlayer.source')
-  @DocsEditable()
-  @Experimental() // untriaged
-  AnimationNode get source => wrap_jso(_blink.BlinkAnimationPlayer.instance.source_Getter_(unwrap_jso(this)));
-  
-  @DomName('AnimationPlayer.source')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set source(AnimationNode value) => _blink.BlinkAnimationPlayer.instance.source_Setter_(unwrap_jso(this), unwrap_jso(value));
-  
-  @DomName('AnimationPlayer.startTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get startTime => _blink.BlinkAnimationPlayer.instance.startTime_Getter_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.startTime')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set startTime(num value) => _blink.BlinkAnimationPlayer.instance.startTime_Setter_(unwrap_jso(this), value);
-  
-  @DomName('AnimationPlayer.cancel')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void cancel() => _blink.BlinkAnimationPlayer.instance.cancel_Callback_0_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.finish')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void finish() => _blink.BlinkAnimationPlayer.instance.finish_Callback_0_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.pause')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void pause() => _blink.BlinkAnimationPlayer.instance.pause_Callback_0_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.play')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void play() => _blink.BlinkAnimationPlayer.instance.play_Callback_0_(unwrap_jso(this));
-  
-  @DomName('AnimationPlayer.reverse')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void reverse() => _blink.BlinkAnimationPlayer.instance.reverse_Callback_0_(unwrap_jso(this));
+  num get elapsedTime => _blink.BlinkAnimationEvent.instance.elapsedTime_Getter_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -1706,6 +1849,16 @@
   // To suppress missing implicit constructor warnings.
   factory AnimationPlayerEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('AnimationPlayerEvent.AnimationPlayerEvent')
+  @DocsEditable()
+  factory AnimationPlayerEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkAnimationPlayerEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkAnimationPlayerEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static AnimationPlayerEvent internalCreateAnimationPlayerEvent() {
@@ -1763,15 +1916,70 @@
   @Experimental() // untriaged
   num get currentTime => _blink.BlinkAnimationTimeline.instance.currentTime_Getter_(unwrap_jso(this));
   
-  @DomName('AnimationTimeline.getAnimationPlayers')
+  @DomName('AnimationTimeline.currentTime')
   @DocsEditable()
   @Experimental() // untriaged
-  List<AnimationPlayer> getAnimationPlayers() => wrap_jso(_blink.BlinkAnimationTimeline.instance.getAnimationPlayers_Callback_0_(unwrap_jso(this)));
+  set currentTime(num value) => _blink.BlinkAnimationTimeline.instance.currentTime_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationTimeline.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get playbackRate => _blink.BlinkAnimationTimeline.instance.playbackRate_Getter_(unwrap_jso(this));
+  
+  @DomName('AnimationTimeline.playbackRate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set playbackRate(num value) => _blink.BlinkAnimationTimeline.instance.playbackRate_Setter_(unwrap_jso(this), value);
+  
+  @DomName('AnimationTimeline.getAnimations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Animation> getAnimations() => wrap_jso(_blink.BlinkAnimationTimeline.instance.getAnimations_Callback_0_(unwrap_jso(this)));
   
   @DomName('AnimationTimeline.play')
   @DocsEditable()
   @Experimental() // untriaged
-  AnimationPlayer play(AnimationNode source) => wrap_jso(_blink.BlinkAnimationTimeline.instance.play_Callback_1_(unwrap_jso(this), unwrap_jso(source)));
+  Animation play(AnimationEffectReadOnly source) => wrap_jso(_blink.BlinkAnimationTimeline.instance.play_Callback_1_(unwrap_jso(this), unwrap_jso(source)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('AppBannerPromptResult')
+@Experimental() // untriaged
+class AppBannerPromptResult extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory AppBannerPromptResult._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static AppBannerPromptResult internalCreateAppBannerPromptResult() {
+    return new AppBannerPromptResult._internalWrap();
+  }
+
+  factory AppBannerPromptResult._internalWrap() {
+    return new AppBannerPromptResult.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  AppBannerPromptResult.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('AppBannerPromptResult.outcome')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get outcome => _blink.BlinkAppBannerPromptResult.instance.outcome_Getter_(unwrap_jso(this));
+  
+  @DomName('AppBannerPromptResult.platform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get platform => _blink.BlinkAppBannerPromptResult.instance.platform_Getter_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -1986,6 +2194,16 @@
   // To suppress missing implicit constructor warnings.
   factory ApplicationCacheErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ApplicationCacheErrorEvent.ApplicationCacheErrorEvent')
+  @DocsEditable()
+  factory ApplicationCacheErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkApplicationCacheErrorEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkApplicationCacheErrorEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static ApplicationCacheErrorEvent internalCreateApplicationCacheErrorEvent() {
@@ -2358,6 +2576,16 @@
   // To suppress missing implicit constructor warnings.
   factory AutocompleteErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('AutocompleteErrorEvent.AutocompleteErrorEvent')
+  @DocsEditable()
+  factory AutocompleteErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkAutocompleteErrorEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkAutocompleteErrorEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static AutocompleteErrorEvent internalCreateAutocompleteErrorEvent() {
@@ -2550,6 +2778,58 @@
 
 
 @DocsEditable()
+@DomName('BeforeInstallPromptEvent')
+@Experimental() // untriaged
+class BeforeInstallPromptEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory BeforeInstallPromptEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('BeforeInstallPromptEvent.BeforeInstallPromptEvent')
+  @DocsEditable()
+  factory BeforeInstallPromptEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkBeforeInstallPromptEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkBeforeInstallPromptEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static BeforeInstallPromptEvent internalCreateBeforeInstallPromptEvent() {
+    return new BeforeInstallPromptEvent._internalWrap();
+  }
+
+  external factory BeforeInstallPromptEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  BeforeInstallPromptEvent.internal_() : super.internal_();
+
+
+  @DomName('BeforeInstallPromptEvent.platforms')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<String> get platforms => _blink.BlinkBeforeInstallPromptEvent.instance.platforms_Getter_(unwrap_jso(this));
+  
+  @DomName('BeforeInstallPromptEvent.userChoice')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future get userChoice => wrap_jso(_blink.BlinkBeforeInstallPromptEvent.instance.userChoice_Getter_(unwrap_jso(this)));
+  
+  @DomName('BeforeInstallPromptEvent.prompt')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future prompt() => wrap_jso(_blink.BlinkBeforeInstallPromptEvent.instance.prompt_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('BeforeUnloadEvent')
 class BeforeUnloadEvent extends Event {
   // To suppress missing implicit constructor warnings.
@@ -2650,6 +2930,296 @@
 
 
 @DocsEditable()
+@DomName('Bluetooth')
+@Experimental() // untriaged
+class Bluetooth extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Bluetooth._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Bluetooth internalCreateBluetooth() {
+    return new Bluetooth._internalWrap();
+  }
+
+  factory Bluetooth._internalWrap() {
+    return new Bluetooth.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Bluetooth.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('Bluetooth.requestDevice')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requestDevice(Map options) => wrap_jso(_blink.BlinkBluetooth.instance.requestDevice_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('BluetoothDevice')
+@Experimental() // untriaged
+class BluetoothDevice extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static BluetoothDevice internalCreateBluetoothDevice() {
+    return new BluetoothDevice._internalWrap();
+  }
+
+  factory BluetoothDevice._internalWrap() {
+    return new BluetoothDevice.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  BluetoothDevice.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('BluetoothDevice.deviceClass')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get deviceClass => _blink.BlinkBluetoothDevice.instance.deviceClass_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.instanceID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get instanceID => _blink.BlinkBluetoothDevice.instance.instanceID_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.name')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get name => _blink.BlinkBluetoothDevice.instance.name_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.paired')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get paired => _blink.BlinkBluetoothDevice.instance.paired_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.productID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get productID => _blink.BlinkBluetoothDevice.instance.productID_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.productVersion')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get productVersion => _blink.BlinkBluetoothDevice.instance.productVersion_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.vendorID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get vendorID => _blink.BlinkBluetoothDevice.instance.vendorID_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.vendorIDSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get vendorIDSource => _blink.BlinkBluetoothDevice.instance.vendorIDSource_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothDevice.connectGATT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future connectGatt() => wrap_jso(_blink.BlinkBluetoothDevice.instance.connectGATT_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTCharacteristic')
+@Experimental() // untriaged
+class BluetoothGattCharacteristic extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattCharacteristic._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static BluetoothGattCharacteristic internalCreateBluetoothGattCharacteristic() {
+    return new BluetoothGattCharacteristic._internalWrap();
+  }
+
+  factory BluetoothGattCharacteristic._internalWrap() {
+    return new BluetoothGattCharacteristic.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  BluetoothGattCharacteristic.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('BluetoothGATTCharacteristic.uuid')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get uuid => _blink.BlinkBluetoothGATTCharacteristic.instance.uuid_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothGATTCharacteristic.readValue')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future readValue() => wrap_jso(_blink.BlinkBluetoothGATTCharacteristic.instance.readValue_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('BluetoothGATTCharacteristic.writeValue')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future writeValue(/*BufferSource*/ value) => wrap_jso(_blink.BlinkBluetoothGATTCharacteristic.instance.writeValue_Callback_1_(unwrap_jso(this), value));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTRemoteServer')
+@Experimental() // untriaged
+class BluetoothGattRemoteServer extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattRemoteServer._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static BluetoothGattRemoteServer internalCreateBluetoothGattRemoteServer() {
+    return new BluetoothGattRemoteServer._internalWrap();
+  }
+
+  factory BluetoothGattRemoteServer._internalWrap() {
+    return new BluetoothGattRemoteServer.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  BluetoothGattRemoteServer.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('BluetoothGATTRemoteServer.connected')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get connected => _blink.BlinkBluetoothGATTRemoteServer.instance.connected_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothGATTRemoteServer.getPrimaryService')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getPrimaryService(/*BluetoothServiceUUID*/ service) => wrap_jso(_blink.BlinkBluetoothGATTRemoteServer.instance.getPrimaryService_Callback_1_(unwrap_jso(this), service));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('BluetoothGATTService')
+@Experimental() // untriaged
+class BluetoothGattService extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothGattService._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static BluetoothGattService internalCreateBluetoothGattService() {
+    return new BluetoothGattService._internalWrap();
+  }
+
+  factory BluetoothGattService._internalWrap() {
+    return new BluetoothGattService.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  BluetoothGattService.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('BluetoothGATTService.isPrimary')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get isPrimary => _blink.BlinkBluetoothGATTService.instance.isPrimary_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothGATTService.uuid')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get uuid => _blink.BlinkBluetoothGATTService.instance.uuid_Getter_(unwrap_jso(this));
+  
+  @DomName('BluetoothGATTService.getCharacteristic')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getCharacteristic(/*BluetoothCharacteristicUUID*/ characteristic) => wrap_jso(_blink.BlinkBluetoothGATTService.instance.getCharacteristic_Callback_1_(unwrap_jso(this), characteristic));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('BluetoothUUID')
+@Experimental() // untriaged
+class BluetoothUuid extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory BluetoothUuid._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static BluetoothUuid internalCreateBluetoothUuid() {
+    return new BluetoothUuid._internalWrap();
+  }
+
+  factory BluetoothUuid._internalWrap() {
+    return new BluetoothUuid.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  BluetoothUuid.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('BluetoothUUID.canonicalUUID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String canonicalUuid(int alias) => _blink.BlinkBluetoothUUID.instance.canonicalUUID_Callback_1_(alias);
+  
+  @DomName('BluetoothUUID.getCharacteristic')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getCharacteristic(Object name) => _blink.BlinkBluetoothUUID.instance.getCharacteristic_Callback_1_(name);
+  
+  @DomName('BluetoothUUID.getDescriptor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getDescriptor(Object name) => _blink.BlinkBluetoothUUID.instance.getDescriptor_Callback_1_(name);
+  
+  @DomName('BluetoothUUID.getService')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static String getService(Object name) => _blink.BlinkBluetoothUUID.instance.getService_Callback_1_(name);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('Body')
 @Experimental() // untriaged
 class Body extends DartHtmlDomObject {
@@ -3063,6 +3633,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLButtonElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLButtonElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLButtonElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLButtonElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) => _blink.BlinkHTMLButtonElement.instance.setCustomValidity_Callback_1_(unwrap_jso(this), error);
@@ -3125,21 +3700,11 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('CacheStorage.create')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future create(String cacheName) => wrap_jso(_blink.BlinkCacheStorage.instance.create_Callback_1_(unwrap_jso(this), cacheName));
-  
   @DomName('CacheStorage.delete')
   @DocsEditable()
   @Experimental() // untriaged
   Future delete(String cacheName) => wrap_jso(_blink.BlinkCacheStorage.instance.delete_Callback_1_(unwrap_jso(this), cacheName));
   
-  @DomName('CacheStorage.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future get(String cacheName) => wrap_jso(_blink.BlinkCacheStorage.instance.get_Callback_1_(unwrap_jso(this), cacheName));
-  
   @DomName('CacheStorage.has')
   @DocsEditable()
   @Experimental() // untriaged
@@ -3150,54 +3715,17 @@
   @Experimental() // untriaged
   Future keys() => wrap_jso(_blink.BlinkCacheStorage.instance.keys_Callback_0_(unwrap_jso(this)));
   
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('Canvas2DContextAttributes')
-// http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
-@Experimental()
-class Canvas2DContextAttributes extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory Canvas2DContextAttributes._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static Canvas2DContextAttributes internalCreateCanvas2DContextAttributes() {
-    return new Canvas2DContextAttributes._internalWrap();
+  Future match(/*RequestInfo*/ request, [Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkCacheStorage.instance.match_Callback_2_(unwrap_jso(this), request, convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkCacheStorage.instance.match_Callback_1_(unwrap_jso(this), request));
   }
 
-  factory Canvas2DContextAttributes._internalWrap() {
-    return new Canvas2DContextAttributes.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  Canvas2DContextAttributes.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-  @DomName('Canvas2DContextAttributes.alpha')
-  @DocsEditable()
-  bool get alpha => _blink.BlinkCanvas2DContextAttributes.instance.alpha_Getter_(unwrap_jso(this));
-  
-  @DomName('Canvas2DContextAttributes.alpha')
-  @DocsEditable()
-  set alpha(bool value) => _blink.BlinkCanvas2DContextAttributes.instance.alpha_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Canvas2DContextAttributes.storage')
+  @DomName('CacheStorage.open')
   @DocsEditable()
   @Experimental() // untriaged
-  String get storage => _blink.BlinkCanvas2DContextAttributes.instance.storage_Getter_(unwrap_jso(this));
-  
-  @DomName('Canvas2DContextAttributes.storage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set storage(String value) => _blink.BlinkCanvas2DContextAttributes.instance.storage_Setter_(unwrap_jso(this), value);
+  Future open(String cacheName) => wrap_jso(_blink.BlinkCacheStorage.instance.open_Callback_1_(unwrap_jso(this), cacheName));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -3277,14 +3805,29 @@
   @DocsEditable()
   set width(int value) => _blink.BlinkHTMLCanvasElement.instance.width_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLCanvasElement.getContext')
-  @DocsEditable()
-  Object getContext(String contextId, [Map attrs]) => wrap_jso(_blink.BlinkHTMLCanvasElement.instance.getContext_Callback_2_(unwrap_jso(this), contextId, convertDartToNative_Dictionary(attrs)));
-  
-  @DomName('HTMLCanvasElement.toDataURL')
-  @DocsEditable()
-  String _toDataUrl(String type, [num quality]) => _blink.BlinkHTMLCanvasElement.instance.toDataURL_Callback_2_(unwrap_jso(this), type, quality);
-  
+  Object getContext(String contextId, [Map attributes]) {
+    if (attributes != null) {
+      return wrap_jso(_blink.BlinkHTMLCanvasElement.instance.getContext_Callback_2_(unwrap_jso(this), contextId, convertDartToNative_Dictionary(attributes)));
+    }
+    return wrap_jso(_blink.BlinkHTMLCanvasElement.instance.getContext_Callback_1_(unwrap_jso(this), contextId));
+  }
+
+  String _toDataUrl(String type, [arguments_OR_quality]) {
+    if ((type is String || type == null) && arguments_OR_quality == null) {
+      return _blink.BlinkHTMLCanvasElement.instance.toDataURL_Callback_1_(unwrap_jso(this), type);
+    }
+    if (arguments_OR_quality != null && (type is String || type == null)) {
+      return _blink.BlinkHTMLCanvasElement.instance.toDataURL_Callback_2_(unwrap_jso(this), type, unwrap_jso(arguments_OR_quality));
+    }
+    if ((type is String || type == null) && arguments_OR_quality == null) {
+      return _blink.BlinkHTMLCanvasElement.instance.toDataURL_Callback_1_(unwrap_jso(this), type);
+    }
+    if ((arguments_OR_quality is num || arguments_OR_quality == null) && (type is String || type == null)) {
+      return _blink.BlinkHTMLCanvasElement.instance.toDataURL_Callback_2_(unwrap_jso(this), type, unwrap_jso(arguments_OR_quality));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   /// Stream of `webglcontextlost` events handled by this [CanvasElement].
   @DomName('HTMLCanvasElement.onwebglcontextlost')
   @DocsEditable()
@@ -3568,6 +4111,16 @@
   @DocsEditable()
   set fillStyle(Object value) => _blink.BlinkCanvasRenderingContext2D.instance.fillStyle_Setter_(unwrap_jso(this), unwrap_jso(value));
   
+  @DomName('CanvasRenderingContext2D.filter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get filter => _blink.BlinkCanvasRenderingContext2D.instance.filter_Getter_(unwrap_jso(this));
+  
+  @DomName('CanvasRenderingContext2D.filter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set filter(String value) => _blink.BlinkCanvasRenderingContext2D.instance.filter_Setter_(unwrap_jso(this), value);
+  
   @DomName('CanvasRenderingContext2D.font')
   @DocsEditable()
   String get font => _blink.BlinkCanvasRenderingContext2D.instance.font_Getter_(unwrap_jso(this));
@@ -3760,31 +4313,23 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('CanvasRenderingContext2D.createImageData')
-  @DocsEditable()
-  ImageData createImageData(num sw, num sh) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createImageData_Callback_2_(unwrap_jso(this), sw, sh));
-  
-  @DomName('CanvasRenderingContext2D.createImageDataFromImageData')
-  @DocsEditable()
-  ImageData createImageDataFromImageData(ImageData imagedata) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createImageData_Callback_1_(unwrap_jso(this), unwrap_jso(imagedata)));
-  
-  @DomName('CanvasRenderingContext2D.createLinearGradient')
-  @DocsEditable()
-  CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createLinearGradient_Callback_4_(unwrap_jso(this), x0, y0, x1, y1));
-  
-  CanvasPattern createPattern(canvas_OR_image, String repetitionType) {
-    if ((repetitionType is String || repetitionType == null) && (canvas_OR_image is CanvasElement)) {
-      return wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createPattern_Callback_2_(unwrap_jso(this), unwrap_jso(canvas_OR_image), repetitionType));
+  ImageData createImageData(imagedata_OR_sw, [num sh]) {
+    if ((imagedata_OR_sw is ImageData) && sh == null) {
+      return wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createImageData_Callback_1_(unwrap_jso(this), unwrap_jso(imagedata_OR_sw)));
     }
-    if ((repetitionType is String || repetitionType == null) && (canvas_OR_image is VideoElement)) {
-      return wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createPattern_Callback_2_(unwrap_jso(this), unwrap_jso(canvas_OR_image), repetitionType));
+    if ((sh is num) && (imagedata_OR_sw is num)) {
+      return wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createImageData_Callback_2_(unwrap_jso(this), unwrap_jso(imagedata_OR_sw), sh));
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('CanvasRenderingContext2D.createPatternFromImage')
+  @DomName('CanvasRenderingContext2D.createLinearGradient')
   @DocsEditable()
-  CanvasPattern createPatternFromImage(ImageElement image, String repetitionType) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createPattern_Callback_2_(unwrap_jso(this), unwrap_jso(image), repetitionType));
+  CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createLinearGradient_Callback_4_(unwrap_jso(this), x0, y0, x1, y1));
+  
+  @DomName('CanvasRenderingContext2D.createPattern')
+  @DocsEditable()
+  CanvasPattern createPattern(Object image, String repetitionType) => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.createPattern_Callback_2_(unwrap_jso(this), image, repetitionType));
   
   @DomName('CanvasRenderingContext2D.createRadialGradient')
   @DocsEditable()
@@ -3802,53 +4347,17 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  void _drawImage(canvas_OR_image_OR_imageBitmap_OR_video, num sx_OR_x, num sy_OR_y, [num sw_OR_width, num height_OR_sh, num dx, num dy, num dw, num dh]) {
-    if ((sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageElement) && sw_OR_width == null && height_OR_sh == null && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_3_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y);
+  void _drawImage(Object image, num sx_OR_x, num sy_OR_y, [num sw_OR_width, num height_OR_sh, num dx, num dy, num dw, num dh]) {
+    if ((sy_OR_y is num) && (sx_OR_x is num) && image != null && sw_OR_width == null && height_OR_sh == null && dx == null && dy == null && dw == null && dh == null) {
+      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_3_(unwrap_jso(this), image, sx_OR_x, sy_OR_y);
       return;
     }
-    if ((height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageElement) && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_5_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh);
+    if ((height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && image != null && dx == null && dy == null && dw == null && dh == null) {
+      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_5_(unwrap_jso(this), image, sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh);
       return;
     }
-    if ((dh is num) && (dw is num) && (dy is num) && (dx is num) && (height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageElement)) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_9_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh, dx, dy, dw, dh);
-      return;
-    }
-    if ((sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is CanvasElement) && sw_OR_width == null && height_OR_sh == null && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_3_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y);
-      return;
-    }
-    if ((height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is CanvasElement) && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_5_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh);
-      return;
-    }
-    if ((dh is num) && (dw is num) && (dy is num) && (dx is num) && (height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is CanvasElement)) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_9_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh, dx, dy, dw, dh);
-      return;
-    }
-    if ((sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is VideoElement) && sw_OR_width == null && height_OR_sh == null && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_3_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y);
-      return;
-    }
-    if ((height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is VideoElement) && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_5_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh);
-      return;
-    }
-    if ((dh is num) && (dw is num) && (dy is num) && (dx is num) && (height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is VideoElement)) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_9_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh, dx, dy, dw, dh);
-      return;
-    }
-    if ((sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageBitmap) && sw_OR_width == null && height_OR_sh == null && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_3_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y);
-      return;
-    }
-    if ((height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageBitmap) && dx == null && dy == null && dw == null && dh == null) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_5_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh);
-      return;
-    }
-    if ((dh is num) && (dw is num) && (dy is num) && (dx is num) && (height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && (canvas_OR_image_OR_imageBitmap_OR_video is ImageBitmap)) {
-      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_9_(unwrap_jso(this), unwrap_jso(canvas_OR_image_OR_imageBitmap_OR_video), sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh, dx, dy, dw, dh);
+    if ((dh is num) && (dw is num) && (dy is num) && (dx is num) && (height_OR_sh is num) && (sw_OR_width is num) && (sy_OR_y is num) && (sx_OR_x is num) && image != null) {
+      _blink.BlinkCanvasRenderingContext2D.instance.drawImage_Callback_9_(unwrap_jso(this), image, sx_OR_x, sy_OR_y, sw_OR_width, height_OR_sh, dx, dy, dw, dh);
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
@@ -3891,7 +4400,7 @@
   @DocsEditable()
   // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
   @Experimental()
-  Canvas2DContextAttributes getContextAttributes() => wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.getContextAttributes_Callback_0_(unwrap_jso(this)));
+   getContextAttributes() => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkCanvasRenderingContext2D.instance.getContextAttributes_Callback_0_(unwrap_jso(this))));
   
   @DomName('CanvasRenderingContext2D.getImageData')
   @DocsEditable()
@@ -4062,6 +4571,11 @@
   void rect(num x, num y, num width, num height) => _blink.BlinkCanvasRenderingContext2D.instance.rect_Callback_4_(unwrap_jso(this), x, y, width, height);
   
 
+  @DomName('CanvasRenderingContext2D.createImageDataFromImageData')
+  @DocsEditable()
+  ImageData createImageDataFromImageData(ImageData imagedata) =>
+    this.createImageData(imagedata);
+
   /**
    * Sets the color used inside shapes.
    * [r], [g], [b] are 0-255, [a] is 0-1.
@@ -4105,6 +4619,10 @@
     _arc(x, y, radius, startAngle, endAngle, anticlockwise);
   }
 
+  @DomName('CanvasRenderingContext2D.createPatternFromImage')
+  CanvasPattern createPatternFromImage(ImageElement image, String repetitionType) =>
+    createPattern(image, repetitionType);
+
   /**
    * Draws an image from a CanvasImageSource to an area of this canvas.
    *
@@ -4305,7 +4823,7 @@
 
 @DocsEditable()
 @DomName('CharacterData')
-class CharacterData extends Node implements ChildNode {
+class CharacterData extends Node implements NonDocumentTypeChildNode, ChildNode {
   // To suppress missing implicit constructor warnings.
   factory CharacterData._() { throw new UnsupportedError("Not supported"); }
 
@@ -4339,7 +4857,7 @@
   
   @DomName('CharacterData.deleteData')
   @DocsEditable()
-  void deleteData(int offset, int length) => _blink.BlinkCharacterData.instance.deleteData_Callback_2_(unwrap_jso(this), offset, length);
+  void deleteData(int offset, int count) => _blink.BlinkCharacterData.instance.deleteData_Callback_2_(unwrap_jso(this), offset, count);
   
   @DomName('CharacterData.insertData')
   @DocsEditable()
@@ -4347,11 +4865,21 @@
   
   @DomName('CharacterData.replaceData')
   @DocsEditable()
-  void replaceData(int offset, int length, String data) => _blink.BlinkCharacterData.instance.replaceData_Callback_3_(unwrap_jso(this), offset, length, data);
+  void replaceData(int offset, int count, String data) => _blink.BlinkCharacterData.instance.replaceData_Callback_3_(unwrap_jso(this), offset, count, data);
   
   @DomName('CharacterData.substringData')
   @DocsEditable()
-  String substringData(int offset, int length) => _blink.BlinkCharacterData.instance.substringData_Callback_2_(unwrap_jso(this), offset, length);
+  String substringData(int offset, int count) => _blink.BlinkCharacterData.instance.substringData_Callback_2_(unwrap_jso(this), offset, count);
+  
+  @DomName('CharacterData.after')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void after(Object nodes) => _blink.BlinkCharacterData.instance.after_Callback_1_(unwrap_jso(this), nodes);
+  
+  @DomName('CharacterData.before')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void before(Object nodes) => _blink.BlinkCharacterData.instance.before_Callback_1_(unwrap_jso(this), nodes);
   
   @DomName('CharacterData.nextElementSibling')
   @DocsEditable()
@@ -4376,15 +4904,15 @@
   // To suppress missing implicit constructor warnings.
   factory ChildNode._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('ChildNode.nextElementSibling')
+  @DomName('ChildNode.after')
   @DocsEditable()
   @Experimental() // untriaged
-  Element get nextElementSibling;
+  void after(Object nodes);
 
-  @DomName('ChildNode.previousElementSibling')
+  @DomName('ChildNode.before')
   @DocsEditable()
   @Experimental() // untriaged
-  Element get previousElementSibling;
+  void before(Object nodes);
 
   @DomName('ChildNode.remove')
   @DocsEditable()
@@ -4400,6 +4928,36 @@
 
 
 @DocsEditable()
+@DomName('CHROMIUMValuebuffer')
+@Experimental() // untriaged
+class ChromiumValuebuffer extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ChromiumValuebuffer._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static ChromiumValuebuffer internalCreateChromiumValuebuffer() {
+    return new ChromiumValuebuffer._internalWrap();
+  }
+
+  factory ChromiumValuebuffer._internalWrap() {
+    return new ChromiumValuebuffer.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ChromiumValuebuffer.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('CircularGeofencingRegion')
 @Experimental() // untriaged
 class CircularGeofencingRegion extends GeofencingRegion {
@@ -4459,11 +5017,154 @@
 
 
 @DocsEditable()
+@DomName('Client')
+@Experimental() // untriaged
+class Client extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Client._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Client internalCreateClient() {
+    return new Client._internalWrap();
+  }
+
+  factory Client._internalWrap() {
+    return new Client.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Client.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('Client.frameType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get frameType => _blink.BlinkClient.instance.frameType_Getter_(unwrap_jso(this));
+  
+  @DomName('Client.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get id => _blink.BlinkClient.instance.id_Getter_(unwrap_jso(this));
+  
+  @DomName('Client.url')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get url => _blink.BlinkClient.instance.url_Getter_(unwrap_jso(this));
+  
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkClient.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkClient.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('Clients')
+@Experimental() // untriaged
+class Clients extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Clients._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Clients internalCreateClients() {
+    return new Clients._internalWrap();
+  }
+
+  factory Clients._internalWrap() {
+    return new Clients.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Clients.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('Clients.claim')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future claim() => wrap_jso(_blink.BlinkClients.instance.claim_Callback_0_(unwrap_jso(this)));
+  
+  Future matchAll([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkClients.instance.matchAll_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkClients.instance.matchAll_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('Clients.openWindow')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future openWindow(String url) => wrap_jso(_blink.BlinkClients.instance.openWindow_Callback_1_(unwrap_jso(this), url));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('ClipboardEvent')
+@Experimental() // untriaged
+class ClipboardEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory ClipboardEvent._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static ClipboardEvent internalCreateClipboardEvent() {
+    return new ClipboardEvent._internalWrap();
+  }
+
+  external factory ClipboardEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  ClipboardEvent.internal_() : super.internal_();
+
+
+  @DomName('ClipboardEvent.clipboardData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DataTransfer get clipboardData => wrap_jso(_blink.BlinkClipboardEvent.instance.clipboardData_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('CloseEvent')
 class CloseEvent extends Event {
   // To suppress missing implicit constructor warnings.
   factory CloseEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('CloseEvent.CloseEvent')
+  @DocsEditable()
+  factory CloseEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkCloseEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkCloseEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static CloseEvent internalCreateCloseEvent() {
@@ -4543,8 +5244,16 @@
     return e;
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory CompositionEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositionEvent.CompositionEvent')
+  @DocsEditable()
+  factory CompositionEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkCompositionEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkCompositionEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -4558,28 +5267,13 @@
   CompositionEvent.internal_() : super.internal_();
 
 
-  @DomName('CompositionEvent.activeSegmentEnd')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get activeSegmentEnd => _blink.BlinkCompositionEvent.instance.activeSegmentEnd_Getter_(unwrap_jso(this));
-  
-  @DomName('CompositionEvent.activeSegmentStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get activeSegmentStart => _blink.BlinkCompositionEvent.instance.activeSegmentStart_Getter_(unwrap_jso(this));
-  
   @DomName('CompositionEvent.data')
   @DocsEditable()
   String get data => _blink.BlinkCompositionEvent.instance.data_Getter_(unwrap_jso(this));
   
-  @DomName('CompositionEvent.getSegments')
-  @DocsEditable()
-  @Experimental() // untriaged
-  List<int> getSegments() => _blink.BlinkCompositionEvent.instance.getSegments_Callback_0_(unwrap_jso(this));
-  
   @DomName('CompositionEvent.initCompositionEvent')
   @DocsEditable()
-  void _initCompositionEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Window viewArg, String dataArg) => _blink.BlinkCompositionEvent.instance.initCompositionEvent_Callback_5_(unwrap_jso(this), typeArg, canBubbleArg, cancelableArg, unwrap_jso(viewArg), dataArg);
+  void _initCompositionEvent(String type, bool bubbles, bool cancelable, Window view, String data) => _blink.BlinkCompositionEvent.instance.initCompositionEvent_Callback_5_(unwrap_jso(this), type, bubbles, cancelable, unwrap_jso(view), data);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -4590,6 +5284,215 @@
 
 
 @DocsEditable()
+@DomName('CompositorProxy')
+@Experimental() // untriaged
+class CompositorProxy extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorProxy._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorProxy.CompositorProxy')
+  @DocsEditable()
+  factory CompositorProxy(Element element, List<String> attributeArray) {
+    return wrap_jso(_blink.BlinkCompositorProxy.instance.constructorCallback_2_(element, attributeArray));
+  }
+
+  @Deprecated("Internal Use Only")
+  static CompositorProxy internalCreateCompositorProxy() {
+    return new CompositorProxy._internalWrap();
+  }
+
+  factory CompositorProxy._internalWrap() {
+    return new CompositorProxy.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  CompositorProxy.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('CompositorProxy.opacity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get opacity => _blink.BlinkCompositorProxy.instance.opacity_Getter_(unwrap_jso(this));
+  
+  @DomName('CompositorProxy.opacity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set opacity(num value) => _blink.BlinkCompositorProxy.instance.opacity_Setter_(unwrap_jso(this), value);
+  
+  @DomName('CompositorProxy.scrollLeft')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get scrollLeft => _blink.BlinkCompositorProxy.instance.scrollLeft_Getter_(unwrap_jso(this));
+  
+  @DomName('CompositorProxy.scrollLeft')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set scrollLeft(num value) => _blink.BlinkCompositorProxy.instance.scrollLeft_Setter_(unwrap_jso(this), value);
+  
+  @DomName('CompositorProxy.scrollTop')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get scrollTop => _blink.BlinkCompositorProxy.instance.scrollTop_Getter_(unwrap_jso(this));
+  
+  @DomName('CompositorProxy.scrollTop')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set scrollTop(num value) => _blink.BlinkCompositorProxy.instance.scrollTop_Setter_(unwrap_jso(this), value);
+  
+  @DomName('CompositorProxy.transform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomMatrix get transform => wrap_jso(_blink.BlinkCompositorProxy.instance.transform_Getter_(unwrap_jso(this)));
+  
+  @DomName('CompositorProxy.transform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set transform(DomMatrix value) => _blink.BlinkCompositorProxy.instance.transform_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
+  @DomName('CompositorProxy.disconnect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disconnect() => _blink.BlinkCompositorProxy.instance.disconnect_Callback_0_(unwrap_jso(this));
+  
+  @DomName('CompositorProxy.supports')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool supports(String attribute) => _blink.BlinkCompositorProxy.instance.supports_Callback_1_(unwrap_jso(this), attribute);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('CompositorWorker')
+@Experimental() // untriaged
+class CompositorWorker extends EventTarget implements AbstractWorker {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorWorker._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorWorker.errorEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> errorEvent = const EventStreamProvider<Event>('error');
+
+  @DomName('CompositorWorker.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+  @DomName('CompositorWorker.CompositorWorker')
+  @DocsEditable()
+  factory CompositorWorker(String scriptUrl) {
+    return wrap_jso(_blink.BlinkCompositorWorker.instance.constructorCallback_1_(scriptUrl));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static CompositorWorker internalCreateCompositorWorker() {
+    return new CompositorWorker._internalWrap();
+  }
+
+  external factory CompositorWorker._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  CompositorWorker.internal_() : super.internal_();
+
+
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkCompositorWorker.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkCompositorWorker.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
+  @DomName('CompositorWorker.terminate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void terminate() => _blink.BlinkCompositorWorker.instance.terminate_Callback_0_(unwrap_jso(this));
+  
+  @DomName('CompositorWorker.onerror')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onError => errorEvent.forTarget(this);
+
+  @DomName('CompositorWorker.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('CompositorWorkerGlobalScope')
+@Experimental() // untriaged
+class CompositorWorkerGlobalScope extends WorkerGlobalScope {
+  // To suppress missing implicit constructor warnings.
+  factory CompositorWorkerGlobalScope._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CompositorWorkerGlobalScope.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+
+  @Deprecated("Internal Use Only")
+  static CompositorWorkerGlobalScope internalCreateCompositorWorkerGlobalScope() {
+    return new CompositorWorkerGlobalScope._internalWrap();
+  }
+
+  external factory CompositorWorkerGlobalScope._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  CompositorWorkerGlobalScope.internal_() : super.internal_();
+
+
+  @DomName('CompositorWorkerGlobalScope.cancelAnimationFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void cancelAnimationFrame(int handle) => _blink.BlinkCompositorWorkerGlobalScope.instance.cancelAnimationFrame_Callback_1_(unwrap_jso(this), handle);
+  
+  void postMessage(Object message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkCompositorWorkerGlobalScope.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkCompositorWorkerGlobalScope.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
+  @DomName('CompositorWorkerGlobalScope.requestAnimationFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int requestAnimationFrame(FrameRequestCallback callback) => _blink.BlinkCompositorWorkerGlobalScope.instance.requestAnimationFrame_Callback_1_(unwrap_jso(this), unwrap_jso((highResTime) => callback(highResTime)));
+  
+  @DomName('CompositorWorkerGlobalScope.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('Console')
 class Console extends ConsoleBase {
   // To suppress missing implicit constructor warnings.
@@ -4612,6 +5515,11 @@
   @Experimental()
   MemoryInfo get memory => wrap_jso(_blink.BlinkConsole.instance.memory_Getter_(unwrap_jso(this)));
   
+  @DomName('Console.memory')
+  @DocsEditable()
+  @Experimental()
+  set memory(MemoryInfo value) => _blink.BlinkConsole.instance.memory_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -4642,7 +5550,7 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('ConsoleBase.assertCondition')
+  @DomName('ConsoleBase.assert')
   @DocsEditable()
   @Experimental() // untriaged
   void assertCondition(bool condition, Object arg) => _blink.BlinkConsoleBase.instance.assert_Callback_2_(unwrap_jso(this), condition, arg);
@@ -4898,10 +5806,10 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('Credential.avatarURL')
+  @DomName('Credential.iconURL')
   @DocsEditable()
   @Experimental() // untriaged
-  String get avatarUrl => _blink.BlinkCredential.instance.avatarURL_Getter_(unwrap_jso(this));
+  String get iconUrl => _blink.BlinkCredential.instance.iconURL_Getter_(unwrap_jso(this));
   
   @DomName('Credential.id')
   @DocsEditable()
@@ -4913,6 +5821,11 @@
   @Experimental() // untriaged
   String get name => _blink.BlinkCredential.instance.name_Getter_(unwrap_jso(this));
   
+  @DomName('Credential.type')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get type => _blink.BlinkCredential.instance.type_Getter_(unwrap_jso(this));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -4943,21 +5856,11 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('CredentialsContainer.notifyFailedSignIn')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future notifyFailedSignIn(Credential credential) => wrap_jso(_blink.BlinkCredentialsContainer.instance.notifyFailedSignIn_Callback_1_(unwrap_jso(this), unwrap_jso(credential)));
-  
   @DomName('CredentialsContainer.notifySignedIn')
   @DocsEditable()
   @Experimental() // untriaged
   Future notifySignedIn(Credential credential) => wrap_jso(_blink.BlinkCredentialsContainer.instance.notifySignedIn_Callback_1_(unwrap_jso(this), unwrap_jso(credential)));
   
-  @DomName('CredentialsContainer.notifySignedOut')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future notifySignedOut() => wrap_jso(_blink.BlinkCredentialsContainer.instance.notifySignedOut_Callback_0_(unwrap_jso(this)));
-  
   Future request([Map options]) {
     if (options != null) {
       return wrap_jso(_blink.BlinkCredentialsContainer.instance.request_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
@@ -4965,6 +5868,94 @@
     return wrap_jso(_blink.BlinkCredentialsContainer.instance.request_Callback_0_(unwrap_jso(this)));
   }
 
+  @DomName('CredentialsContainer.requireUserMediation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requireUserMediation() => wrap_jso(_blink.BlinkCredentialsContainer.instance.requireUserMediation_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('CrossOriginConnectEvent')
+@Experimental() // untriaged
+class CrossOriginConnectEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory CrossOriginConnectEvent._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static CrossOriginConnectEvent internalCreateCrossOriginConnectEvent() {
+    return new CrossOriginConnectEvent._internalWrap();
+  }
+
+  external factory CrossOriginConnectEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  CrossOriginConnectEvent.internal_() : super.internal_();
+
+
+  @DomName('CrossOriginConnectEvent.client')
+  @DocsEditable()
+  @Experimental() // untriaged
+  CrossOriginServiceWorkerClient get client => wrap_jso(_blink.BlinkCrossOriginConnectEvent.instance.client_Getter_(unwrap_jso(this)));
+  
+  @DomName('CrossOriginConnectEvent.acceptConnection')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void acceptConnection(Future shouldAccept) => _blink.BlinkCrossOriginConnectEvent.instance.acceptConnection_Callback_1_(unwrap_jso(this), shouldAccept);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('CrossOriginServiceWorkerClient')
+@Experimental() // untriaged
+class CrossOriginServiceWorkerClient extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory CrossOriginServiceWorkerClient._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static CrossOriginServiceWorkerClient internalCreateCrossOriginServiceWorkerClient() {
+    return new CrossOriginServiceWorkerClient._internalWrap();
+  }
+
+  external factory CrossOriginServiceWorkerClient._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  CrossOriginServiceWorkerClient.internal_() : super.internal_();
+
+
+  @DomName('CrossOriginServiceWorkerClient.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get origin => _blink.BlinkCrossOriginServiceWorkerClient.instance.origin_Getter_(unwrap_jso(this));
+  
+  @DomName('CrossOriginServiceWorkerClient.targetUrl')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get targetUrl => _blink.BlinkCrossOriginServiceWorkerClient.instance.targetUrl_Getter_(unwrap_jso(this));
+  
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkCrossOriginServiceWorkerClient.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkCrossOriginServiceWorkerClient.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
 }
 // 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
@@ -5103,11 +6094,11 @@
 
   @DomName('CSS.supports')
   @DocsEditable()
-  bool supports(String property, String value) => _blink.BlinkCSS.instance.supports_Callback_2_(unwrap_jso(this), property, value);
+  static bool supports(String property, String value) => _blink.BlinkCSS.instance.supports_Callback_2_(property, value);
   
   @DomName('CSS.supportsCondition')
   @DocsEditable()
-  bool supportsCondition(String conditionText) => _blink.BlinkCSS.instance.supports_Callback_1_(unwrap_jso(this), conditionText);
+  static bool supportsCondition(String conditionText) => _blink.BlinkCSS.instance.supports_Callback_1_(conditionText);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -5154,40 +6145,6 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSFilterRule')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/filter-effects/
-class CssFilterRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory CssFilterRule._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static CssFilterRule internalCreateCssFilterRule() {
-    return new CssFilterRule._internalWrap();
-  }
-
-  external factory CssFilterRule._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  CssFilterRule.internal_() : super.internal_();
-
-
-  @DomName('WebKitCSSFilterRule.style')
-  @DocsEditable()
-  CssStyleDeclaration get style => wrap_jso(_blink.BlinkWebKitCSSFilterRule.instance.style_Getter_(unwrap_jso(this)));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('CSSFontFaceRule')
 class CssFontFaceRule extends CssRule {
   // To suppress missing implicit constructor warnings.
@@ -5218,6 +6175,48 @@
 
 
 @DocsEditable()
+@DomName('CSSGroupingRule')
+@Experimental() // untriaged
+class CssGroupingRule extends CssRule {
+  // To suppress missing implicit constructor warnings.
+  factory CssGroupingRule._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static CssGroupingRule internalCreateCssGroupingRule() {
+    return new CssGroupingRule._internalWrap();
+  }
+
+  external factory CssGroupingRule._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  CssGroupingRule.internal_() : super.internal_();
+
+
+  @DomName('CSSGroupingRule.cssRules')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<CssRule> get cssRules => wrap_jso(_blink.BlinkCSSGroupingRule.instance.cssRules_Getter_(unwrap_jso(this)));
+  
+  @DomName('CSSGroupingRule.deleteRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteRule(int index) => _blink.BlinkCSSGroupingRule.instance.deleteRule_Callback_1_(unwrap_jso(this), index);
+  
+  @DomName('CSSGroupingRule.insertRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int insertRule(String rule, int index) => _blink.BlinkCSSGroupingRule.instance.insertRule_Callback_2_(unwrap_jso(this), rule, index);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('CSSImportRule')
 class CssImportRule extends CssRule {
   // To suppress missing implicit constructor warnings.
@@ -5336,20 +6335,20 @@
   @Experimental() // untriaged
   CssKeyframeRule __getter__(int index) => wrap_jso(_blink.BlinkCSSKeyframesRule.instance.$__getter___Callback_1_(unwrap_jso(this), index));
   
+  @DomName('CSSKeyframesRule.appendRule')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void appendRule(String rule) => _blink.BlinkCSSKeyframesRule.instance.appendRule_Callback_1_(unwrap_jso(this), rule);
+  
   @DomName('CSSKeyframesRule.deleteRule')
   @DocsEditable()
   @Experimental() // untriaged
-  void deleteRule(String key) => _blink.BlinkCSSKeyframesRule.instance.deleteRule_Callback_1_(unwrap_jso(this), key);
+  void deleteRule(String select) => _blink.BlinkCSSKeyframesRule.instance.deleteRule_Callback_1_(unwrap_jso(this), select);
   
   @DomName('CSSKeyframesRule.findRule')
   @DocsEditable()
   @Experimental() // untriaged
-  CssKeyframeRule findRule(String key) => wrap_jso(_blink.BlinkCSSKeyframesRule.instance.findRule_Callback_1_(unwrap_jso(this), key));
-  
-  @DomName('CSSKeyframesRule.insertRule')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void appendRule(String rule) => _blink.BlinkCSSKeyframesRule.instance.insertRule_Callback_1_(unwrap_jso(this), rule);
+  CssKeyframeRule findRule(String select) => wrap_jso(_blink.BlinkCSSKeyframesRule.instance.findRule_Callback_1_(unwrap_jso(this), select));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -5361,7 +6360,7 @@
 
 @DocsEditable()
 @DomName('CSSMediaRule')
-class CssMediaRule extends CssRule {
+class CssMediaRule extends CssGroupingRule {
   // To suppress missing implicit constructor warnings.
   factory CssMediaRule._() { throw new UnsupportedError("Not supported"); }
 
@@ -5377,22 +6376,10 @@
   CssMediaRule.internal_() : super.internal_();
 
 
-  @DomName('CSSMediaRule.cssRules')
-  @DocsEditable()
-  List<CssRule> get cssRules => wrap_jso(_blink.BlinkCSSMediaRule.instance.cssRules_Getter_(unwrap_jso(this)));
-  
   @DomName('CSSMediaRule.media')
   @DocsEditable()
   MediaList get media => wrap_jso(_blink.BlinkCSSMediaRule.instance.media_Getter_(unwrap_jso(this)));
   
-  @DomName('CSSMediaRule.deleteRule')
-  @DocsEditable()
-  void deleteRule(int index) => _blink.BlinkCSSMediaRule.instance.deleteRule_Callback_1_(unwrap_jso(this), index);
-  
-  @DomName('CSSMediaRule.insertRule')
-  @DocsEditable()
-  int insertRule(String rule, int index) => _blink.BlinkCSSMediaRule.instance.insertRule_Callback_2_(unwrap_jso(this), rule, index);
-  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -5503,12 +6490,6 @@
   @Experimental() // untriaged
   static const int VIEWPORT_RULE = 15;
 
-  @DomName('CSSRule.WEBKIT_FILTER_RULE')
-  @DocsEditable()
-  // http://www.w3.org/TR/filter-effects/
-  @Experimental()
-  static const int WEBKIT_FILTER_RULE = 17;
-
   @DomName('CSSRule.WEBKIT_KEYFRAMES_RULE')
   @DocsEditable()
   // http://www.w3.org/TR/css3-animations/#cssrule
@@ -5676,27 +6657,18 @@
   @DocsEditable()
   CssRule get parentRule => wrap_jso(_blink.BlinkCSSStyleDeclaration.instance.parentRule_Getter_(unwrap_jso(this)));
   
-  @DomName('CSSStyleDeclaration.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object __getter__(String name) => wrap_jso(_blink.BlinkCSSStyleDeclaration.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
   @DomName('CSSStyleDeclaration.__propertyQuery__')
   @DocsEditable()
   @Experimental() // untriaged
   bool __propertyQuery__(String name) => _blink.BlinkCSSStyleDeclaration.instance.$__propertyQuery___Callback_1_(unwrap_jso(this), name);
   
-  @DomName('CSSStyleDeclaration.__setter__')
-  @DocsEditable()
-  void __setter__(String propertyName, String propertyValue) => _blink.BlinkCSSStyleDeclaration.instance.$__setter___Callback_2_(unwrap_jso(this), propertyName, propertyValue);
-  
   @DomName('CSSStyleDeclaration.getPropertyPriority')
   @DocsEditable()
-  String getPropertyPriority(String propertyName) => _blink.BlinkCSSStyleDeclaration.instance.getPropertyPriority_Callback_1_(unwrap_jso(this), propertyName);
+  String getPropertyPriority(String property) => _blink.BlinkCSSStyleDeclaration.instance.getPropertyPriority_Callback_1_(unwrap_jso(this), property);
   
   @DomName('CSSStyleDeclaration.getPropertyValue')
   @DocsEditable()
-  String _getPropertyValue(String propertyName) => _blink.BlinkCSSStyleDeclaration.instance.getPropertyValue_Callback_1_(unwrap_jso(this), propertyName);
+  String _getPropertyValue(String property) => _blink.BlinkCSSStyleDeclaration.instance.getPropertyValue_Callback_1_(unwrap_jso(this), property);
   
   @DomName('CSSStyleDeclaration.item')
   @DocsEditable()
@@ -5704,11 +6676,11 @@
   
   @DomName('CSSStyleDeclaration.removeProperty')
   @DocsEditable()
-  String removeProperty(String propertyName) => _blink.BlinkCSSStyleDeclaration.instance.removeProperty_Callback_1_(unwrap_jso(this), propertyName);
+  String removeProperty(String property) => _blink.BlinkCSSStyleDeclaration.instance.removeProperty_Callback_1_(unwrap_jso(this), property);
   
   @DomName('CSSStyleDeclaration.setProperty')
   @DocsEditable()
-  void _setProperty(String propertyName, String value, String priority) => _blink.BlinkCSSStyleDeclaration.instance.setProperty_Callback_3_(unwrap_jso(this), propertyName, value, priority);
+  void _setProperty(String property, String value, String priority) => _blink.BlinkCSSStyleDeclaration.instance.setProperty_Callback_3_(unwrap_jso(this), property, value, priority);
   
 }
 
@@ -9046,8 +10018,16 @@
     }
     return _detail;
   }
-  // To suppress missing implicit constructor warnings.
-  factory CustomEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CustomEvent.CustomEvent')
+  @DocsEditable()
+  factory CustomEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkCustomEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkCustomEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -9067,7 +10047,7 @@
   
   @DomName('CustomEvent.initCustomEvent')
   @DocsEditable()
-  void _initCustomEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object detailArg) => _blink.BlinkCustomEvent.instance.initCustomEvent_Callback_4_(unwrap_jso(this), typeArg, canBubbleArg, cancelableArg, detailArg);
+  void _initCustomEvent(String type, bool bubbles, bool cancelable, Object detail) => _blink.BlinkCustomEvent.instance.initCustomEvent_Callback_4_(unwrap_jso(this), type, bubbles, cancelable, detail);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -9217,9 +10197,9 @@
   @Experimental() // untriaged
   List<String> get types => _blink.BlinkDataTransfer.instance.types_Getter_(unwrap_jso(this));
   
-  void clearData([String type]) {
-    if (type != null) {
-      _blink.BlinkDataTransfer.instance.clearData_Callback_1_(unwrap_jso(this), type);
+  void clearData([String format]) {
+    if (format != null) {
+      _blink.BlinkDataTransfer.instance.clearData_Callback_1_(unwrap_jso(this), format);
       return;
     }
     _blink.BlinkDataTransfer.instance.clearData_Callback_0_(unwrap_jso(this));
@@ -9229,12 +10209,12 @@
   @DomName('DataTransfer.getData')
   @DocsEditable()
   @Experimental() // untriaged
-  String getData(String type) => _blink.BlinkDataTransfer.instance.getData_Callback_1_(unwrap_jso(this), type);
+  String getData(String format) => _blink.BlinkDataTransfer.instance.getData_Callback_1_(unwrap_jso(this), format);
   
   @DomName('DataTransfer.setData')
   @DocsEditable()
   @Experimental() // untriaged
-  void setData(String type, String data) => _blink.BlinkDataTransfer.instance.setData_Callback_2_(unwrap_jso(this), type, data);
+  void setData(String format, String data) => _blink.BlinkDataTransfer.instance.setData_Callback_2_(unwrap_jso(this), format, data);
   
   @DomName('DataTransfer.setDragImage')
   @DocsEditable()
@@ -9335,11 +10315,6 @@
   @DocsEditable()
   int get length => _blink.BlinkDataTransferItemList.instance.length_Getter_(unwrap_jso(this));
   
-  @DomName('DataTransferItemList.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DataTransferItem __getter__(int index) => wrap_jso(_blink.BlinkDataTransferItemList.instance.$__getter___Callback_1_(unwrap_jso(this), index));
-  
   DataTransferItem add(data_OR_file, [String type]) {
     if ((type is String) && (data_OR_file is String)) {
       return wrap_jso(_blink.BlinkDataTransferItemList.instance.add_Callback_2_(unwrap_jso(this), unwrap_jso(data_OR_file), type));
@@ -9362,6 +10337,10 @@
   @DocsEditable()
   void clear() => _blink.BlinkDataTransferItemList.instance.clear_Callback_0_(unwrap_jso(this));
   
+  @DomName('DataTransferItemList.item')
+  @DocsEditable()
+  DataTransferItem item(int index) => wrap_jso(_blink.BlinkDataTransferItemList.instance.item_Callback_1_(unwrap_jso(this), index));
+  
   @DomName('DataTransferItemList.remove')
   @DocsEditable()
   @Experimental() // untriaged
@@ -9424,11 +10403,15 @@
   DedicatedWorkerGlobalScope.internal_() : super.internal_();
 
 
-  @DomName('DedicatedWorkerGlobalScope.postMessage')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void postMessage(Object message, [List<MessagePort> transfer]) => _blink.BlinkDedicatedWorkerGlobalScope.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
-  
+  void postMessage(Object message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkDedicatedWorkerGlobalScope.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkDedicatedWorkerGlobalScope.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
   /// Stream of `message` events handled by this [DedicatedWorkerGlobalScope].
   @DomName('DedicatedWorkerGlobalScope.onmessage')
   @DocsEditable()
@@ -9444,6 +10427,48 @@
 
 
 @DocsEditable()
+@DomName('DefaultSessionStartEvent')
+@Experimental() // untriaged
+class DefaultSessionStartEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory DefaultSessionStartEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('DefaultSessionStartEvent.DefaultSessionStartEvent')
+  @DocsEditable()
+  factory DefaultSessionStartEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkDefaultSessionStartEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkDefaultSessionStartEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static DefaultSessionStartEvent internalCreateDefaultSessionStartEvent() {
+    return new DefaultSessionStartEvent._internalWrap();
+  }
+
+  external factory DefaultSessionStartEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  DefaultSessionStartEvent.internal_() : super.internal_();
+
+
+  @DomName('DefaultSessionStartEvent.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  PresentationSession get session => wrap_jso(_blink.BlinkDefaultSessionStartEvent.instance.session_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('DeprecatedStorageInfo')
 @Experimental() // untriaged
 class DeprecatedStorageInfo extends DartHtmlDomObject {
@@ -9661,6 +10686,16 @@
   // To suppress missing implicit constructor warnings.
   factory DeviceLightEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('DeviceLightEvent.DeviceLightEvent')
+  @DocsEditable()
+  factory DeviceLightEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkDeviceLightEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkDeviceLightEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static DeviceLightEvent internalCreateDeviceLightEvent() {
@@ -10278,6 +11313,11 @@
   @DocsEditable()
   String get _lastModified => _blink.BlinkDocument.instance.lastModified_Getter_(unwrap_jso(this));
   
+  @DomName('Document.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get origin => _blink.BlinkDocument.instance.origin_Getter_(unwrap_jso(this));
+  
   @DomName('Document.pointerLockElement')
   @DocsEditable()
   @Experimental() // untriaged
@@ -10300,6 +11340,11 @@
   @Experimental() // untriaged
   SvgSvgElement get rootElement => wrap_jso(_blink.BlinkDocument.instance.rootElement_Getter_(unwrap_jso(this)));
   
+  @DomName('Document.scrollingElement')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element get scrollingElement => wrap_jso(_blink.BlinkDocument.instance.scrollingElement_Getter_(unwrap_jso(this)));
+  
   @DomName('Document.selectedStylesheetSet')
   @DocsEditable()
   String get _selectedStylesheetSet => _blink.BlinkDocument.instance.selectedStylesheetSet_Getter_(unwrap_jso(this));
@@ -10407,7 +11452,7 @@
   @DocsEditable()
   // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
   @Experimental()
-  Touch _createTouch(Window window, EventTarget target, int identifier, num pageX, num pageY, num screenX, num screenY, num webkitRadiusX, num webkitRadiusY, num webkitRotationAngle, num webkitForce) => wrap_jso(_blink.BlinkDocument.instance.createTouch_Callback_11_(unwrap_jso(this), unwrap_jso(window), unwrap_jso(target), identifier, pageX, pageY, screenX, screenY, webkitRadiusX, webkitRadiusY, webkitRotationAngle, webkitForce));
+  Touch _createTouch(Window window, EventTarget target, int identifier, num pageX, num pageY, num screenX, num screenY, num radiusX, num radiusY, num rotationAngle, num force) => wrap_jso(_blink.BlinkDocument.instance.createTouch_Callback_11_(unwrap_jso(this), unwrap_jso(window), unwrap_jso(target), identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force));
   
   @DomName('Document.createTouchList')
   @DocsEditable()
@@ -10426,10 +11471,21 @@
   @DocsEditable()
   Element _elementFromPoint(int x, int y) => wrap_jso(_blink.BlinkDocument.instance.elementFromPoint_Callback_2_(unwrap_jso(this), x, y));
   
-  @DomName('Document.execCommand')
+  @DomName('Document.elementsFromPoint')
   @DocsEditable()
-  bool execCommand(String command, bool userInterface, String value) => _blink.BlinkDocument.instance.execCommand_Callback_3_(unwrap_jso(this), command, userInterface, value);
+  @Experimental() // untriaged
+  List<Element> elementsFromPoint(int x, int y) => wrap_jso(_blink.BlinkDocument.instance.elementsFromPoint_Callback_2_(unwrap_jso(this), x, y));
   
+  bool execCommand(String commandId, [bool showUI, String value]) {
+    if (value != null) {
+      return _blink.BlinkDocument.instance.execCommand_Callback_3_(unwrap_jso(this), commandId, showUI, value);
+    }
+    if (showUI != null) {
+      return _blink.BlinkDocument.instance.execCommand_Callback_2_(unwrap_jso(this), commandId, showUI);
+    }
+    return _blink.BlinkDocument.instance.execCommand_Callback_1_(unwrap_jso(this), commandId);
+  }
+
   @DomName('Document.exitFullscreen')
   @DocsEditable()
   @Experimental() // untriaged
@@ -10446,10 +11502,6 @@
   @Experimental() // non-standard
   Object _getCssCanvasContext(String contextId, String name, int width, int height) => wrap_jso(_blink.BlinkDocument.instance.getCSSCanvasContext_Callback_4_(unwrap_jso(this), contextId, name, width, height));
   
-  @DomName('Document.getElementById')
-  @DocsEditable()
-  Element getElementById(String elementId) => wrap_jso(_blink.BlinkDocument.instance.getElementById_Callback_1_(unwrap_jso(this), elementId));
-  
   @DomName('Document.getElementsByClassName')
   @DocsEditable()
   List<Node> getElementsByClassName(String classNames) => wrap_jso(_blink.BlinkDocument.instance.getElementsByClassName_Callback_1_(unwrap_jso(this), classNames));
@@ -10471,23 +11523,23 @@
 
   @DomName('Document.queryCommandEnabled')
   @DocsEditable()
-  bool queryCommandEnabled(String command) => _blink.BlinkDocument.instance.queryCommandEnabled_Callback_1_(unwrap_jso(this), command);
+  bool queryCommandEnabled(String commandId) => _blink.BlinkDocument.instance.queryCommandEnabled_Callback_1_(unwrap_jso(this), commandId);
   
   @DomName('Document.queryCommandIndeterm')
   @DocsEditable()
-  bool queryCommandIndeterm(String command) => _blink.BlinkDocument.instance.queryCommandIndeterm_Callback_1_(unwrap_jso(this), command);
+  bool queryCommandIndeterm(String commandId) => _blink.BlinkDocument.instance.queryCommandIndeterm_Callback_1_(unwrap_jso(this), commandId);
   
   @DomName('Document.queryCommandState')
   @DocsEditable()
-  bool queryCommandState(String command) => _blink.BlinkDocument.instance.queryCommandState_Callback_1_(unwrap_jso(this), command);
+  bool queryCommandState(String commandId) => _blink.BlinkDocument.instance.queryCommandState_Callback_1_(unwrap_jso(this), commandId);
   
   @DomName('Document.queryCommandSupported')
   @DocsEditable()
-  bool queryCommandSupported(String command) => _blink.BlinkDocument.instance.queryCommandSupported_Callback_1_(unwrap_jso(this), command);
+  bool queryCommandSupported(String commandId) => _blink.BlinkDocument.instance.queryCommandSupported_Callback_1_(unwrap_jso(this), commandId);
   
   @DomName('Document.queryCommandValue')
   @DocsEditable()
-  String queryCommandValue(String command) => _blink.BlinkDocument.instance.queryCommandValue_Callback_1_(unwrap_jso(this), command);
+  String queryCommandValue(String commandId) => _blink.BlinkDocument.instance.queryCommandValue_Callback_1_(unwrap_jso(this), commandId);
   
   @DomName('Document.transformDocumentToTreeView')
   @DocsEditable()
@@ -10502,6 +11554,10 @@
   // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
   void _webkitExitFullscreen() => _blink.BlinkDocument.instance.webkitExitFullscreen_Callback_0_(unwrap_jso(this));
   
+  @DomName('Document.getElementById')
+  @DocsEditable()
+  Element getElementById(String elementId) => wrap_jso(_blink.BlinkDocument.instance.getElementById_Callback_1_(unwrap_jso(this), elementId));
+  
   @DomName('Document.childElementCount')
   @DocsEditable()
   int get _childElementCount => _blink.BlinkDocument.instance.childElementCount_Getter_(unwrap_jso(this));
@@ -10596,12 +11652,12 @@
   /// Stream of `copy` events handled by this [Document].
   @DomName('Document.oncopy')
   @DocsEditable()
-  Stream<Event> get onCopy => Element.copyEvent.forTarget(this);
+  Stream<ClipboardEvent> get onCopy => Element.copyEvent.forTarget(this);
 
   /// Stream of `cut` events handled by this [Document].
   @DomName('Document.oncut')
   @DocsEditable()
-  Stream<Event> get onCut => Element.cutEvent.forTarget(this);
+  Stream<ClipboardEvent> get onCut => Element.cutEvent.forTarget(this);
 
   /// Stream of `doubleclick` events handled by this [Document].
   @DomName('Document.ondblclick')
@@ -10753,7 +11809,7 @@
   /// Stream of `paste` events handled by this [Document].
   @DomName('Document.onpaste')
   @DocsEditable()
-  Stream<Event> get onPaste => Element.pasteEvent.forTarget(this);
+  Stream<ClipboardEvent> get onPaste => Element.pasteEvent.forTarget(this);
 
   @DomName('Document.onpause')
   @DocsEditable()
@@ -11016,7 +12072,7 @@
 
 
 @DomName('DocumentFragment')
-class DocumentFragment extends Node implements ParentNode {
+class DocumentFragment extends Node implements NonElementParentNode, ParentNode {
   factory DocumentFragment() => document.createDocumentFragment();
 
   factory DocumentFragment.html(String html,
@@ -11336,7 +12392,7 @@
   
   @DomName('DOMImplementation.hasFeature')
   @DocsEditable()
-  bool hasFeature(String feature, String version) => _blink.BlinkDOMImplementation.instance.hasFeature_Callback_2_(unwrap_jso(this), feature, version);
+  bool hasFeature() => _blink.BlinkDOMImplementation.instance.hasFeature_Callback_0_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -11644,44 +12700,44 @@
   @Experimental() // untriaged
   DomMatrix preMultiplySelf(DomMatrix other) => wrap_jso(_blink.BlinkDOMMatrix.instance.preMultiplySelf_Callback_1_(unwrap_jso(this), unwrap_jso(other)));
   
-  DomMatrix scale3dSelf(num scale, [num ox, num oy, num oz]) {
-    if (oz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_4_(unwrap_jso(this), scale, ox, oy, oz));
+  DomMatrix scale3dSelf(num scale, [num originX, num originY, num originZ]) {
+    if (originZ != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_4_(unwrap_jso(this), scale, originX, originY, originZ));
     }
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_3_(unwrap_jso(this), scale, ox, oy));
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_3_(unwrap_jso(this), scale, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_2_(unwrap_jso(this), scale, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_2_(unwrap_jso(this), scale, originX));
     }
     return wrap_jso(_blink.BlinkDOMMatrix.instance.scale3dSelf_Callback_1_(unwrap_jso(this), scale));
   }
 
-  DomMatrix scaleNonUniformSelf(num sx, [num sy, num sz, num ox, num oy, num oz]) {
-    if (oz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_6_(unwrap_jso(this), sx, sy, sz, ox, oy, oz));
+  DomMatrix scaleNonUniformSelf(num scaleX, [num scaleY, num scaleZ, num originX, num originY, num originZ]) {
+    if (originZ != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_6_(unwrap_jso(this), scaleX, scaleY, scaleZ, originX, originY, originZ));
     }
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_5_(unwrap_jso(this), sx, sy, sz, ox, oy));
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_5_(unwrap_jso(this), scaleX, scaleY, scaleZ, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_4_(unwrap_jso(this), sx, sy, sz, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_4_(unwrap_jso(this), scaleX, scaleY, scaleZ, originX));
     }
-    if (sz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_3_(unwrap_jso(this), sx, sy, sz));
+    if (scaleZ != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_3_(unwrap_jso(this), scaleX, scaleY, scaleZ));
     }
-    if (sy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_2_(unwrap_jso(this), sx, sy));
+    if (scaleY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_2_(unwrap_jso(this), scaleX, scaleY));
     }
-    return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_1_(unwrap_jso(this), sx));
+    return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleNonUniformSelf_Callback_1_(unwrap_jso(this), scaleX));
   }
 
-  DomMatrix scaleSelf(num scale, [num ox, num oy]) {
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleSelf_Callback_3_(unwrap_jso(this), scale, ox, oy));
+  DomMatrix scaleSelf(num scale, [num originX, num originY]) {
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleSelf_Callback_3_(unwrap_jso(this), scale, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleSelf_Callback_2_(unwrap_jso(this), scale, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleSelf_Callback_2_(unwrap_jso(this), scale, originX));
     }
     return wrap_jso(_blink.BlinkDOMMatrix.instance.scaleSelf_Callback_1_(unwrap_jso(this), scale));
   }
@@ -11848,57 +12904,57 @@
   @Experimental() // untriaged
   DomMatrix multiply(DomMatrix other) => wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.multiply_Callback_1_(unwrap_jso(this), unwrap_jso(other)));
   
-  DomMatrix scale(num scale, [num ox, num oy]) {
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale_Callback_3_(unwrap_jso(this), scale, ox, oy));
+  DomMatrix scale(num scale, [num originX, num originY]) {
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale_Callback_3_(unwrap_jso(this), scale, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale_Callback_2_(unwrap_jso(this), scale, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale_Callback_2_(unwrap_jso(this), scale, originX));
     }
     return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale_Callback_1_(unwrap_jso(this), scale));
   }
 
-  DomMatrix scale3d(num scale, [num ox, num oy, num oz]) {
-    if (oz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_4_(unwrap_jso(this), scale, ox, oy, oz));
+  DomMatrix scale3d(num scale, [num originX, num originY, num originZ]) {
+    if (originZ != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_4_(unwrap_jso(this), scale, originX, originY, originZ));
     }
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_3_(unwrap_jso(this), scale, ox, oy));
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_3_(unwrap_jso(this), scale, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_2_(unwrap_jso(this), scale, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_2_(unwrap_jso(this), scale, originX));
     }
     return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scale3d_Callback_1_(unwrap_jso(this), scale));
   }
 
-  DomMatrix scaleNonUniform(num sx, [num sy, num sz, num ox, num oy, num oz]) {
-    if (oz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_6_(unwrap_jso(this), sx, sy, sz, ox, oy, oz));
+  DomMatrix scaleNonUniform(num scaleX, [num scaleY, num scaleZn, num originX, num originY, num originZ]) {
+    if (originZ != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_6_(unwrap_jso(this), scaleX, scaleY, scaleZn, originX, originY, originZ));
     }
-    if (oy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_5_(unwrap_jso(this), sx, sy, sz, ox, oy));
+    if (originY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_5_(unwrap_jso(this), scaleX, scaleY, scaleZn, originX, originY));
     }
-    if (ox != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_4_(unwrap_jso(this), sx, sy, sz, ox));
+    if (originX != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_4_(unwrap_jso(this), scaleX, scaleY, scaleZn, originX));
     }
-    if (sz != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_3_(unwrap_jso(this), sx, sy, sz));
+    if (scaleZn != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_3_(unwrap_jso(this), scaleX, scaleY, scaleZn));
     }
-    if (sy != null) {
-      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_2_(unwrap_jso(this), sx, sy));
+    if (scaleY != null) {
+      return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_2_(unwrap_jso(this), scaleX, scaleY));
     }
-    return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_1_(unwrap_jso(this), sx));
+    return wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.scaleNonUniform_Callback_1_(unwrap_jso(this), scaleX));
   }
 
   @DomName('DOMMatrixReadOnly.toFloat32Array')
   @DocsEditable()
   @Experimental() // untriaged
-  Float32List toFloat32Array() => _blink.BlinkDOMMatrixReadOnly.instance.toFloat32Array_Callback_0_(unwrap_jso(this));
+  Float32List toFloat32Array() => wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.toFloat32Array_Callback_0_(unwrap_jso(this)));
   
   @DomName('DOMMatrixReadOnly.toFloat64Array')
   @DocsEditable()
   @Experimental() // untriaged
-  Float64List toFloat64Array() => _blink.BlinkDOMMatrixReadOnly.instance.toFloat64Array_Callback_0_(unwrap_jso(this));
+  Float64List toFloat64Array() => wrap_jso(_blink.BlinkDOMMatrixReadOnly.instance.toFloat64Array_Callback_0_(unwrap_jso(this)));
   
   DomMatrix translate(num tx, num ty, [num tz]) {
     if (tz != null) {
@@ -11944,7 +13000,7 @@
 
   @DomName('DOMParser.parseFromString')
   @DocsEditable()
-  Document parseFromString(String str, String contentType) => wrap_jso(_blink.BlinkDOMParser.instance.parseFromString_Callback_2_(unwrap_jso(this), str, contentType));
+  Document parseFromString(String str, String type) => wrap_jso(_blink.BlinkDOMParser.instance.parseFromString_Callback_2_(unwrap_jso(this), str, type));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -11964,13 +13020,16 @@
   @DomName('DOMPoint.DOMPoint')
   @DocsEditable()
   factory DomPoint([point_OR_x, num y, num z, num w]) {
-    if (point_OR_x == null && y == null && z == null && w == null) {
-      return wrap_jso(_blink.BlinkDOMPoint.instance.constructorCallback_0_());
-    }
     if ((point_OR_x is Map || point_OR_x == null) && y == null && z == null && w == null) {
       var point_1 = convertDartToNative_Dictionary(point_OR_x);
       return wrap_jso(_blink.BlinkDOMPoint.instance.constructorCallback_1_(point_1));
     }
+    if (point_OR_x == null && y == null && z == null && w == null) {
+      return wrap_jso(_blink.BlinkDOMPoint.instance.constructorCallback_0_());
+    }
+    if ((point_OR_x is num || point_OR_x == null) && y == null && z == null && w == null) {
+      return wrap_jso(_blink.BlinkDOMPoint.instance.constructorCallback_1_(point_OR_x));
+    }
     if ((y is num || y == null) && (point_OR_x is num || point_OR_x == null) && z == null && w == null) {
       return wrap_jso(_blink.BlinkDOMPoint.instance.constructorCallback_2_(point_OR_x, y));
     }
@@ -12290,9 +13349,10 @@
   @DocsEditable()
   set value(String value) => _blink.BlinkDOMSettableTokenList.instance.value_Setter_(unwrap_jso(this), value);
   
-  @DomName('DOMSettableTokenList.__getter__')
+  @DomName('DOMSettableTokenList.item')
   @DocsEditable()
-  String __getter__(int index) => _blink.BlinkDOMSettableTokenList.instance.$__getter___Callback_1_(unwrap_jso(this), index);
+  @Experimental() // untriaged
+  String item(int index) => _blink.BlinkDOMSettableTokenList.instance.item_Callback_1_(unwrap_jso(this), index);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -12373,6 +13433,11 @@
   String elementAt(int index) => this[index];
   // -- end List<String> mixins.
 
+  @DomName('DOMStringList.__getter__')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String __getter__(int index) => _blink.BlinkDOMStringList.instance.$__getter___Callback_1_(unwrap_jso(this), index);
+  
   @DomName('DOMStringList.contains')
   @DocsEditable()
   bool contains(String string) => _blink.BlinkDOMStringList.instance.contains_Callback_1_(unwrap_jso(this), string);
@@ -12395,38 +13460,39 @@
   // To suppress missing implicit constructor warnings.
   factory DomStringMap._() { throw new UnsupportedError("Not supported"); }
 
-  bool __delete__(index_OR_name) {
-    if ((index_OR_name is int || index_OR_name == null)) {
-      return _blink.BlinkDOMStringMap.instance.$__delete___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
-    }
+  void __delete__(index_OR_name) {
     if ((index_OR_name is String || index_OR_name == null)) {
-      return _blink.BlinkDOMStringMap.instance.$__delete___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  String __getter__(index_OR_name) {
-    if ((index_OR_name is int || index_OR_name == null)) {
-      return _blink.BlinkDOMStringMap.instance.$__getter___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
-    }
-    if ((index_OR_name is String || index_OR_name == null)) {
-      return _blink.BlinkDOMStringMap.instance.$__getter___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  void __setter__(index_OR_name, String value) {
-    if ((value is String || value == null) && (index_OR_name is int || index_OR_name == null)) {
-      _blink.BlinkDOMStringMap.instance.$__setter___Callback_2_(unwrap_jso(this), unwrap_jso(index_OR_name), value);
+      _blink.BlinkDOMStringMap.instance.$__delete___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
       return;
     }
+    if ((index_OR_name is int || index_OR_name == null)) {
+      _blink.BlinkDOMStringMap.instance.$__delete___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('DOMStringMap.__getter__')
+  @DocsEditable()
+  String __getter__(int index);
+
+  void __setter__(index_OR_name, String value) {
     if ((value is String || value == null) && (index_OR_name is String || index_OR_name == null)) {
       _blink.BlinkDOMStringMap.instance.$__setter___Callback_2_(unwrap_jso(this), unwrap_jso(index_OR_name), value);
       return;
     }
+    if ((value is String || value == null) && (index_OR_name is int || index_OR_name == null)) {
+      _blink.BlinkDOMStringMap.instance.$__setter___Callback_2_(unwrap_jso(this), unwrap_jso(index_OR_name), value);
+      return;
+    }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
+  @DomName('DOMStringMap.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String item(String name);
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -12490,6 +13556,36 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('EffectModel')
+@Experimental() // untriaged
+class EffectModel extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory EffectModel._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static EffectModel internalCreateEffectModel() {
+    return new EffectModel._internalWrap();
+  }
+
+  factory EffectModel._internalWrap() {
+    return new EffectModel.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  EffectModel.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 
 class _ChildrenElementList extends ListBase<Element>
     implements NodeListWrapper {
@@ -12792,12 +13888,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy;
+  ElementStream<ClipboardEvent> get onCopy;
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut;
+  ElementStream<ClipboardEvent> get onCut;
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -13045,7 +14141,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste;
+  ElementStream<ClipboardEvent> get onPaste;
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -13328,12 +14424,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy => Element.copyEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onCopy => Element.copyEvent._forElementList(this);
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut => Element.cutEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onCut => Element.cutEvent._forElementList(this);
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -13581,7 +14677,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste => Element.pasteEvent._forElementList(this);
+  ElementStream<ClipboardEvent> get onPaste => Element.pasteEvent._forElementList(this);
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -13748,7 +14844,7 @@
  * An abstract class, which all HTML elements extend.
  */
 @DomName('Element')
-class Element extends Node implements GlobalEventHandlers, ParentNode, ChildNode {
+class Element extends Node implements NonDocumentTypeChildNode, GlobalEventHandlers, ParentNode, ChildNode {
 
   /**
    * Creates an HTML element from a valid fragment of HTML.
@@ -14211,7 +15307,7 @@
    * on which the method is called, and calls the play() method of the
    * AnimationTimeline object of the document timeline of the node document
    * of the element, passing the newly created AnimationEffect as the argument
-   * to the method. Returns an AnimationPlayer for the effect.
+   * to the method. Returns an Animation for the effect.
    *
    * Examples
    *
@@ -14230,7 +15326,7 @@
   **/
   @Experimental()
   @SupportedBrowser(SupportedBrowser.CHROME, '36')
-  AnimationPlayer animate(Iterable<Map<String, dynamic>> frames, [timing]) {
+  Animation animate(Iterable<Map<String, dynamic>> frames, [timing]) {
     if (frames is! Iterable || !(frames.every((x) => x is Map))) {
       throw new ArgumentError("The frames parameter should be a List of Maps "
           "with frame information");
@@ -14723,37 +15819,25 @@
   bool get isContentEditable => _blink.BlinkHTMLElement.instance.isContentEditable_Getter_(unwrap_jso(this));
   void click() => _blink.BlinkHTMLElement.instance.click_Callback_0_(unwrap_jso(this));
 
+  @DomName('Element.offsetParent')
+  @DocsEditable()
+  Element get offsetParent => wrap_jso(_blink.BlinkElement.instance.offsetParent_Getter_(unwrap_jso(this)));
+
   @DomName('Element.offsetHeight')
   @DocsEditable()
-  int get offsetHeight => _blink.BlinkElement.instance.offsetHeight_Getter_(unwrap_jso(this)).round();
+  int get offsetHeight => _blink.BlinkElement.instance.offsetHeight_Getter_(unwrap_jso(this));
 
   @DomName('Element.offsetLeft')
   @DocsEditable()
-  int get offsetLeft => _blink.BlinkElement.instance.offsetLeft_Getter_(unwrap_jso(this)).round();
+  int get offsetLeft => _blink.BlinkElement.instance.offsetLeft_Getter_(unwrap_jso(this));
 
   @DomName('Element.offsetTop')
   @DocsEditable()
-  int get offsetTop => _blink.BlinkElement.instance.offsetTop_Getter_(unwrap_jso(this)).round();
+  int get offsetTop => _blink.BlinkElement.instance.offsetTop_Getter_(unwrap_jso(this));
 
   @DomName('Element.offsetWidth')
   @DocsEditable()
-  int get offsetWidth => _blink.BlinkElement.instance.offsetWidth_Getter_(unwrap_jso(this)).round();
-
-  @DomName('Element.clientHeight')
-  @DocsEditable()
-  int get clientHeight => _blink.BlinkElement.instance.clientHeight_Getter_(unwrap_jso(this)).round();
-
-  @DomName('Element.clientLeft')
-  @DocsEditable()
-  int get clientLeft => _blink.BlinkElement.instance.clientLeft_Getter_(unwrap_jso(this)).round();
-
-  @DomName('Element.clientTop')
-  @DocsEditable()
-  int get clientTop => _blink.BlinkElement.instance.clientTop_Getter_(unwrap_jso(this)).round();
-
-  @DomName('Element.clientWidth')
-  @DocsEditable()
-  int get clientWidth => _blink.BlinkElement.instance.clientWidth_Getter_(unwrap_jso(this)).round();
+  int get offsetWidth => _blink.BlinkElement.instance.offsetWidth_Getter_(unwrap_jso(this));
 
   @DomName('Element.scrollHeight')
   @DocsEditable()
@@ -14880,7 +15964,7 @@
    */
   @DomName('Element.copyEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> copyEvent = const EventStreamProvider<Event>('copy');
+  static const EventStreamProvider<ClipboardEvent> copyEvent = const EventStreamProvider<ClipboardEvent>('copy');
 
   /**
    * Static factory designed to expose `cut` events to event
@@ -14890,7 +15974,7 @@
    */
   @DomName('Element.cutEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> cutEvent = const EventStreamProvider<Event>('cut');
+  static const EventStreamProvider<ClipboardEvent> cutEvent = const EventStreamProvider<ClipboardEvent>('cut');
 
   /**
    * Static factory designed to expose `doubleclick` events to event
@@ -15221,7 +16305,7 @@
    */
   @DomName('Element.pasteEvent')
   @DocsEditable()
-  static const EventStreamProvider<Event> pasteEvent = const EventStreamProvider<Event>('paste');
+  static const EventStreamProvider<ClipboardEvent> pasteEvent = const EventStreamProvider<ClipboardEvent>('paste');
 
   @DomName('Element.pauseEvent')
   @DocsEditable()
@@ -15476,6 +16560,8 @@
 
   bool spellcheck;
 
+  CssStyleDeclaration get style;
+
   int tabIndex;
 
   String title;
@@ -15484,6 +16570,10 @@
 
   String dropzone;
 
+  void blur();
+
+  void focus();
+
   @DomName('Element.attributes')
   @DocsEditable()
   _NamedNodeMap get _attributes => wrap_jso(_blink.BlinkElement.instance.attributes_Getter_(unwrap_jso(this)));
@@ -15498,19 +16588,29 @@
   
   @DomName('Element.clientHeight')
   @DocsEditable()
-  int get _clientHeight => _blink.BlinkElement.instance.clientHeight_Getter_(unwrap_jso(this));
+  int get clientHeight => _blink.BlinkElement.instance.clientHeight_Getter_(unwrap_jso(this));
   
   @DomName('Element.clientLeft')
   @DocsEditable()
-  int get _clientLeft => _blink.BlinkElement.instance.clientLeft_Getter_(unwrap_jso(this));
+  int get clientLeft => _blink.BlinkElement.instance.clientLeft_Getter_(unwrap_jso(this));
   
   @DomName('Element.clientTop')
   @DocsEditable()
-  int get _clientTop => _blink.BlinkElement.instance.clientTop_Getter_(unwrap_jso(this));
+  int get clientTop => _blink.BlinkElement.instance.clientTop_Getter_(unwrap_jso(this));
   
   @DomName('Element.clientWidth')
   @DocsEditable()
-  int get _clientWidth => _blink.BlinkElement.instance.clientWidth_Getter_(unwrap_jso(this));
+  int get clientWidth => _blink.BlinkElement.instance.clientWidth_Getter_(unwrap_jso(this));
+  
+  @DomName('Element.computedName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get computedName => _blink.BlinkElement.instance.computedName_Getter_(unwrap_jso(this));
+  
+  @DomName('Element.computedRole')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get computedRole => _blink.BlinkElement.instance.computedRole_Getter_(unwrap_jso(this));
   
   @DomName('Element.id')
   @DocsEditable()
@@ -15538,26 +16638,6 @@
   @Experimental() // untriaged
   String get _namespaceUri => _blink.BlinkElement.instance.namespaceURI_Getter_(unwrap_jso(this));
   
-  @DomName('Element.offsetHeight')
-  @DocsEditable()
-  int get _offsetHeight => _blink.BlinkElement.instance.offsetHeight_Getter_(unwrap_jso(this));
-  
-  @DomName('Element.offsetLeft')
-  @DocsEditable()
-  int get _offsetLeft => _blink.BlinkElement.instance.offsetLeft_Getter_(unwrap_jso(this));
-  
-  @DomName('Element.offsetParent')
-  @DocsEditable()
-  Element get offsetParent => wrap_jso(_blink.BlinkElement.instance.offsetParent_Getter_(unwrap_jso(this)));
-  
-  @DomName('Element.offsetTop')
-  @DocsEditable()
-  int get _offsetTop => _blink.BlinkElement.instance.offsetTop_Getter_(unwrap_jso(this));
-  
-  @DomName('Element.offsetWidth')
-  @DocsEditable()
-  int get _offsetWidth => _blink.BlinkElement.instance.offsetWidth_Getter_(unwrap_jso(this));
-  
   @DomName('Element.outerHTML')
   @DocsEditable()
   String get outerHtml => _blink.BlinkElement.instance.outerHTML_Getter_(unwrap_jso(this));
@@ -15592,38 +16672,42 @@
   @Experimental()
   ShadowRoot get shadowRoot => wrap_jso(_blink.BlinkElement.instance.shadowRoot_Getter_(unwrap_jso(this)));
   
-  @DomName('Element.style')
-  @DocsEditable()
-  CssStyleDeclaration get style => wrap_jso(_blink.BlinkElement.instance.style_Getter_(unwrap_jso(this)));
-  
   @DomName('Element.tagName')
   @DocsEditable()
   String get tagName => _blink.BlinkElement.instance.tagName_Getter_(unwrap_jso(this));
   
-  @DomName('Element.animate')
+  Animation _animate(Object effect, [timing]) {
+    if (effect != null && timing == null) {
+      return wrap_jso(_blink.BlinkElement.instance.animate_Callback_1_(unwrap_jso(this), effect));
+    }
+    if ((timing is num) && effect != null) {
+      return wrap_jso(_blink.BlinkElement.instance.animate_Callback_2_(unwrap_jso(this), effect, unwrap_jso(timing)));
+    }
+    if (timing != null && effect != null) {
+      return wrap_jso(_blink.BlinkElement.instance.animate_Callback_2_(unwrap_jso(this), effect, unwrap_jso(timing)));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('Element.closest')
   @DocsEditable()
   @Experimental() // untriaged
-  AnimationPlayer _animate(Object effect, [Object timing]) => wrap_jso(_blink.BlinkElement.instance.animate_Callback_2_(unwrap_jso(this), effect, timing));
+  Element closest(String selectors) => wrap_jso(_blink.BlinkElement.instance.closest_Callback_1_(unwrap_jso(this), selectors));
   
-  @DomName('Element.blur')
-  @DocsEditable()
-  void blur() => _blink.BlinkElement.instance.blur_Callback_0_(unwrap_jso(this));
-  
-  @DomName('Element.createShadowRoot')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME, '25')
-  @Experimental()
-  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-aware-create-shadow-root
-  ShadowRoot createShadowRoot() => wrap_jso(_blink.BlinkElement.instance.createShadowRoot_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('Element.focus')
-  @DocsEditable()
-  void focus() => _blink.BlinkElement.instance.focus_Callback_0_(unwrap_jso(this));
-  
-  @DomName('Element.getAnimationPlayers')
+  ShadowRoot createShadowRoot([Map shadowRootInitDict]) {
+    if (shadowRootInitDict == null) {
+      return wrap_jso(_blink.BlinkElement.instance.createShadowRoot_Callback_0_(unwrap_jso(this)));
+    }
+    if ((shadowRootInitDict is Map)) {
+      return wrap_jso(_blink.BlinkElement.instance.createShadowRoot_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(shadowRootInitDict)));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('Element.getAnimations')
   @DocsEditable()
   @Experimental() // untriaged
-  List<AnimationPlayer> getAnimationPlayers() => wrap_jso(_blink.BlinkElement.instance.getAnimationPlayers_Callback_0_(unwrap_jso(this)));
+  List<Animation> getAnimations() => wrap_jso(_blink.BlinkElement.instance.getAnimations_Callback_0_(unwrap_jso(this)));
   
   @DomName('Element.getAttribute')
   @DocsEditable()
@@ -15697,7 +16781,7 @@
   
   @DomName('Element.getElementsByTagName')
   @DocsEditable()
-  List<Node> _getElementsByTagName(String name) => wrap_jso(_blink.BlinkElement.instance.getElementsByTagName_Callback_1_(unwrap_jso(this), name));
+  List<Node> _getElementsByTagName(String localName) => wrap_jso(_blink.BlinkElement.instance.getElementsByTagName_Callback_1_(unwrap_jso(this), localName));
   
   @DomName('Element.hasAttribute')
   @DocsEditable()
@@ -15715,7 +16799,7 @@
   @DomName('Element.insertAdjacentHTML')
   @DocsEditable()
   @Experimental() // untriaged
-  void _insertAdjacentHtml(String where, String html) => _blink.BlinkElement.instance.insertAdjacentHTML_Callback_2_(unwrap_jso(this), where, html);
+  void _insertAdjacentHtml(String position, String text) => _blink.BlinkElement.instance.insertAdjacentHTML_Callback_2_(unwrap_jso(this), position, text);
   
   @DomName('Element.insertAdjacentText')
   @DocsEditable()
@@ -15745,6 +16829,38 @@
   @Experimental() // untriaged
   void requestPointerLock() => _blink.BlinkElement.instance.requestPointerLock_Callback_0_(unwrap_jso(this));
   
+  void scroll([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _blink.BlinkElement.instance.scroll_Callback_0_(unwrap_jso(this));
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      _blink.BlinkElement.instance.scroll_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
+      return;
+    }
+    if ((y is num) && (options_OR_x is num)) {
+      _blink.BlinkElement.instance.scroll_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void scrollBy([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _blink.BlinkElement.instance.scrollBy_Callback_0_(unwrap_jso(this));
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      _blink.BlinkElement.instance.scrollBy_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
+      return;
+    }
+    if ((y is num) && (options_OR_x is num)) {
+      _blink.BlinkElement.instance.scrollBy_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   void _scrollIntoView([bool alignWithTop]) {
     if (alignWithTop != null) {
       _blink.BlinkElement.instance.scrollIntoView_Callback_1_(unwrap_jso(this), alignWithTop);
@@ -15763,13 +16879,43 @@
     return;
   }
 
+  void scrollTo([options_OR_x, num y]) {
+    if (options_OR_x == null && y == null) {
+      _blink.BlinkElement.instance.scrollTo_Callback_0_(unwrap_jso(this));
+      return;
+    }
+    if ((options_OR_x is Map) && y == null) {
+      _blink.BlinkElement.instance.scrollTo_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
+      return;
+    }
+    if ((y is num) && (options_OR_x is num)) {
+      _blink.BlinkElement.instance.scrollTo_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), y);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('Element.setAttribute')
   @DocsEditable()
   void setAttribute(String name, String value) => _blink.BlinkElement.instance.setAttribute_Callback_2_(unwrap_jso(this), name, value);
   
   @DomName('Element.setAttributeNS')
   @DocsEditable()
-  void setAttributeNS(String namespaceURI, String qualifiedName, String value) => _blink.BlinkElement.instance.setAttributeNS_Callback_3_(unwrap_jso(this), namespaceURI, qualifiedName, value);
+  void setAttributeNS(String namespaceURI, String name, String value) => _blink.BlinkElement.instance.setAttributeNS_Callback_3_(unwrap_jso(this), namespaceURI, name, value);
+  
+  @DomName('Element.after')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void after(Object nodes) => _blink.BlinkElement.instance.after_Callback_1_(unwrap_jso(this), nodes);
+  
+  @DomName('Element.before')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void before(Object nodes) => _blink.BlinkElement.instance.before_Callback_1_(unwrap_jso(this), nodes);
+  
+  @DomName('Element.remove')
+  @DocsEditable()
+  void remove() => _blink.BlinkElement.instance.remove_Callback_0_(unwrap_jso(this));
   
   @DomName('Element.nextElementSibling')
   @DocsEditable()
@@ -15779,10 +16925,6 @@
   @DocsEditable()
   Element get previousElementSibling => wrap_jso(_blink.BlinkElement.instance.previousElementSibling_Getter_(unwrap_jso(this)));
   
-  @DomName('Element.remove')
-  @DocsEditable()
-  void remove() => _blink.BlinkElement.instance.remove_Callback_0_(unwrap_jso(this));
-  
   @DomName('Element.childElementCount')
   @DocsEditable()
   int get _childElementCount => _blink.BlinkElement.instance.childElementCount_Getter_(unwrap_jso(this));
@@ -15876,12 +17018,12 @@
   /// Stream of `copy` events handled by this [Element].
   @DomName('Element.oncopy')
   @DocsEditable()
-  ElementStream<Event> get onCopy => copyEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onCopy => copyEvent.forElement(this);
 
   /// Stream of `cut` events handled by this [Element].
   @DomName('Element.oncut')
   @DocsEditable()
-  ElementStream<Event> get onCut => cutEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onCut => cutEvent.forElement(this);
 
   /// Stream of `doubleclick` events handled by this [Element].
   @DomName('Element.ondblclick')
@@ -16129,7 +17271,7 @@
   /// Stream of `paste` events handled by this [Element].
   @DomName('Element.onpaste')
   @DocsEditable()
-  ElementStream<Event> get onPaste => pasteEvent.forElement(this);
+  ElementStream<ClipboardEvent> get onPaste => pasteEvent.forElement(this);
 
   @DomName('Element.onpause')
   @DocsEditable()
@@ -16365,16 +17507,6 @@
   @DocsEditable()
   set height(String value) => _blink.BlinkHTMLEmbedElement.instance.height_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLEmbedElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLEmbedElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLEmbedElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLEmbedElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLEmbedElement.name')
   @DocsEditable()
   String get name => _blink.BlinkHTMLEmbedElement.instance.name_Getter_(unwrap_jso(this));
@@ -16623,6 +17755,16 @@
   // To suppress missing implicit constructor warnings.
   factory ErrorEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ErrorEvent.ErrorEvent')
+  @DocsEditable()
+  factory ErrorEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkErrorEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkErrorEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static ErrorEvent internalCreateErrorEvent() {
@@ -16716,8 +17858,16 @@
     } while (target != null && target != currentTarget.parent);
     throw new StateError('No selector matched for populating matchedTarget.');
   }
-  // To suppress missing implicit constructor warnings.
-  factory Event._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('Event.Event')
+  @DocsEditable()
+  factory Event._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkEvent.instance.constructorCallback_1_(type));
+  }
 
   @Deprecated("Internal Use Only")
   static Event internalCreateEvent() {
@@ -16779,24 +17929,6 @@
   @DocsEditable()
   bool get cancelable => _blink.BlinkEvent.instance.cancelable_Getter_(unwrap_jso(this));
   
-  /**
-   * Access to the system's clipboard data during copy, cut, and paste events.
-   *
-   * ## Other resources
-   *
-   * * [clipboardData specification](http://www.w3.org/TR/clipboard-apis/#attributes)
-   *   from W3C.
-   */
-  @DomName('Event.clipboardData')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  // Part of copy/paste
-  @Experimental() // nonstandard
-  DataTransfer get clipboardData => wrap_jso(_blink.BlinkEvent.instance.clipboardData_Getter_(unwrap_jso(this)));
-  
   @DomName('Event.currentTarget')
   @DocsEditable()
   EventTarget get currentTarget => wrap_jso(_blink.BlinkEvent.instance.currentTarget_Getter_(unwrap_jso(this)));
@@ -16822,7 +17954,7 @@
   @DocsEditable()
   // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
   @Experimental()
-  List<Node> get path => wrap_jso(_blink.BlinkEvent.instance.path_Getter_(unwrap_jso(this)));
+  List<EventTarget> get path => wrap_jso(_blink.BlinkEvent.instance.path_Getter_(unwrap_jso(this)));
   
   @DomName('Event.target')
   @DocsEditable()
@@ -16838,7 +17970,7 @@
   
   @DomName('Event.initEvent')
   @DocsEditable()
-  void _initEvent(String eventTypeArg, bool canBubbleArg, bool cancelableArg) => _blink.BlinkEvent.instance.initEvent_Callback_3_(unwrap_jso(this), eventTypeArg, canBubbleArg, cancelableArg);
+  void _initEvent(String type, bool bubbles, bool cancelable) => _blink.BlinkEvent.instance.initEvent_Callback_3_(unwrap_jso(this), type, bubbles, cancelable);
   
   @DomName('Event.preventDefault')
   @DocsEditable()
@@ -16903,10 +18035,10 @@
 
   @DomName('EventSource.EventSource')
   @DocsEditable()
-  static EventSource _factoryEventSource(String url, [Map eventSourceInit]) {
-    if (eventSourceInit != null) {
-      var eventSourceInit_1 = convertDartToNative_Dictionary(eventSourceInit);
-      return wrap_jso(_blink.BlinkEventSource.instance.constructorCallback_2_(url, eventSourceInit_1));
+  static EventSource _factoryEventSource(String url, [Map eventSourceInitDict]) {
+    if (eventSourceInitDict != null) {
+      var eventSourceInitDict_1 = convertDartToNative_Dictionary(eventSourceInitDict);
+      return wrap_jso(_blink.BlinkEventSource.instance.constructorCallback_2_(url, eventSourceInitDict_1));
     }
     return wrap_jso(_blink.BlinkEventSource.instance.constructorCallback_1_(url));
   }
@@ -17110,44 +18242,18 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  void _addEventListener([String type, EventListener listener, bool useCapture]) {
-    if (useCapture != null) {
-      _blink.BlinkEventTarget.instance.addEventListener_Callback_3_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)), useCapture);
-      return;
-    }
-    if (listener != null) {
-      _blink.BlinkEventTarget.instance.addEventListener_Callback_2_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)));
-      return;
-    }
-    if (type != null) {
-      _blink.BlinkEventTarget.instance.addEventListener_Callback_1_(unwrap_jso(this), type);
-      return;
-    }
-    _blink.BlinkEventTarget.instance.addEventListener_Callback_0_(unwrap_jso(this));
-    return;
-  }
-
+  @DomName('EventTarget.addEventListener')
+  @DocsEditable()
+  void _addEventListener(String type, EventListener listener, [bool capture]) => _blink.BlinkEventTarget.instance.addEventListener_Callback_3_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)), capture);
+  
   @DomName('EventTarget.dispatchEvent')
   @DocsEditable()
   bool dispatchEvent(Event event) => _blink.BlinkEventTarget.instance.dispatchEvent_Callback_1_(unwrap_jso(this), unwrap_jso(event));
   
-  void _removeEventListener([String type, EventListener listener, bool useCapture]) {
-    if (useCapture != null) {
-      _blink.BlinkEventTarget.instance.removeEventListener_Callback_3_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)), useCapture);
-      return;
-    }
-    if (listener != null) {
-      _blink.BlinkEventTarget.instance.removeEventListener_Callback_2_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)));
-      return;
-    }
-    if (type != null) {
-      _blink.BlinkEventTarget.instance.removeEventListener_Callback_1_(unwrap_jso(this), type);
-      return;
-    }
-    _blink.BlinkEventTarget.instance.removeEventListener_Callback_0_(unwrap_jso(this));
-    return;
-  }
-
+  @DomName('EventTarget.removeEventListener')
+  @DocsEditable()
+  void _removeEventListener(String type, EventListener listener, [bool capture]) => _blink.BlinkEventTarget.instance.removeEventListener_Callback_3_(unwrap_jso(this), type, unwrap_jso(js.allowInterop(listener)), capture);
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -17163,6 +18269,16 @@
   // To suppress missing implicit constructor warnings.
   factory ExtendableEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ExtendableEvent.ExtendableEvent')
+  @DocsEditable()
+  factory ExtendableEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkExtendableEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkExtendableEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static ExtendableEvent internalCreateExtendableEvent() {
@@ -17197,8 +18313,9 @@
 
   @DomName('FederatedCredential.FederatedCredential')
   @DocsEditable()
-  factory FederatedCredential(String id, String name, String avatarURL, String federation) {
-    return wrap_jso(_blink.BlinkFederatedCredential.instance.constructorCallback_4_(id, name, avatarURL, federation));
+  factory FederatedCredential(Map data) {
+    var data_1 = convertDartToNative_Dictionary(data);
+    return wrap_jso(_blink.BlinkFederatedCredential.instance.constructorCallback_1_(data_1));
   }
 
 
@@ -17213,10 +18330,15 @@
   FederatedCredential.internal_() : super.internal_();
 
 
-  @DomName('FederatedCredential.federation')
+  @DomName('FederatedCredential.protocol')
   @DocsEditable()
   @Experimental() // untriaged
-  String get federation => _blink.BlinkFederatedCredential.instance.federation_Getter_(unwrap_jso(this));
+  String get protocol => _blink.BlinkFederatedCredential.instance.protocol_Getter_(unwrap_jso(this));
+  
+  @DomName('FederatedCredential.provider')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get provider => _blink.BlinkFederatedCredential.instance.provider_Getter_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -17229,10 +18351,20 @@
 @DocsEditable()
 @DomName('FetchEvent')
 @Experimental() // untriaged
-class FetchEvent extends Event {
+class FetchEvent extends ExtendableEvent {
   // To suppress missing implicit constructor warnings.
   factory FetchEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('FetchEvent.FetchEvent')
+  @DocsEditable()
+  factory FetchEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkFetchEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkFetchEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static FetchEvent internalCreateFetchEvent() {
@@ -17307,7 +18439,7 @@
   
   @DomName('HTMLFieldSetElement.elements')
   @DocsEditable()
-  List<Node> get elements => wrap_jso(_blink.BlinkHTMLFieldSetElement.instance.elements_Getter_(unwrap_jso(this)));
+  HtmlFormControlsCollection get elements => wrap_jso(_blink.BlinkHTMLFieldSetElement.instance.elements_Getter_(unwrap_jso(this)));
   
   @DomName('HTMLFieldSetElement.form')
   @DocsEditable()
@@ -17341,6 +18473,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLFieldSetElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLFieldSetElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLFieldSetElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLFieldSetElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) => _blink.BlinkHTMLFieldSetElement.instance.setCustomValidity_Callback_1_(unwrap_jso(this), error);
@@ -17359,6 +18496,16 @@
   // To suppress missing implicit constructor warnings.
   factory File._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('File.File')
+  @DocsEditable()
+  factory File(List<Object> fileBits, String fileName, [Map options]) {
+    if (options != null) {
+      var options_1 = convertDartToNative_Dictionary(options);
+      return wrap_jso(_blink.BlinkFile.instance.constructorCallback_3_(fileBits, fileName, options_1));
+    }
+    return wrap_jso(_blink.BlinkFile.instance.constructorCallback_2_(fileBits, fileName));
+  }
+
 
   @Deprecated("Internal Use Only")
   static File internalCreateFile() {
@@ -17765,9 +18912,9 @@
   @DocsEditable()
   void readAsDataUrl(Blob blob) => _blink.BlinkFileReader.instance.readAsDataURL_Callback_1_(unwrap_jso(this), unwrap_jso(blob));
   
-  void readAsText(Blob blob, [String encoding]) {
-    if (encoding != null) {
-      _blink.BlinkFileReader.instance.readAsText_Callback_2_(unwrap_jso(this), unwrap_jso(blob), encoding);
+  void readAsText(Blob blob, [String label]) {
+    if (label != null) {
+      _blink.BlinkFileReader.instance.readAsText_Callback_2_(unwrap_jso(this), unwrap_jso(blob), label);
       return;
     }
     _blink.BlinkFileReader.instance.readAsText_Callback_1_(unwrap_jso(this), unwrap_jso(blob));
@@ -18080,6 +19227,16 @@
   // To suppress missing implicit constructor warnings.
   factory FocusEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('FocusEvent.FocusEvent')
+  @DocsEditable()
+  factory FocusEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkFocusEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkFocusEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static FocusEvent internalCreateFocusEvent() {
@@ -18113,29 +19270,12 @@
 
   @DomName('FontFace.FontFace')
   @DocsEditable()
-  factory FontFace(String family, source, [Map descriptors]) {
-    if ((source is String || source == null) && (family is String || family == null) && descriptors == null) {
-      return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_2_(family, source));
-    }
-    if ((descriptors is Map || descriptors == null) && (source is String || source == null) && (family is String || family == null)) {
+  factory FontFace(String family, Object source, [Map descriptors]) {
+    if (descriptors != null) {
       var descriptors_1 = convertDartToNative_Dictionary(descriptors);
       return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_3_(family, source, descriptors_1));
     }
-    if ((source is TypedData || source == null) && (family is String || family == null) && descriptors == null) {
-      return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_2_(family, source));
-    }
-    if ((descriptors is Map || descriptors == null) && (source is TypedData || source == null) && (family is String || family == null)) {
-      var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_3_(family, source, descriptors_1));
-    }
-    if ((source is ByteBuffer || source == null) && (family is String || family == null) && descriptors == null) {
-      return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_2_(family, source));
-    }
-    if ((descriptors is Map || descriptors == null) && (source is ByteBuffer || source == null) && (family is String || family == null)) {
-      var descriptors_1 = convertDartToNative_Dictionary(descriptors);
-      return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_3_(family, source, descriptors_1));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkFontFace.instance.constructorCallback_2_(family, source));
   }
 
   @Deprecated("Internal Use Only")
@@ -18404,6 +19544,42 @@
   @DocsEditable()
   void appendBlob(String name, Blob value, [String filename]) => _blink.BlinkFormData.instance.append_Callback_3_(unwrap_jso(this), name, unwrap_jso(value), filename);
   
+  @DomName('FormData.delete')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void delete(String name) => _blink.BlinkFormData.instance.delete_Callback_1_(unwrap_jso(this), name);
+  
+  @DomName('FormData.get')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get(String name) => wrap_jso(_blink.BlinkFormData.instance.get_Callback_1_(unwrap_jso(this), name));
+  
+  @DomName('FormData.getAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Object> getAll(String name) => _blink.BlinkFormData.instance.getAll_Callback_1_(unwrap_jso(this), name);
+  
+  @DomName('FormData.has')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool has(String name) => _blink.BlinkFormData.instance.has_Callback_1_(unwrap_jso(this), name);
+  
+  void set(String name, value, [String filename]) {
+    if ((value is Blob || value == null) && (name is String || name == null) && filename == null) {
+      _blink.BlinkFormData.instance.set_Callback_2_(unwrap_jso(this), name, unwrap_jso(value));
+      return;
+    }
+    if ((filename is String || filename == null) && (value is Blob || value == null) && (name is String || name == null)) {
+      _blink.BlinkFormData.instance.set_Callback_3_(unwrap_jso(this), name, unwrap_jso(value), filename);
+      return;
+    }
+    if ((value is String || value == null) && (name is String || name == null) && filename == null) {
+      _blink.BlinkFormData.instance.set_Callback_2_(unwrap_jso(this), name, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -18520,20 +19696,24 @@
   @DocsEditable()
   set target(String value) => _blink.BlinkHTMLFormElement.instance.target_Setter_(unwrap_jso(this), value);
   
-  Element __getter__(index_OR_name) {
-    if ((index_OR_name is int || index_OR_name == null)) {
-      return wrap_jso(_blink.BlinkHTMLFormElement.instance.$__getter___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name)));
-    }
-    if ((index_OR_name is String || index_OR_name == null)) {
-      return wrap_jso(_blink.BlinkHTMLFormElement.instance.$__getter___Callback_1_(unwrap_jso(this), unwrap_jso(index_OR_name)));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
+  @DomName('HTMLFormElement.__getter__')
+  @DocsEditable()
+  Object __getter__(String name) => wrap_jso(_blink.BlinkHTMLFormElement.instance.$__getter___Callback_1_(unwrap_jso(this), name));
+  
   @DomName('HTMLFormElement.checkValidity')
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLFormElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLFormElement.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element item(int index) => wrap_jso(_blink.BlinkHTMLFormElement.instance.item_Callback_1_(unwrap_jso(this), index));
+  
+  @DomName('HTMLFormElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLFormElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLFormElement.requestAutocomplete')
   @DocsEditable()
   // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
@@ -18556,6 +19736,16 @@
 // WARNING: Do not edit - generated code.
 
 
+@DomName('FrameRequestCallback')
+@Experimental() // untriaged
+typedef void FrameRequestCallback(num highResTime);
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
 @DocsEditable()
 @DomName('Gamepad')
 // https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepad-interface
@@ -18583,6 +19773,10 @@
   @DocsEditable()
   List<num> get axes => wrap_jso(_blink.BlinkGamepad.instance.axes_Getter_(unwrap_jso(this)));
   
+  @DomName('Gamepad.buttons')
+  @DocsEditable()
+  List<GamepadButton> get buttons => wrap_jso(_blink.BlinkGamepad.instance.buttons_Getter_(unwrap_jso(this)));
+  
   @DomName('Gamepad.connected')
   @DocsEditable()
   @Experimental() // untriaged
@@ -18660,6 +19854,16 @@
   // To suppress missing implicit constructor warnings.
   factory GamepadEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('GamepadEvent.GamepadEvent')
+  @DocsEditable()
+  factory GamepadEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkGamepadEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkGamepadEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static GamepadEvent internalCreateGamepadEvent() {
@@ -18731,6 +19935,43 @@
 
 
 @DocsEditable()
+@DomName('GeofencingEvent')
+@Experimental() // untriaged
+class GeofencingEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory GeofencingEvent._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static GeofencingEvent internalCreateGeofencingEvent() {
+    return new GeofencingEvent._internalWrap();
+  }
+
+  external factory GeofencingEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  GeofencingEvent.internal_() : super.internal_();
+
+
+  @DomName('GeofencingEvent.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get id => _blink.BlinkGeofencingEvent.instance.id_Getter_(unwrap_jso(this));
+  
+  @DomName('GeofencingEvent.region')
+  @DocsEditable()
+  @Experimental() // untriaged
+  GeofencingRegion get region => wrap_jso(_blink.BlinkGeofencingEvent.instance.region_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('GeofencingRegion')
 @Experimental() // untriaged
 class GeofencingRegion extends DartHtmlDomObject {
@@ -19535,8 +20776,16 @@
     return event;
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory HashChangeEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('HashChangeEvent.HashChangeEvent')
+  @DocsEditable()
+  factory HashChangeEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkHashChangeEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkHashChangeEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -19622,13 +20871,16 @@
     if (input == null) {
       return wrap_jso(_blink.BlinkHeaders.instance.constructorCallback_0_());
     }
-    if ((input is Headers || input == null)) {
+    if ((input is Headers)) {
       return wrap_jso(_blink.BlinkHeaders.instance.constructorCallback_1_(input));
     }
-    if ((input is Map || input == null)) {
+    if ((input is Map)) {
       var input_1 = convertDartToNative_Dictionary(input);
       return wrap_jso(_blink.BlinkHeaders.instance.constructorCallback_1_(input_1));
     }
+    if ((input is List<Object>)) {
+      return wrap_jso(_blink.BlinkHeaders.instance.constructorCallback_1_(input));
+    }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
@@ -19647,20 +20899,6 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('Headers.size')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get size => _blink.BlinkHeaders.instance.size_Getter_(unwrap_jso(this));
-  
-  void forEach(HeadersForEachCallback callback, [Object thisArg]) {
-    if (thisArg != null) {
-      _blink.BlinkHeaders.instance.forEach_Callback_2_(unwrap_jso(this), unwrap_jso((String value, String key, map) => callback(value, key, wrap_jso(map))), thisArg);
-      return;
-    }
-    _blink.BlinkHeaders.instance.forEach_Callback_1_(unwrap_jso(this), unwrap_jso((String value, String key, map) => callback(value, key, wrap_jso(map))));
-    return;
-  }
-
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -19669,16 +20907,6 @@
 // WARNING: Do not edit - generated code.
 
 
-@DomName('HeadersForEachCallback')
-@Experimental() // untriaged
-typedef void HeadersForEachCallback(String value, String key, Headers map);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
 @DocsEditable()
 @DomName('HTMLHeadingElement')
 class HeadingElement extends HtmlElement {
@@ -19768,6 +20996,11 @@
   @DocsEditable()
   int get length => _blink.BlinkHistory.instance.length_Getter_(unwrap_jso(this));
   
+  @DomName('History.options')
+  @DocsEditable()
+  @Experimental() // untriaged
+   get options => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkHistory.instance.options_Getter_(unwrap_jso(this))));
+  
   @DomName('History.state')
   @DocsEditable()
   dynamic get state => wrap_jso(_blink.BlinkHistory.instance.state_Getter_(unwrap_jso(this)));
@@ -19780,26 +21013,78 @@
   @DocsEditable()
   void forward() => _blink.BlinkHistory.instance.forward_Callback_0_(unwrap_jso(this));
   
-  @DomName('History.go')
-  @DocsEditable()
-  void go(int distance) => _blink.BlinkHistory.instance.go_Callback_1_(unwrap_jso(this), distance);
-  
-  @DomName('History.pushState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void pushState(Object data, String title, [String url]) => _blink.BlinkHistory.instance.pushState_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url);
-  
-  @DomName('History.replaceState')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.FIREFOX)
-  @SupportedBrowser(SupportedBrowser.IE, '10')
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  void replaceState(Object data, String title, [String url]) => _blink.BlinkHistory.instance.replaceState_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url);
+  void go([int delta]) {
+    if (delta != null) {
+      _blink.BlinkHistory.instance.go_Callback_1_(unwrap_jso(this), delta);
+      return;
+    }
+    _blink.BlinkHistory.instance.go_Callback_0_(unwrap_jso(this));
+    return;
   }
+
+  void pushState(/*SerializedScriptValue*/ data, String title, String url, [Map options]) {
+    if (options != null) {
+      _blink.BlinkHistory.instance.pushState_Callback_4_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url, convertDartToNative_Dictionary(options));
+      return;
+    }
+    _blink.BlinkHistory.instance.pushState_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url);
+    return;
+  }
+
+  void replaceState(/*SerializedScriptValue*/ data, String title, String url, [Map options]) {
+    if (options != null) {
+      _blink.BlinkHistory.instance.replaceState_Callback_4_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url, convertDartToNative_Dictionary(options));
+      return;
+    }
+    _blink.BlinkHistory.instance.replaceState_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(data), title, url);
+    return;
+  }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('HMDVRDevice')
+@Experimental() // untriaged
+class HmdvrDevice extends VRDevice {
+  // To suppress missing implicit constructor warnings.
+  factory HmdvrDevice._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static HmdvrDevice internalCreateHmdvrDevice() {
+    return new HmdvrDevice._internalWrap();
+  }
+
+  external factory HmdvrDevice._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  HmdvrDevice.internal_() : super.internal_();
+
+
+  @DomName('HMDVRDevice.getEyeParameters')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VREyeParameters getEyeParameters(String whichEye) => wrap_jso(_blink.BlinkHMDVRDevice.instance.getEyeParameters_Callback_1_(unwrap_jso(this), whichEye));
+  
+  void setFieldOfView([VRFieldOfView leftFov, VRFieldOfView rightFov]) {
+    if (rightFov != null) {
+      _blink.BlinkHMDVRDevice.instance.setFieldOfView_Callback_2_(unwrap_jso(this), unwrap_jso(leftFov), unwrap_jso(rightFov));
+      return;
+    }
+    if (leftFov != null) {
+      _blink.BlinkHMDVRDevice.instance.setFieldOfView_Callback_1_(unwrap_jso(this), unwrap_jso(leftFov));
+      return;
+    }
+    _blink.BlinkHMDVRDevice.instance.setFieldOfView_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+}
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -20759,11 +22044,6 @@
   @DocsEditable()
   set hidden(bool value) => _blink.BlinkHTMLElement.instance.hidden_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLElement.inputMethodContext')
-  @DocsEditable()
-  @Experimental() // untriaged
-  InputMethodContext get inputMethodContext => wrap_jso(_blink.BlinkHTMLElement.instance.inputMethodContext_Getter_(unwrap_jso(this)));
-  
   @DomName('HTMLElement.isContentEditable')
   @DocsEditable()
   bool get isContentEditable => _blink.BlinkHTMLElement.instance.isContentEditable_Getter_(unwrap_jso(this));
@@ -20788,6 +22068,11 @@
   @Experimental() // nonstandard
   set spellcheck(bool value) => _blink.BlinkHTMLElement.instance.spellcheck_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLElement.style')
+  @DocsEditable()
+  @Experimental() // untriaged
+  CssStyleDeclaration get style => wrap_jso(_blink.BlinkHTMLElement.instance.style_Getter_(unwrap_jso(this)));
+  
   @DomName('HTMLElement.tabIndex')
   @DocsEditable()
   int get tabIndex => _blink.BlinkHTMLElement.instance.tabIndex_Getter_(unwrap_jso(this));
@@ -20828,10 +22113,20 @@
   // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dropzone-attribute
   set dropzone(String value) => _blink.BlinkHTMLElement.instance.webkitdropzone_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLElement.blur')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blur() => _blink.BlinkHTMLElement.instance.blur_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLElement.click')
   @DocsEditable()
   void click() => _blink.BlinkHTMLElement.instance.click_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLElement.focus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void focus() => _blink.BlinkHTMLElement.instance.focus_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLElement.onabort')
   @DocsEditable()
   @Experimental() // untriaged
@@ -21130,6 +22425,11 @@
   HtmlFormControlsCollection.internal_() : super.internal_();
 
 
+  @DomName('HTMLFormControlsCollection.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Node item(int index) => wrap_jso(_blink.BlinkHTMLFormControlsCollection.instance.item_Callback_1_(unwrap_jso(this), index));
+  
   @DomName('HTMLFormControlsCollection.namedItem')
   @DocsEditable()
   Object namedItem(String name) => wrap_jso(_blink.BlinkHTMLFormControlsCollection.instance.namedItem_Callback_1_(unwrap_jso(this), name));
@@ -21196,6 +22496,11 @@
   HtmlOptionsCollection.internal_() : super.internal_();
 
 
+  @DomName('HTMLOptionsCollection.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Node _item(int index) => wrap_jso(_blink.BlinkHTMLOptionsCollection.instance.item_Callback_1_(unwrap_jso(this), index));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -21589,10 +22894,9 @@
    */
   @DomName('XMLHttpRequest.XMLHttpRequest')
   @DocsEditable()
-  factory HttpRequest() => wrap_jso(_create());
-
-  @DocsEditable()
-  static HttpRequest _create() => wrap_jso(_blink.BlinkXMLHttpRequest.instance.constructorCallback_0_());
+  factory HttpRequest() {
+    return wrap_jso(_blink.BlinkXMLHttpRequest.instance.constructorCallback_0_());
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -21850,7 +23154,7 @@
   @DomName('XMLHttpRequest.getResponseHeader')
   @DocsEditable()
   @Unstable()
-  String getResponseHeader(String header) => _blink.BlinkXMLHttpRequest.instance.getResponseHeader_Callback_1_(unwrap_jso(this), header);
+  String getResponseHeader(String name) => _blink.BlinkXMLHttpRequest.instance.getResponseHeader_Callback_1_(unwrap_jso(this), name);
   
   /**
    * Specify a particular MIME type (such as `text/xml`) desired for the
@@ -21864,25 +23168,44 @@
   @SupportedBrowser(SupportedBrowser.CHROME)
   @SupportedBrowser(SupportedBrowser.FIREFOX)
   @SupportedBrowser(SupportedBrowser.SAFARI)
-  void overrideMimeType(String override) => _blink.BlinkXMLHttpRequest.instance.overrideMimeType_Callback_1_(unwrap_jso(this), override);
+  void overrideMimeType(String mime) => _blink.BlinkXMLHttpRequest.instance.overrideMimeType_Callback_1_(unwrap_jso(this), mime);
   
-  /**
-   * Send the request with any given `data`.
-   *
-   * Note: Most simple HTTP requests can be accomplished using the [getString],
-   * [request], [requestCrossOrigin], or [postFormData] methods. Use of this
-   * `send` method is intended only for more complext HTTP requests where
-   * finer-grained control is needed.
-   *
-   * ## Other resources
-   *
-   * * [XMLHttpRequest.send](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#send%28%29)
-   *   from MDN.
-   */
-  @DomName('XMLHttpRequest.send')
-  @DocsEditable()
-  void send([data]) => _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
-  
+  void send([body_OR_data]) {
+    if (body_OR_data != null) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is TypedData || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is ByteBuffer || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is Document || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is String || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is FormData || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if ((body_OR_data is Blob || body_OR_data == null)) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(body_OR_data));
+      return;
+    }
+    if (body_OR_data == null) {
+      _blink.BlinkXMLHttpRequest.instance.send_Callback_0_(unwrap_jso(this));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   /**
    * Sets the value of an HTTP requst header.
    *
@@ -21902,7 +23225,7 @@
    */
   @DomName('XMLHttpRequest.setRequestHeader')
   @DocsEditable()
-  void setRequestHeader(String header, String value) => _blink.BlinkXMLHttpRequest.instance.setRequestHeader_Callback_2_(unwrap_jso(this), header, value);
+  void setRequestHeader(String name, String value) => _blink.BlinkXMLHttpRequest.instance.setRequestHeader_Callback_2_(unwrap_jso(this), name, value);
   
   /// Stream of `readystatechange` events handled by this [HttpRequest].
 /**
@@ -22153,16 +23476,6 @@
   @DocsEditable()
   set height(String value) => _blink.BlinkHTMLIFrameElement.instance.height_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLIFrameElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLIFrameElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLIFrameElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLIFrameElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLIFrameElement.name')
   @DocsEditable()
   String get name => _blink.BlinkHTMLIFrameElement.instance.name_Getter_(unwrap_jso(this));
@@ -22173,11 +23486,7 @@
   
   @DomName('HTMLIFrameElement.sandbox')
   @DocsEditable()
-  String get sandbox => _blink.BlinkHTMLIFrameElement.instance.sandbox_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLIFrameElement.sandbox')
-  @DocsEditable()
-  set sandbox(String value) => _blink.BlinkHTMLIFrameElement.instance.sandbox_Setter_(unwrap_jso(this), value);
+  DomSettableTokenList get sandbox => wrap_jso(_blink.BlinkHTMLIFrameElement.instance.sandbox_Getter_(unwrap_jso(this)));
   
   @DomName('HTMLIFrameElement.src')
   @DocsEditable()
@@ -22264,12 +23573,15 @@
 
   @DomName('ImageData.ImageData')
   @DocsEditable()
-  factory ImageData(data_OR_width, int height_OR_width, [int height]) {
-    if ((height_OR_width is int || height_OR_width == null) && (data_OR_width is int || data_OR_width == null) && height == null) {
-      return wrap_jso(_blink.BlinkImageData.instance.constructorCallback_2_(data_OR_width, height_OR_width));
+  factory ImageData(data_OR_sw, int sh_OR_sw, [int sh]) {
+    if ((sh_OR_sw is int) && (data_OR_sw is int) && sh == null) {
+      return wrap_jso(_blink.BlinkImageData.instance.constructorCallback_2_(data_OR_sw, sh_OR_sw));
     }
-    if ((height is int || height == null) && (height_OR_width is int || height_OR_width == null) && (data_OR_width is Uint8ClampedList || data_OR_width == null)) {
-      return wrap_jso(_blink.BlinkImageData.instance.constructorCallback_3_(data_OR_width, height_OR_width, height));
+    if ((sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList) && sh == null) {
+      return wrap_jso(_blink.BlinkImageData.instance.constructorCallback_2_(data_OR_sw, sh_OR_sw));
+    }
+    if ((sh is int) && (sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList)) {
+      return wrap_jso(_blink.BlinkImageData.instance.constructorCallback_3_(data_OR_sw, sh_OR_sw, sh));
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
@@ -22291,7 +23603,7 @@
 
   @DomName('ImageData.data')
   @DocsEditable()
-  Uint8ClampedList get _data => _blink.BlinkImageData.instance.data_Getter_(unwrap_jso(this));
+  Uint8ClampedList get _data => wrap_jso(_blink.BlinkImageData.instance.data_Getter_(unwrap_jso(this)));
   
   @DomName('ImageData.height')
   @DocsEditable()
@@ -22373,16 +23685,6 @@
   @DocsEditable()
   set height(int value) => _blink.BlinkHTMLImageElement.instance.height_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLImageElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLImageElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLImageElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLImageElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLImageElement.isMap')
   @DocsEditable()
   bool get isMap => _blink.BlinkHTMLImageElement.instance.isMap_Getter_(unwrap_jso(this));
@@ -22483,6 +23785,51 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('InputDevice')
+@Experimental() // untriaged
+class InputDevice extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory InputDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('InputDevice.InputDevice')
+  @DocsEditable()
+  factory InputDevice([Map deviceInitDict]) {
+    if (deviceInitDict != null) {
+      var deviceInitDict_1 = convertDartToNative_Dictionary(deviceInitDict);
+      return wrap_jso(_blink.BlinkInputDevice.instance.constructorCallback_1_(deviceInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkInputDevice.instance.constructorCallback_0_());
+  }
+
+  @Deprecated("Internal Use Only")
+  static InputDevice internalCreateInputDevice() {
+    return new InputDevice._internalWrap();
+  }
+
+  factory InputDevice._internalWrap() {
+    return new InputDevice.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  InputDevice.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('InputDevice.firesTouchEvents')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get firesTouchEvents => _blink.BlinkInputDevice.instance.firesTouchEvents_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 
 @DomName('HTMLInputElement')
 class InputElement extends HtmlElement implements
@@ -22556,6 +23903,16 @@
   @DocsEditable()
   set alt(String value) => _blink.BlinkHTMLInputElement.instance.alt_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLInputElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get autocapitalize => _blink.BlinkHTMLInputElement.instance.autocapitalize_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLInputElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set autocapitalize(String value) => _blink.BlinkHTMLInputElement.instance.autocapitalize_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLInputElement.autocomplete')
   @DocsEditable()
   String get autocomplete => _blink.BlinkHTMLInputElement.instance.autocomplete_Getter_(unwrap_jso(this));
@@ -22744,6 +24101,16 @@
   @DocsEditable()
   set min(String value) => _blink.BlinkHTMLInputElement.instance.min_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLInputElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get minLength => _blink.BlinkHTMLInputElement.instance.minLength_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLInputElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set minLength(int value) => _blink.BlinkHTMLInputElement.instance.minLength_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLInputElement.multiple')
   @DocsEditable()
   bool get multiple => _blink.BlinkHTMLInputElement.instance.multiple_Getter_(unwrap_jso(this));
@@ -22920,6 +24287,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLInputElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLInputElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLInputElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLInputElement.select')
   @DocsEditable()
   void select() => _blink.BlinkHTMLInputElement.instance.select_Callback_0_(unwrap_jso(this));
@@ -23531,94 +24903,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('InputMethodContext')
-// http://www.w3.org/TR/ime-api/#idl-def-InputMethodContext
-@Experimental()
-class InputMethodContext extends EventTarget {
-  // To suppress missing implicit constructor warnings.
-  factory InputMethodContext._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static InputMethodContext internalCreateInputMethodContext() {
-    return new InputMethodContext._internalWrap();
-  }
-
-  external factory InputMethodContext._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  InputMethodContext.internal_() : super.internal_();
-
-
-  @DomName('InputMethodContext.compositionEndOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get compositionEndOffset => _blink.BlinkInputMethodContext.instance.compositionEndOffset_Getter_(unwrap_jso(this));
-  
-  @DomName('InputMethodContext.compositionStartOffset')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int get compositionStartOffset => _blink.BlinkInputMethodContext.instance.compositionStartOffset_Getter_(unwrap_jso(this));
-  
-  @DomName('InputMethodContext.locale')
-  @DocsEditable()
-  String get locale => _blink.BlinkInputMethodContext.instance.locale_Getter_(unwrap_jso(this));
-  
-  @DomName('InputMethodContext.target')
-  @DocsEditable()
-  @Experimental() // untriaged
-  HtmlElement get target => wrap_jso(_blink.BlinkInputMethodContext.instance.target_Getter_(unwrap_jso(this)));
-  
-  @DomName('InputMethodContext.confirmComposition')
-  @DocsEditable()
-  void confirmComposition() => _blink.BlinkInputMethodContext.instance.confirmComposition_Callback_0_(unwrap_jso(this));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('InstallEvent')
-@Experimental() // untriaged
-class InstallEvent extends ExtendableEvent {
-  // To suppress missing implicit constructor warnings.
-  factory InstallEvent._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static InstallEvent internalCreateInstallEvent() {
-    return new InstallEvent._internalWrap();
-  }
-
-  external factory InstallEvent._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  InstallEvent.internal_() : super.internal_();
-
-
-  @DomName('InstallEvent.reloadAll')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future reloadAll() => wrap_jso(_blink.BlinkInstallEvent.instance.reloadAll_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('InstallEvent.replace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void replace() => _blink.BlinkInstallEvent.instance.replace_Callback_0_(unwrap_jso(this));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
 
 @DomName('KeyboardEvent')
 class KeyboardEvent extends UIEvent {
@@ -23641,8 +24925,19 @@
 
   @DomName('KeyboardEvent.charCode')
   int get charCode => _charCode;
-  // To suppress missing implicit constructor warnings.
-  factory KeyboardEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('KeyboardEvent.which')
+  int get which => _which;
+
+  @DomName('KeyboardEvent.KeyboardEvent')
+  @DocsEditable()
+  factory KeyboardEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkKeyboardEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkKeyboardEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -23680,10 +24975,20 @@
   @DocsEditable()
   bool get altKey => _blink.BlinkKeyboardEvent.instance.altKey_Getter_(unwrap_jso(this));
   
+  @DomName('KeyboardEvent.code')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get code => _blink.BlinkKeyboardEvent.instance.code_Getter_(unwrap_jso(this));
+  
   @DomName('KeyboardEvent.ctrlKey')
   @DocsEditable()
   bool get ctrlKey => _blink.BlinkKeyboardEvent.instance.ctrlKey_Getter_(unwrap_jso(this));
   
+  @DomName('KeyboardEvent.key')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get key => _blink.BlinkKeyboardEvent.instance.key_Getter_(unwrap_jso(this));
+  
   @DomName('KeyboardEvent.keyIdentifier')
   @DocsEditable()
   @Experimental() // nonstandard
@@ -23715,11 +25020,11 @@
   @DomName('KeyboardEvent.getModifierState')
   @DocsEditable()
   @Experimental() // untriaged
-  bool getModifierState(String keyArgument) => _blink.BlinkKeyboardEvent.instance.getModifierState_Callback_1_(unwrap_jso(this), keyArgument);
+  bool getModifierState(String keyArg) => _blink.BlinkKeyboardEvent.instance.getModifierState_Callback_1_(unwrap_jso(this), keyArg);
   
   @DomName('KeyboardEvent.initKeyboardEvent')
   @DocsEditable()
-  void _initKeyboardEvent(String type, bool canBubble, bool cancelable, Window view, String keyIdentifier, int location, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) => _blink.BlinkKeyboardEvent.instance.initKeyboardEvent_Callback_10_(unwrap_jso(this), type, canBubble, cancelable, unwrap_jso(view), keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
+  void _initKeyboardEvent(String type, bool bubbles, bool cancelable, Window view, String keyIdentifier, int location, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) => _blink.BlinkKeyboardEvent.instance.initKeyboardEvent_Callback_10_(unwrap_jso(this), type, bubbles, cancelable, unwrap_jso(view), keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -23730,6 +25035,49 @@
 
 
 @DocsEditable()
+@DomName('KeyframeEffect')
+@Experimental() // untriaged
+class KeyframeEffect extends AnimationEffectReadOnly {
+  // To suppress missing implicit constructor warnings.
+  factory KeyframeEffect._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('KeyframeEffect.KeyframeEffect')
+  @DocsEditable()
+  factory KeyframeEffect(Element target, List<Map> keyframes, [timing]) {
+    if ((keyframes is List<Map>) && (target is Element || target == null) && timing == null) {
+      return wrap_jso(_blink.BlinkKeyframeEffect.instance.constructorCallback_2_(target, keyframes));
+    }
+    if ((timing is num) && (keyframes is List<Map>) && (target is Element || target == null)) {
+      return wrap_jso(_blink.BlinkKeyframeEffect.instance.constructorCallback_3_(target, keyframes, timing));
+    }
+    if ((timing is Map) && (keyframes is List<Map>) && (target is Element || target == null)) {
+      var timing_1 = convertDartToNative_Dictionary(timing);
+      return wrap_jso(_blink.BlinkKeyframeEffect.instance.constructorCallback_3_(target, keyframes, timing_1));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static KeyframeEffect internalCreateKeyframeEffect() {
+    return new KeyframeEffect._internalWrap();
+  }
+
+  external factory KeyframeEffect._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  KeyframeEffect.internal_() : super.internal_();
+
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('HTMLKeygenElement')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
@@ -23833,6 +25181,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLKeygenElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLKeygenElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLKeygenElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLKeygenElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) => _blink.BlinkHTMLKeygenElement.instance.setCustomValidity_Callback_1_(unwrap_jso(this), error);
@@ -24095,44 +25448,6 @@
     return true;
   }
 }
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('LocalCredential')
-@Experimental() // untriaged
-class LocalCredential extends Credential {
-  // To suppress missing implicit constructor warnings.
-  factory LocalCredential._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('LocalCredential.LocalCredential')
-  @DocsEditable()
-  factory LocalCredential(String id, String name, String avatarURL, String password) {
-    return wrap_jso(_blink.BlinkLocalCredential.instance.constructorCallback_4_(id, name, avatarURL, password));
-  }
-
-
-  @Deprecated("Internal Use Only")
-  static LocalCredential internalCreateLocalCredential() {
-    return new LocalCredential._internalWrap();
-  }
-
-  external factory LocalCredential._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  LocalCredential.internal_() : super.internal_();
-
-
-  @DomName('LocalCredential.password')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get password => _blink.BlinkLocalCredential.instance.password_Getter_(unwrap_jso(this));
-  
-}
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -24260,27 +25575,6 @@
 // WARNING: Do not edit - generated code.
 
 
-@DomName('MIDIErrorCallback')
-// http://webaudio.github.io/web-midi-api/#midierrorcallback
-@Experimental()
-typedef void MidiErrorCallback(DomError error);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DomName('MIDISuccessCallback')
-@Experimental() // untriaged
-typedef void MidiSuccessCallback(MidiAccess access, bool sysex);
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
 @DocsEditable()
 @DomName('HTMLMapElement')
 class MapElement extends HtmlElement {
@@ -24489,9 +25783,39 @@
 // WARNING: Do not edit - generated code.
 
 
-@DomName('MediaDeviceInfoCallback')
+@DocsEditable()
+@DomName('MediaDevices')
 @Experimental() // untriaged
-typedef void MediaDeviceInfoCallback(List<MediaDeviceInfo> devices);
+class MediaDevices extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory MediaDevices._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static MediaDevices internalCreateMediaDevices() {
+    return new MediaDevices._internalWrap();
+  }
+
+  factory MediaDevices._internalWrap() {
+    return new MediaDevices.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  MediaDevices.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('MediaDevices.enumerateDevices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future enumerateDevices() => wrap_jso(_blink.BlinkMediaDevices.instance.enumerateDevices_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('MediaDevices.getUserMedia')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getUserMedia(Map options) => wrap_jso(_blink.BlinkMediaDevices.instance.getUserMedia_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+  
+}
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -24699,16 +26023,6 @@
   @DocsEditable()
   MediaError get error => wrap_jso(_blink.BlinkHTMLMediaElement.instance.error_Getter_(unwrap_jso(this)));
   
-  @DomName('HTMLMediaElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLMediaElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLMediaElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLMediaElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLMediaElement.loop')
   @DocsEditable()
   bool get loop => _blink.BlinkHTMLMediaElement.instance.loop_Getter_(unwrap_jso(this));
@@ -24779,6 +26093,21 @@
   @DocsEditable()
   bool get seeking => _blink.BlinkHTMLMediaElement.instance.seeking_Getter_(unwrap_jso(this));
   
+  @DomName('HTMLMediaElement.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  MediaSession get session => wrap_jso(_blink.BlinkHTMLMediaElement.instance.session_Getter_(unwrap_jso(this)));
+  
+  @DomName('HTMLMediaElement.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set session(MediaSession value) => _blink.BlinkHTMLMediaElement.instance.session_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
+  @DomName('HTMLMediaElement.sinkId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get sinkId => _blink.BlinkHTMLMediaElement.instance.sinkId_Getter_(unwrap_jso(this));
+  
   @DomName('HTMLMediaElement.src')
   @DocsEditable()
   String get src => _blink.BlinkHTMLMediaElement.instance.src_Getter_(unwrap_jso(this));
@@ -24833,10 +26162,16 @@
   }
 
   String canPlayType(String type, [String keySystem]) {
-    if (keySystem != null) {
+    if ((type is String) && keySystem == null) {
+      return _blink.BlinkHTMLMediaElement.instance.canPlayType_Callback_1_(unwrap_jso(this), type);
+    }
+    if ((type is String || type == null) && keySystem == null) {
+      return _blink.BlinkHTMLMediaElement.instance.canPlayType_Callback_1_(unwrap_jso(this), type);
+    }
+    if ((keySystem is String || keySystem == null) && (type is String || type == null)) {
       return _blink.BlinkHTMLMediaElement.instance.canPlayType_Callback_2_(unwrap_jso(this), type, keySystem);
     }
-    return _blink.BlinkHTMLMediaElement.instance.canPlayType_Callback_1_(unwrap_jso(this), type);
+    throw new ArgumentError("Incorrect number or type of arguments");
   }
 
   @DomName('HTMLMediaElement.load')
@@ -24856,12 +26191,17 @@
   @Experimental() // untriaged
   Future setMediaKeys(MediaKeys mediaKeys) => wrap_jso(_blink.BlinkHTMLMediaElement.instance.setMediaKeys_Callback_1_(unwrap_jso(this), unwrap_jso(mediaKeys)));
   
+  @DomName('HTMLMediaElement.setSinkId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future setSinkId(String sinkId) => wrap_jso(_blink.BlinkHTMLMediaElement.instance.setSinkId_Callback_1_(unwrap_jso(this), sinkId));
+  
   void addKey(String keySystem, Uint8List key, [Uint8List initData, String sessionId]) {
     if (initData != null) {
-      _blink.BlinkHTMLMediaElement.instance.webkitAddKey_Callback_4_(unwrap_jso(this), keySystem, key, initData, sessionId);
+      _blink.BlinkHTMLMediaElement.instance.webkitAddKey_Callback_4_(unwrap_jso(this), keySystem, unwrap_jso(key), unwrap_jso(initData), sessionId);
       return;
     }
-    _blink.BlinkHTMLMediaElement.instance.webkitAddKey_Callback_2_(unwrap_jso(this), keySystem, key);
+    _blink.BlinkHTMLMediaElement.instance.webkitAddKey_Callback_2_(unwrap_jso(this), keySystem, unwrap_jso(key));
     return;
   }
 
@@ -24875,7 +26215,7 @@
   
   void generateKeyRequest(String keySystem, [Uint8List initData]) {
     if (initData != null) {
-      _blink.BlinkHTMLMediaElement.instance.webkitGenerateKeyRequest_Callback_2_(unwrap_jso(this), keySystem, initData);
+      _blink.BlinkHTMLMediaElement.instance.webkitGenerateKeyRequest_Callback_2_(unwrap_jso(this), keySystem, unwrap_jso(initData));
       return;
     }
     _blink.BlinkHTMLMediaElement.instance.webkitGenerateKeyRequest_Callback_1_(unwrap_jso(this), keySystem);
@@ -24919,6 +26259,53 @@
 
 
 @DocsEditable()
+@DomName('MediaEncryptedEvent')
+@Experimental() // untriaged
+class MediaEncryptedEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory MediaEncryptedEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaEncryptedEvent.MediaEncryptedEvent')
+  @DocsEditable()
+  factory MediaEncryptedEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMediaEncryptedEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMediaEncryptedEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static MediaEncryptedEvent internalCreateMediaEncryptedEvent() {
+    return new MediaEncryptedEvent._internalWrap();
+  }
+
+  external factory MediaEncryptedEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  MediaEncryptedEvent.internal_() : super.internal_();
+
+
+  @DomName('MediaEncryptedEvent.initData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ByteBuffer get initData => wrap_jso(_blink.BlinkMediaEncryptedEvent.instance.initData_Getter_(unwrap_jso(this)));
+  
+  @DomName('MediaEncryptedEvent.initDataType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get initDataType => _blink.BlinkMediaEncryptedEvent.instance.initDataType_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('MediaError')
 @Unstable()
 class MediaError extends DartHtmlDomObject {
@@ -24948,12 +26335,6 @@
   @DocsEditable()
   static const int MEDIA_ERR_DECODE = 3;
 
-  @DomName('MediaError.MEDIA_ERR_ENCRYPTED')
-  @DocsEditable()
-  // https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#error-codes
-  @Experimental()
-  static const int MEDIA_ERR_ENCRYPTED = 5;
-
   @DomName('MediaError.MEDIA_ERR_NETWORK')
   @DocsEditable()
   static const int MEDIA_ERR_NETWORK = 2;
@@ -25046,6 +26427,16 @@
   // To suppress missing implicit constructor warnings.
   factory MediaKeyEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaKeyEvent.MediaKeyEvent')
+  @DocsEditable()
+  factory MediaKeyEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMediaKeyEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMediaKeyEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MediaKeyEvent internalCreateMediaKeyEvent() {
@@ -25068,7 +26459,7 @@
   
   @DomName('MediaKeyEvent.initData')
   @DocsEditable()
-  Uint8List get initData => _blink.BlinkMediaKeyEvent.instance.initData_Getter_(unwrap_jso(this));
+  Uint8List get initData => wrap_jso(_blink.BlinkMediaKeyEvent.instance.initData_Getter_(unwrap_jso(this)));
   
   @DomName('MediaKeyEvent.keySystem')
   @DocsEditable()
@@ -25076,7 +26467,7 @@
   
   @DomName('MediaKeyEvent.message')
   @DocsEditable()
-  Uint8List get message => _blink.BlinkMediaKeyEvent.instance.message_Getter_(unwrap_jso(this));
+  Uint8List get message => wrap_jso(_blink.BlinkMediaKeyEvent.instance.message_Getter_(unwrap_jso(this)));
   
   @DomName('MediaKeyEvent.sessionId')
   @DocsEditable()
@@ -25102,6 +26493,16 @@
   // To suppress missing implicit constructor warnings.
   factory MediaKeyMessageEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaKeyMessageEvent.MediaKeyMessageEvent')
+  @DocsEditable()
+  factory MediaKeyMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMediaKeyMessageEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMediaKeyMessageEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MediaKeyMessageEvent internalCreateMediaKeyMessageEvent() {
@@ -25114,50 +26515,14 @@
   MediaKeyMessageEvent.internal_() : super.internal_();
 
 
-  @DomName('MediaKeyMessageEvent.destinationURL')
-  @DocsEditable()
-  String get destinationUrl => _blink.BlinkMediaKeyMessageEvent.instance.destinationURL_Getter_(unwrap_jso(this));
-  
   @DomName('MediaKeyMessageEvent.message')
   @DocsEditable()
-  ByteBuffer get message => _blink.BlinkMediaKeyMessageEvent.instance.message_Getter_(unwrap_jso(this));
+  ByteBuffer get message => wrap_jso(_blink.BlinkMediaKeyMessageEvent.instance.message_Getter_(unwrap_jso(this)));
   
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('MediaKeyNeededEvent')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeyneededevent
-@Experimental()
-class MediaKeyNeededEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory MediaKeyNeededEvent._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static MediaKeyNeededEvent internalCreateMediaKeyNeededEvent() {
-    return new MediaKeyNeededEvent._internalWrap();
-  }
-
-  external factory MediaKeyNeededEvent._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  MediaKeyNeededEvent.internal_() : super.internal_();
-
-
-  @DomName('MediaKeyNeededEvent.contentType')
+  @DomName('MediaKeyMessageEvent.messageType')
   @DocsEditable()
   @Experimental() // untriaged
-  String get contentType => _blink.BlinkMediaKeyNeededEvent.instance.contentType_Getter_(unwrap_jso(this));
-  
-  @DomName('MediaKeyNeededEvent.initData')
-  @DocsEditable()
-  Uint8List get initData => _blink.BlinkMediaKeyNeededEvent.instance.initData_Getter_(unwrap_jso(this));
+  String get messageType => _blink.BlinkMediaKeyMessageEvent.instance.messageType_Getter_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -25192,43 +26557,123 @@
   @Experimental() // untriaged
   Future get closed => wrap_jso(_blink.BlinkMediaKeySession.instance.closed_Getter_(unwrap_jso(this)));
   
-  @DomName('MediaKeySession.error')
+  @DomName('MediaKeySession.expiration')
   @DocsEditable()
-  MediaKeyError get error => wrap_jso(_blink.BlinkMediaKeySession.instance.error_Getter_(unwrap_jso(this)));
+  @Experimental() // untriaged
+  num get expiration => _blink.BlinkMediaKeySession.instance.expiration_Getter_(unwrap_jso(this));
   
-  @DomName('MediaKeySession.keySystem')
+  @DomName('MediaKeySession.keyStatuses')
   @DocsEditable()
-  String get keySystem => _blink.BlinkMediaKeySession.instance.keySystem_Getter_(unwrap_jso(this));
+  @Experimental() // untriaged
+  MediaKeyStatusMap get keyStatuses => wrap_jso(_blink.BlinkMediaKeySession.instance.keyStatuses_Getter_(unwrap_jso(this)));
   
   @DomName('MediaKeySession.sessionId')
   @DocsEditable()
   String get sessionId => _blink.BlinkMediaKeySession.instance.sessionId_Getter_(unwrap_jso(this));
   
-  Future generateRequest(String initDataType, initData) {
-    if ((initData is TypedData) && (initDataType is String)) {
-      return wrap_jso(_blink.BlinkMediaKeySession.instance.generateRequest_Callback_2_(unwrap_jso(this), initDataType, unwrap_jso(initData)));
-    }
-    if ((initData is ByteBuffer) && (initDataType is String)) {
-      return wrap_jso(_blink.BlinkMediaKeySession.instance.generateRequest_Callback_2_(unwrap_jso(this), initDataType, unwrap_jso(initData)));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
-  }
-
-  @DomName('MediaKeySession.release')
+  @DomName('MediaKeySession.close')
+  @DocsEditable()
+  Future close() => wrap_jso(_blink.BlinkMediaKeySession.instance.close_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('MediaKeySession.generateRequest')
   @DocsEditable()
   @Experimental() // untriaged
-  Future release() => wrap_jso(_blink.BlinkMediaKeySession.instance.release_Callback_0_(unwrap_jso(this)));
+  Future generateRequest(String initDataType, /*BufferSource*/ initData) => wrap_jso(_blink.BlinkMediaKeySession.instance.generateRequest_Callback_2_(unwrap_jso(this), initDataType, initData));
   
-  Future _update(response) {
-    if ((response is TypedData)) {
-      return wrap_jso(_blink.BlinkMediaKeySession.instance.update_Callback_1_(unwrap_jso(this), unwrap_jso(response)));
-    }
-    if ((response is ByteBuffer)) {
-      return wrap_jso(_blink.BlinkMediaKeySession.instance.update_Callback_1_(unwrap_jso(this), unwrap_jso(response)));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+  @DomName('MediaKeySession.load')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future load(String sessionId) => wrap_jso(_blink.BlinkMediaKeySession.instance.load_Callback_1_(unwrap_jso(this), sessionId));
+  
+  @DomName('MediaKeySession.remove')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future remove() => wrap_jso(_blink.BlinkMediaKeySession.instance.remove_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('MediaKeySession.update')
+  @DocsEditable()
+  Future _update(/*BufferSource*/ response) => wrap_jso(_blink.BlinkMediaKeySession.instance.update_Callback_1_(unwrap_jso(this), response));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('MediaKeyStatusMap')
+@Experimental() // untriaged
+class MediaKeyStatusMap extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory MediaKeyStatusMap._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static MediaKeyStatusMap internalCreateMediaKeyStatusMap() {
+    return new MediaKeyStatusMap._internalWrap();
   }
 
+  factory MediaKeyStatusMap._internalWrap() {
+    return new MediaKeyStatusMap.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  MediaKeyStatusMap.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('MediaKeyStatusMap.size')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get size => _blink.BlinkMediaKeyStatusMap.instance.size_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('MediaKeySystemAccess')
+@Experimental() // untriaged
+class MediaKeySystemAccess extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory MediaKeySystemAccess._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static MediaKeySystemAccess internalCreateMediaKeySystemAccess() {
+    return new MediaKeySystemAccess._internalWrap();
+  }
+
+  factory MediaKeySystemAccess._internalWrap() {
+    return new MediaKeySystemAccess.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  MediaKeySystemAccess.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('MediaKeySystemAccess.keySystem')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get keySystem => _blink.BlinkMediaKeySystemAccess.instance.keySystem_Getter_(unwrap_jso(this));
+  
+  @DomName('MediaKeySystemAccess.createMediaKeys')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future createMediaKeys() => wrap_jso(_blink.BlinkMediaKeySystemAccess.instance.createMediaKeys_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('MediaKeySystemAccess.getConfiguration')
+  @DocsEditable()
+  @Experimental() // untriaged
+   getConfiguration() => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkMediaKeySystemAccess.instance.getConfiguration_Callback_0_(unwrap_jso(this))));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -25260,15 +26705,6 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('MediaKeys.keySystem')
-  @DocsEditable()
-  String get keySystem => _blink.BlinkMediaKeys.instance.keySystem_Getter_(unwrap_jso(this));
-  
-  @DomName('MediaKeys.create')
-  @DocsEditable()
-  @Experimental() // untriaged
-  static Future create(String keySystem) => wrap_jso(_blink.BlinkMediaKeys.instance.create_Callback_1_(keySystem));
-  
   MediaKeySession _createSession([String sessionType]) {
     if (sessionType != null) {
       return wrap_jso(_blink.BlinkMediaKeys.instance.createSession_Callback_1_(unwrap_jso(this), sessionType));
@@ -25276,10 +26712,10 @@
     return wrap_jso(_blink.BlinkMediaKeys.instance.createSession_Callback_0_(unwrap_jso(this)));
   }
 
-  @DomName('MediaKeys.isTypeSupported')
+  @DomName('MediaKeys.setServerCertificate')
   @DocsEditable()
   @Experimental() // untriaged
-  static bool isTypeSupported(String keySystem, String contentType) => _blink.BlinkMediaKeys.instance.isTypeSupported_Callback_2_(keySystem, contentType);
+  Future setServerCertificate(/*BufferSource*/ serverCertificate) => wrap_jso(_blink.BlinkMediaKeys.instance.setServerCertificate_Callback_1_(unwrap_jso(this), serverCertificate));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -25325,11 +26761,11 @@
   
   @DomName('MediaList.appendMedium')
   @DocsEditable()
-  void appendMedium(String newMedium) => _blink.BlinkMediaList.instance.appendMedium_Callback_1_(unwrap_jso(this), newMedium);
+  void appendMedium(String medium) => _blink.BlinkMediaList.instance.appendMedium_Callback_1_(unwrap_jso(this), medium);
   
   @DomName('MediaList.deleteMedium')
   @DocsEditable()
-  void deleteMedium(String oldMedium) => _blink.BlinkMediaList.instance.deleteMedium_Callback_1_(unwrap_jso(this), oldMedium);
+  void deleteMedium(String medium) => _blink.BlinkMediaList.instance.deleteMedium_Callback_1_(unwrap_jso(this), medium);
   
   @DomName('MediaList.item')
   @DocsEditable()
@@ -25403,6 +26839,16 @@
   // To suppress missing implicit constructor warnings.
   factory MediaQueryListEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaQueryListEvent.MediaQueryListEvent')
+  @DocsEditable()
+  factory MediaQueryListEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMediaQueryListEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMediaQueryListEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MediaQueryListEvent internalCreateMediaQueryListEvent() {
@@ -25434,6 +26880,52 @@
 
 
 @DocsEditable()
+@DomName('MediaSession')
+@Experimental() // untriaged
+class MediaSession extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory MediaSession._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MediaSession.MediaSession')
+  @DocsEditable()
+  factory MediaSession() {
+    return wrap_jso(_blink.BlinkMediaSession.instance.constructorCallback_0_());
+  }
+
+  @Deprecated("Internal Use Only")
+  static MediaSession internalCreateMediaSession() {
+    return new MediaSession._internalWrap();
+  }
+
+  factory MediaSession._internalWrap() {
+    return new MediaSession.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  MediaSession.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('MediaSession.activate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void activate() => _blink.BlinkMediaSession.instance.activate_Callback_0_(unwrap_jso(this));
+  
+  @DomName('MediaSession.deactivate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deactivate() => _blink.BlinkMediaSession.instance.deactivate_Callback_0_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('MediaSource')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.IE, '11')
@@ -25576,6 +27068,11 @@
   MediaStream.internal_() : super.internal_();
 
 
+  @DomName('MediaStream.active')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get active => _blink.BlinkMediaStream.instance.active_Getter_(unwrap_jso(this));
+  
   @DomName('MediaStream.ended')
   @DocsEditable()
   bool get ended => _blink.BlinkMediaStream.instance.ended_Getter_(unwrap_jso(this));
@@ -25664,6 +27161,16 @@
   // To suppress missing implicit constructor warnings.
   factory MediaStreamEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MediaStreamEvent.MediaStreamEvent')
+  @DocsEditable()
+  factory MediaStreamEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMediaStreamEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMediaStreamEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MediaStreamEvent internalCreateMediaStreamEvent() {
@@ -26025,6 +27532,16 @@
   @Experimental() // untriaged
   set disabled(bool value) => _blink.BlinkHTMLMenuItemElement.instance.disabled_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLMenuItemElement.icon')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get icon => _blink.BlinkHTMLMenuItemElement.instance.icon_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLMenuItemElement.icon')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set icon(String value) => _blink.BlinkHTMLMenuItemElement.instance.icon_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLMenuItemElement.label')
   @DocsEditable()
   @Experimental() // untriaged
@@ -26035,6 +27552,16 @@
   @Experimental() // untriaged
   set label(String value) => _blink.BlinkHTMLMenuItemElement.instance.label_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLMenuItemElement.radiogroup')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get radiogroup => _blink.BlinkHTMLMenuItemElement.instance.radiogroup_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLMenuItemElement.radiogroup')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set radiogroup(String value) => _blink.BlinkHTMLMenuItemElement.instance.radiogroup_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLMenuItemElement.type')
   @DocsEditable()
   @Experimental() // untriaged
@@ -26105,8 +27632,26 @@
         lastEventId, source, messagePorts);
     return event;
   }
-  // To suppress missing implicit constructor warnings.
-  factory MessageEvent._() { throw new UnsupportedError("Not supported"); }
+
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
+  @DomName('MessageEvent.data')
+  @DocsEditable()
+  dynamic get data => convertNativeToDart_SerializedScriptValue(
+      _blink.BlinkMessageEvent.instance.data_Getter_(unwrap_jso(this)));
+
+
+
+  @DomName('MessageEvent.MessageEvent')
+  @DocsEditable()
+  factory MessageEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMessageEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMessageEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -26120,14 +27665,6 @@
   MessageEvent.internal_() : super.internal_();
 
 
-  @DomName('MessageEvent.data')
-  @DocsEditable()
-  // TODO(alanknight): This really should be generated by the
-  // _OutputConversion in the systemnative.py script, but that doesn't
-  // use those conversions right now, so do this as a one-off.
-  dynamic get data => convertNativeToDart_SerializedScriptValue(
-      _blink.BlinkMessageEvent.instance.data_Getter_(unwrap_jso(this)));
-
   @DomName('MessageEvent.lastEventId')
   @DocsEditable()
   @Unstable()
@@ -26143,7 +27680,7 @@
   
   @DomName('MessageEvent.initMessageEvent')
   @DocsEditable()
-  void _initMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, List<MessagePort> messagePorts) => _blink.BlinkMessageEvent.instance.initMessageEvent_Callback_8_(unwrap_jso(this), typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, unwrap_jso(sourceArg), unwrap_jso(messagePorts));
+  void _initMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, List<MessagePort> portsArg) => _blink.BlinkMessageEvent.instance.initMessageEvent_Callback_8_(unwrap_jso(this), typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, unwrap_jso(sourceArg), unwrap_jso(portsArg));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -26186,10 +27723,15 @@
   @DocsEditable()
   void close() => _blink.BlinkMessagePort.instance.close_Callback_0_(unwrap_jso(this));
   
-  @DomName('MessagePort.postMessage')
-  @DocsEditable()
-  void postMessage(Object message, [List<MessagePort> transfer]) => _blink.BlinkMessagePort.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
-  
+  void postMessage(Object message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkMessagePort.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkMessagePort.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
   @DomName('MessagePort.start')
   @DocsEditable()
   void start() => _blink.BlinkMessagePort.instance.start_Callback_0_(unwrap_jso(this));
@@ -26421,26 +27963,6 @@
   // To suppress missing implicit constructor warnings.
   factory MidiAccess._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `connect` events to event
-   * handlers that are not necessarily instances of [MidiAccess].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIAccess.connectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> connectEvent = const EventStreamProvider<MidiConnectionEvent>('connect');
-
-  /**
-   * Static factory designed to expose `disconnect` events to event
-   * handlers that are not necessarily instances of [MidiAccess].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIAccess.disconnectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
-
 
   @Deprecated("Internal Use Only")
   static MidiAccess internalCreateMidiAccess() {
@@ -26466,16 +27988,6 @@
   @Experimental() // untriaged
   bool get sysexEnabled => _blink.BlinkMIDIAccess.instance.sysexEnabled_Getter_(unwrap_jso(this));
   
-  /// Stream of `connect` events handled by this [MidiAccess].
-  @DomName('MIDIAccess.onconnect')
-  @DocsEditable()
-  Stream<MidiConnectionEvent> get onConnect => connectEvent.forTarget(this);
-
-  /// Stream of `disconnect` events handled by this [MidiAccess].
-  @DomName('MIDIAccess.ondisconnect')
-  @DocsEditable()
-  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
-
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -26492,6 +28004,16 @@
   // To suppress missing implicit constructor warnings.
   factory MidiConnectionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MIDIConnectionEvent.MIDIConnectionEvent')
+  @DocsEditable()
+  factory MidiConnectionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMIDIConnectionEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMIDIConnectionEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MidiConnectionEvent internalCreateMidiConnectionEvent() {
@@ -26586,31 +28108,6 @@
   @Experimental() // untriaged
   int get size => _blink.BlinkMIDIInputMap.instance.size_Getter_(unwrap_jso(this));
   
-  @DomName('MIDIInputMap.entries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator entries() => wrap_jso(_blink.BlinkMIDIInputMap.instance.entries_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('MIDIInputMap.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object get(String id) => wrap_jso(_blink.BlinkMIDIInputMap.instance.get_Callback_1_(unwrap_jso(this), id));
-  
-  @DomName('MIDIInputMap.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String key) => _blink.BlinkMIDIInputMap.instance.has_Callback_1_(unwrap_jso(this), key);
-  
-  @DomName('MIDIInputMap.keys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator keys() => wrap_jso(_blink.BlinkMIDIInputMap.instance.keys_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('MIDIInputMap.values')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator values() => wrap_jso(_blink.BlinkMIDIInputMap.instance.values_Callback_0_(unwrap_jso(this)));
-  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -26627,6 +28124,16 @@
   // To suppress missing implicit constructor warnings.
   factory MidiMessageEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('MIDIMessageEvent.MIDIMessageEvent')
+  @DocsEditable()
+  factory MidiMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMIDIMessageEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMIDIMessageEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static MidiMessageEvent internalCreateMidiMessageEvent() {
@@ -26641,7 +28148,7 @@
 
   @DomName('MIDIMessageEvent.data')
   @DocsEditable()
-  Uint8List get data => _blink.BlinkMIDIMessageEvent.instance.data_Getter_(unwrap_jso(this));
+  Uint8List get data => wrap_jso(_blink.BlinkMIDIMessageEvent.instance.data_Getter_(unwrap_jso(this)));
   
   @DomName('MIDIMessageEvent.receivedTime')
   @DocsEditable()
@@ -26677,10 +28184,10 @@
 
   void send(Uint8List data, [num timestamp]) {
     if (timestamp != null) {
-      _blink.BlinkMIDIOutput.instance.send_Callback_2_(unwrap_jso(this), data, timestamp);
+      _blink.BlinkMIDIOutput.instance.send_Callback_2_(unwrap_jso(this), unwrap_jso(data), timestamp);
       return;
     }
-    _blink.BlinkMIDIOutput.instance.send_Callback_1_(unwrap_jso(this), data);
+    _blink.BlinkMIDIOutput.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
     return;
   }
 
@@ -26719,31 +28226,6 @@
   @Experimental() // untriaged
   int get size => _blink.BlinkMIDIOutputMap.instance.size_Getter_(unwrap_jso(this));
   
-  @DomName('MIDIOutputMap.entries')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator entries() => wrap_jso(_blink.BlinkMIDIOutputMap.instance.entries_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('MIDIOutputMap.get')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object get(String id) => wrap_jso(_blink.BlinkMIDIOutputMap.instance.get_Callback_1_(unwrap_jso(this), id));
-  
-  @DomName('MIDIOutputMap.has')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool has(String key) => _blink.BlinkMIDIOutputMap.instance.has_Callback_1_(unwrap_jso(this), key);
-  
-  @DomName('MIDIOutputMap.keys')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator keys() => wrap_jso(_blink.BlinkMIDIOutputMap.instance.keys_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('MIDIOutputMap.values')
-  @DocsEditable()
-  @Experimental() // untriaged
-  DomIterator values() => wrap_jso(_blink.BlinkMIDIOutputMap.instance.values_Callback_0_(unwrap_jso(this)));
-  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -26760,16 +28242,6 @@
   // To suppress missing implicit constructor warnings.
   factory MidiPort._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `disconnect` events to event
-   * handlers that are not necessarily instances of [MidiPort].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('MIDIPort.disconnectEvent')
-  @DocsEditable()
-  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
-
 
   @Deprecated("Internal Use Only")
   static MidiPort internalCreateMidiPort() {
@@ -26782,6 +28254,11 @@
   MidiPort.internal_() : super.internal_();
 
 
+  @DomName('MIDIPort.connection')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get connection => _blink.BlinkMIDIPort.instance.connection_Getter_(unwrap_jso(this));
+  
   @DomName('MIDIPort.id')
   @DocsEditable()
   String get id => _blink.BlinkMIDIPort.instance.id_Getter_(unwrap_jso(this));
@@ -26794,6 +28271,11 @@
   @DocsEditable()
   String get name => _blink.BlinkMIDIPort.instance.name_Getter_(unwrap_jso(this));
   
+  @DomName('MIDIPort.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get state => _blink.BlinkMIDIPort.instance.state_Getter_(unwrap_jso(this));
+  
   @DomName('MIDIPort.type')
   @DocsEditable()
   String get type => _blink.BlinkMIDIPort.instance.type_Getter_(unwrap_jso(this));
@@ -26802,11 +28284,16 @@
   @DocsEditable()
   String get version => _blink.BlinkMIDIPort.instance.version_Getter_(unwrap_jso(this));
   
-  /// Stream of `disconnect` events handled by this [MidiPort].
-  @DomName('MIDIPort.ondisconnect')
+  @DomName('MIDIPort.close')
   @DocsEditable()
-  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
-
+  @Experimental() // untriaged
+  Future close() => wrap_jso(_blink.BlinkMIDIPort.instance.close_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('MIDIPort.open')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future open() => wrap_jso(_blink.BlinkMIDIPort.instance.open_Callback_0_(unwrap_jso(this)));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -26933,18 +28420,20 @@
   MimeType elementAt(int index) => this[index];
   // -- end List<MimeType> mixins.
 
-  @DomName('MimeTypeArray.__getter__')
-  @DocsEditable()
-  MimeType __getter__(String name) => wrap_jso(_blink.BlinkMimeTypeArray.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
   @DomName('MimeTypeArray.item')
   @DocsEditable()
   MimeType item(int index) => wrap_jso(_blink.BlinkMimeTypeArray.instance.item_Callback_1_(unwrap_jso(this), index));
   
-  @DomName('MimeTypeArray.namedItem')
-  @DocsEditable()
-  MimeType namedItem(String name) => wrap_jso(_blink.BlinkMimeTypeArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
-  
+  MimeType namedItem(String name) {
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkMimeTypeArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkMimeTypeArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27019,8 +28508,16 @@
         button, relatedTarget);
     return event;
   }
-  // To suppress missing implicit constructor warnings.
-  factory MouseEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('MouseEvent.MouseEvent')
+  @DocsEditable()
+  factory MouseEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkMouseEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkMouseEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -27042,6 +28539,11 @@
   @DocsEditable()
   int get button => _blink.BlinkMouseEvent.instance.button_Getter_(unwrap_jso(this));
   
+  @DomName('MouseEvent.buttons')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get buttons => _blink.BlinkMouseEvent.instance.buttons_Getter_(unwrap_jso(this));
+  
   @DomName('MouseEvent.clientX')
   @DocsEditable()
   int get _clientX => _blink.BlinkMouseEvent.instance.clientX_Getter_(unwrap_jso(this));
@@ -27071,6 +28573,16 @@
   @deprecated
   Node get fromElement => wrap_jso(_blink.BlinkMouseEvent.instance.fromElement_Getter_(unwrap_jso(this)));
   
+  @DomName('MouseEvent.layerX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get _layerX => _blink.BlinkMouseEvent.instance.layerX_Getter_(unwrap_jso(this));
+  
+  @DomName('MouseEvent.layerY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get _layerY => _blink.BlinkMouseEvent.instance.layerY_Getter_(unwrap_jso(this));
+  
   @DomName('MouseEvent.metaKey')
   @DocsEditable()
   bool get metaKey => _blink.BlinkMouseEvent.instance.metaKey_Getter_(unwrap_jso(this));
@@ -27095,6 +28607,16 @@
   @Unstable()
   int get _offsetY => _blink.BlinkMouseEvent.instance.offsetY_Getter_(unwrap_jso(this));
   
+  @DomName('MouseEvent.pageX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get _pageX => _blink.BlinkMouseEvent.instance.pageX_Getter_(unwrap_jso(this));
+  
+  @DomName('MouseEvent.pageY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get _pageY => _blink.BlinkMouseEvent.instance.pageY_Getter_(unwrap_jso(this));
+  
   @DomName('MouseEvent.region')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27142,9 +28664,14 @@
   @Experimental()
   int get _webkitMovementY => _blink.BlinkMouseEvent.instance.webkitMovementY_Getter_(unwrap_jso(this));
   
+  @DomName('MouseEvent.which')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get _which => _blink.BlinkMouseEvent.instance.which_Getter_(unwrap_jso(this));
+  
   @DomName('MouseEvent.initMouseEvent')
   @DocsEditable()
-  void _initMouseEvent(String type, bool canBubble, bool cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, int button, EventTarget relatedTarget) => _blink.BlinkMouseEvent.instance.initMouseEvent_Callback_15_(unwrap_jso(this), type, canBubble, cancelable, unwrap_jso(view), detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, unwrap_jso(relatedTarget));
+  void _initMouseEvent(String type, bool bubbles, bool cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, int button, EventTarget relatedTarget) => _blink.BlinkMouseEvent.instance.initMouseEvent_Callback_15_(unwrap_jso(this), type, bubbles, cancelable, unwrap_jso(view), detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, unwrap_jso(relatedTarget));
   
 
   @deprecated
@@ -27187,6 +28714,14 @@
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
   Point get screen => new Point(_screenX, _screenY);
+
+  @DomName('MouseEvent.layerX')
+  @DomName('MouseEvent.layerY')
+  Point get layer => new Point(_layerX, _layerY);
+
+  @DomName('MouseEvent.pageX')
+  @DomName('MouseEvent.pageY')
+  Point get page => new Point(_pageX, _pageY);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27383,7 +28918,7 @@
 
 
 @DomName('Navigator')
-class Navigator extends DartHtmlDomObject implements NavigatorCpu, NavigatorLanguage, NavigatorOnLine, NavigatorID {
+class Navigator extends DartHtmlDomObject implements NavigatorStorageUtils, NavigatorCpu, NavigatorLanguage, NavigatorOnLine, NavigatorID {
 
 
   /**
@@ -27459,16 +28994,16 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
+  @DomName('Navigator.bluetooth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Bluetooth get bluetooth => wrap_jso(_blink.BlinkNavigator.instance.bluetooth_Getter_(unwrap_jso(this)));
+  
   @DomName('Navigator.connection')
   @DocsEditable()
   @Experimental() // untriaged
   NetworkInformation get connection => wrap_jso(_blink.BlinkNavigator.instance.connection_Getter_(unwrap_jso(this)));
   
-  @DomName('Navigator.cookieEnabled')
-  @DocsEditable()
-  @Unstable()
-  bool get cookieEnabled => _blink.BlinkNavigator.instance.cookieEnabled_Getter_(unwrap_jso(this));
-  
   @DomName('Navigator.credentials')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27480,11 +29015,6 @@
   @Experimental() // experimental
   String get doNotTrack => _blink.BlinkNavigator.instance.doNotTrack_Getter_(unwrap_jso(this));
   
-  @DomName('Navigator.geofencing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Geofencing get geofencing => wrap_jso(_blink.BlinkNavigator.instance.geofencing_Getter_(unwrap_jso(this)));
-  
   @DomName('Navigator.geolocation')
   @DocsEditable()
   @Unstable()
@@ -27495,11 +29025,21 @@
   @Experimental() // untriaged
   int get maxTouchPoints => _blink.BlinkNavigator.instance.maxTouchPoints_Getter_(unwrap_jso(this));
   
+  @DomName('Navigator.mediaDevices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  MediaDevices get mediaDevices => wrap_jso(_blink.BlinkNavigator.instance.mediaDevices_Getter_(unwrap_jso(this)));
+  
   @DomName('Navigator.mimeTypes')
   @DocsEditable()
   @Experimental() // nonstandard
   MimeTypeArray get mimeTypes => wrap_jso(_blink.BlinkNavigator.instance.mimeTypes_Getter_(unwrap_jso(this)));
   
+  @DomName('Navigator.permissions')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Permissions get permissions => wrap_jso(_blink.BlinkNavigator.instance.permissions_Getter_(unwrap_jso(this)));
+  
   @DomName('Navigator.presentation')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27510,16 +29050,16 @@
   @Unstable()
   String get productSub => _blink.BlinkNavigator.instance.productSub_Getter_(unwrap_jso(this));
   
-  @DomName('Navigator.push')
-  @DocsEditable()
-  @Experimental() // untriaged
-  PushManager get push => wrap_jso(_blink.BlinkNavigator.instance.push_Getter_(unwrap_jso(this)));
-  
   @DomName('Navigator.serviceWorker')
   @DocsEditable()
   @Experimental() // untriaged
   ServiceWorkerContainer get serviceWorker => wrap_jso(_blink.BlinkNavigator.instance.serviceWorker_Getter_(unwrap_jso(this)));
   
+  @DomName('Navigator.services')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ServicePortCollection get services => wrap_jso(_blink.BlinkNavigator.instance.services_Getter_(unwrap_jso(this)));
+  
   @DomName('Navigator.storageQuota')
   @DocsEditable()
   @Experimental() // untriaged
@@ -27561,33 +29101,33 @@
   @Experimental() // untriaged
   List<Gamepad> getGamepads() => wrap_jso(_blink.BlinkNavigator.instance.getGamepads_Callback_0_(unwrap_jso(this)));
   
-  @DomName('Navigator.getStorageUpdates')
+  @DomName('Navigator.getVRDevices')
   @DocsEditable()
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils
-  @Experimental()
-  void getStorageUpdates() => _blink.BlinkNavigator.instance.getStorageUpdates_Callback_0_(unwrap_jso(this));
+  @Experimental() // untriaged
+  Future getVRDevices() => wrap_jso(_blink.BlinkNavigator.instance.getVRDevices_Callback_0_(unwrap_jso(this)));
   
   @DomName('Navigator.registerProtocolHandler')
   @DocsEditable()
   @Unstable()
   void registerProtocolHandler(String scheme, String url, String title) => _blink.BlinkNavigator.instance.registerProtocolHandler_Callback_3_(unwrap_jso(this), scheme, url, title);
   
-  bool sendBeacon(String url, data) {
-    if ((data is String || data == null) && (url is String || url == null)) {
-      return _blink.BlinkNavigator.instance.sendBeacon_Callback_2_(unwrap_jso(this), url, unwrap_jso(data));
+  Future requestMidiAccess([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkNavigator.instance.requestMIDIAccess_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
     }
-    if ((data is TypedData || data == null) && (url is String || url == null)) {
-      return _blink.BlinkNavigator.instance.sendBeacon_Callback_2_(unwrap_jso(this), url, unwrap_jso(data));
-    }
-    if ((data is FormData || data == null) && (url is String || url == null)) {
-      return _blink.BlinkNavigator.instance.sendBeacon_Callback_2_(unwrap_jso(this), url, unwrap_jso(data));
-    }
-    if ((data is Blob || data == null) && (url is String || url == null)) {
-      return _blink.BlinkNavigator.instance.sendBeacon_Callback_2_(unwrap_jso(this), url, unwrap_jso(data));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkNavigator.instance.requestMIDIAccess_Callback_0_(unwrap_jso(this)));
   }
 
+  @DomName('Navigator.requestMediaKeySystemAccess')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future requestMediaKeySystemAccess(String keySystem, List<Map> supportedConfigurations) => wrap_jso(_blink.BlinkNavigator.instance.requestMediaKeySystemAccess_Callback_2_(unwrap_jso(this), keySystem, supportedConfigurations));
+  
+  @DomName('Navigator.sendBeacon')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool sendBeacon(String url, Object data) => _blink.BlinkNavigator.instance.sendBeacon_Callback_2_(unwrap_jso(this), url, data);
+  
   @DomName('Navigator.webkitGetUserMedia')
   @DocsEditable()
   // http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia
@@ -27644,6 +29184,17 @@
   @Unstable()
   bool get onLine => _blink.BlinkNavigator.instance.onLine_Getter_(unwrap_jso(this));
   
+  @DomName('Navigator.cookieEnabled')
+  @DocsEditable()
+  @Unstable()
+  bool get cookieEnabled => _blink.BlinkNavigator.instance.cookieEnabled_Getter_(unwrap_jso(this));
+  
+  @DomName('Navigator.getStorageUpdates')
+  @DocsEditable()
+  // http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils
+  @Experimental()
+  void getStorageUpdates() => _blink.BlinkNavigator.instance.getStorageUpdates_Callback_0_(unwrap_jso(this));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -27768,6 +29319,46 @@
 
 
 @DocsEditable()
+@DomName('NavigatorStorageUtils')
+@Experimental() // untriaged
+class NavigatorStorageUtils extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory NavigatorStorageUtils._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static NavigatorStorageUtils internalCreateNavigatorStorageUtils() {
+    return new NavigatorStorageUtils._internalWrap();
+  }
+
+  factory NavigatorStorageUtils._internalWrap() {
+    return new NavigatorStorageUtils.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  NavigatorStorageUtils.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('NavigatorStorageUtils.cookieEnabled')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get cookieEnabled => _blink.BlinkNavigatorStorageUtils.instance.cookieEnabled_Getter_(unwrap_jso(this));
+  
+  @DomName('NavigatorStorageUtils.getStorageUpdates')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void getStorageUpdates() => _blink.BlinkNavigatorStorageUtils.instance.getStorageUpdates_Callback_0_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('NavigatorUserMediaError')
 // http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaError
 @Experimental()
@@ -28392,7 +29983,7 @@
    */
   @DomName('Node.appendChild')
   @DocsEditable()
-  Node append(Node newChild) => wrap_jso(_blink.BlinkNode.instance.appendChild_Callback_1_(unwrap_jso(this), unwrap_jso(newChild)));
+  Node append(Node node) => wrap_jso(_blink.BlinkNode.instance.appendChild_Callback_1_(unwrap_jso(this), unwrap_jso(node)));
   
   /**
    * Returns a copy of this node.
@@ -28443,15 +30034,15 @@
    */
   @DomName('Node.insertBefore')
   @DocsEditable()
-  Node insertBefore(Node newChild, Node refChild) => wrap_jso(_blink.BlinkNode.instance.insertBefore_Callback_2_(unwrap_jso(this), unwrap_jso(newChild), unwrap_jso(refChild)));
+  Node insertBefore(Node node, Node child) => wrap_jso(_blink.BlinkNode.instance.insertBefore_Callback_2_(unwrap_jso(this), unwrap_jso(node), unwrap_jso(child)));
   
   @DomName('Node.removeChild')
   @DocsEditable()
-  Node _removeChild(Node oldChild) => wrap_jso(_blink.BlinkNode.instance.removeChild_Callback_1_(unwrap_jso(this), unwrap_jso(oldChild)));
+  Node _removeChild(Node child) => wrap_jso(_blink.BlinkNode.instance.removeChild_Callback_1_(unwrap_jso(this), unwrap_jso(child)));
   
   @DomName('Node.replaceChild')
   @DocsEditable()
-  Node _replaceChild(Node newChild, Node oldChild) => wrap_jso(_blink.BlinkNode.instance.replaceChild_Callback_2_(unwrap_jso(this), unwrap_jso(newChild), unwrap_jso(oldChild)));
+  Node _replaceChild(Node node, Node child) => wrap_jso(_blink.BlinkNode.instance.replaceChild_Callback_2_(unwrap_jso(this), unwrap_jso(node), unwrap_jso(child)));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -28501,31 +30092,31 @@
 
   @DomName('NodeFilter.SHOW_COMMENT')
   @DocsEditable()
-  static const int SHOW_COMMENT = 0x00000080;
+  static const int SHOW_COMMENT = 0x80;
 
   @DomName('NodeFilter.SHOW_DOCUMENT')
   @DocsEditable()
-  static const int SHOW_DOCUMENT = 0x00000100;
+  static const int SHOW_DOCUMENT = 0x100;
 
   @DomName('NodeFilter.SHOW_DOCUMENT_FRAGMENT')
   @DocsEditable()
-  static const int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+  static const int SHOW_DOCUMENT_FRAGMENT = 0x400;
 
   @DomName('NodeFilter.SHOW_DOCUMENT_TYPE')
   @DocsEditable()
-  static const int SHOW_DOCUMENT_TYPE = 0x00000200;
+  static const int SHOW_DOCUMENT_TYPE = 0x200;
 
   @DomName('NodeFilter.SHOW_ELEMENT')
   @DocsEditable()
-  static const int SHOW_ELEMENT = 0x00000001;
+  static const int SHOW_ELEMENT = 0x1;
 
   @DomName('NodeFilter.SHOW_PROCESSING_INSTRUCTION')
   @DocsEditable()
-  static const int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+  static const int SHOW_PROCESSING_INSTRUCTION = 0x40;
 
   @DomName('NodeFilter.SHOW_TEXT')
   @DocsEditable()
-  static const int SHOW_TEXT = 0x00000004;
+  static const int SHOW_TEXT = 0x4;
 
 }
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
@@ -28669,6 +30260,81 @@
   Node _item(int index) => wrap_jso(_blink.BlinkNodeList.instance.item_Callback_1_(unwrap_jso(this), index));
   
 }
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('NonDocumentTypeChildNode')
+@Experimental() // untriaged
+class NonDocumentTypeChildNode extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory NonDocumentTypeChildNode._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static NonDocumentTypeChildNode internalCreateNonDocumentTypeChildNode() {
+    return new NonDocumentTypeChildNode._internalWrap();
+  }
+
+  factory NonDocumentTypeChildNode._internalWrap() {
+    return new NonDocumentTypeChildNode.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  NonDocumentTypeChildNode.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('NonDocumentTypeChildNode.nextElementSibling')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element get nextElementSibling => wrap_jso(_blink.BlinkNonDocumentTypeChildNode.instance.nextElementSibling_Getter_(unwrap_jso(this)));
+  
+  @DomName('NonDocumentTypeChildNode.previousElementSibling')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element get previousElementSibling => wrap_jso(_blink.BlinkNonDocumentTypeChildNode.instance.previousElementSibling_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('NonElementParentNode')
+@Experimental() // untriaged
+class NonElementParentNode extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory NonElementParentNode._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static NonElementParentNode internalCreateNonElementParentNode() {
+    return new NonElementParentNode._internalWrap();
+  }
+
+  factory NonElementParentNode._internalWrap() {
+    return new NonElementParentNode.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  NonElementParentNode.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('NonElementParentNode.getElementById')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Element getElementById(String elementId) => wrap_jso(_blink.BlinkNonElementParentNode.instance.getElementById_Callback_1_(unwrap_jso(this), elementId));
+  
+}
 // 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.
@@ -28763,6 +30429,11 @@
   @Experimental() // untriaged
   String get body => _blink.BlinkNotification.instance.body_Getter_(unwrap_jso(this));
   
+  @DomName('Notification.data')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get data => wrap_jso(_blink.BlinkNotification.instance.data_Getter_(unwrap_jso(this)));
+  
   @DomName('Notification.dir')
   @DocsEditable()
   @Experimental() // nonstandard
@@ -28782,6 +30453,11 @@
   @DocsEditable()
   String get permission => _blink.BlinkNotification.instance.permission_Getter_();
   
+  @DomName('Notification.silent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get silent => _blink.BlinkNotification.instance.silent_Getter_(unwrap_jso(this));
+  
   @DomName('Notification.tag')
   @DocsEditable()
   @Experimental() // nonstandard
@@ -28792,6 +30468,11 @@
   @Experimental() // untriaged
   String get title => _blink.BlinkNotification.instance.title_Getter_(unwrap_jso(this));
   
+  @DomName('Notification.vibrate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> get vibrate => _blink.BlinkNotification.instance.vibrate_Getter_(unwrap_jso(this));
+  
   @DomName('Notification.close')
   @DocsEditable()
   void close() => _blink.BlinkNotification.instance.close_Callback_0_(unwrap_jso(this));
@@ -28840,6 +30521,48 @@
 // WARNING: Do not edit - generated code.
 
 
+@DocsEditable()
+@DomName('NotificationEvent')
+@Experimental() // untriaged
+class NotificationEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory NotificationEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('NotificationEvent.NotificationEvent')
+  @DocsEditable()
+  factory NotificationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkNotificationEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkNotificationEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static NotificationEvent internalCreateNotificationEvent() {
+    return new NotificationEvent._internalWrap();
+  }
+
+  external factory NotificationEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  NotificationEvent.internal_() : super.internal_();
+
+
+  @DomName('NotificationEvent.notification')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Notification get notification => wrap_jso(_blink.BlinkNotificationEvent.instance.notification_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
 @DomName('NotificationPermissionCallback')
 // http://www.w3.org/TR/notifications/#notificationpermissioncallback
 @Experimental()
@@ -28966,16 +30689,6 @@
   @DocsEditable()
   set height(String value) => _blink.BlinkHTMLObjectElement.instance.height_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLObjectElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLObjectElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLObjectElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLObjectElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLObjectElement.name')
   @DocsEditable()
   String get name => _blink.BlinkHTMLObjectElement.instance.name_Getter_(unwrap_jso(this));
@@ -29032,6 +30745,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLObjectElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLObjectElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLObjectElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLObjectElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) => _blink.BlinkHTMLObjectElement.instance.setCustomValidity_Callback_1_(unwrap_jso(this), error);
@@ -29103,7 +30821,13 @@
   @DomName('HTMLOptionElement.HTMLOptionElement')
   @DocsEditable()
   factory OptionElement._([String data, String value, bool defaultSelected, bool selected]) {
-    return wrap_jso(_blink.BlinkHTMLOptionElement.instance.constructorCallback_4_(data, value, defaultSelected, selected));
+    if (selected != null) {
+      return wrap_jso(_blink.BlinkHTMLOptionElement.instance.constructorCallback_4_(data, value, defaultSelected, selected));
+    }
+    if (defaultSelected != null) {
+      return wrap_jso(_blink.BlinkHTMLOptionElement.instance.constructorCallback_3_(data, value, defaultSelected));
+    }
+    return wrap_jso(_blink.BlinkHTMLOptionElement.instance.constructorCallback_2_(data, value));
   }
 
 
@@ -29271,6 +30995,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLOutputElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLOutputElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLOutputElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLOutputElement.setCustomValidity')
   @DocsEditable()
   void setCustomValidity(String error) => _blink.BlinkHTMLOutputElement.instance.setCustomValidity_Callback_1_(unwrap_jso(this), error);
@@ -29284,57 +31013,6 @@
 
 
 @DocsEditable()
-@DomName('OverflowEvent')
-@Experimental() // nonstandard
-class OverflowEvent extends Event {
-  // To suppress missing implicit constructor warnings.
-  factory OverflowEvent._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static OverflowEvent internalCreateOverflowEvent() {
-    return new OverflowEvent._internalWrap();
-  }
-
-  external factory OverflowEvent._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  OverflowEvent.internal_() : super.internal_();
-
-
-  @DomName('OverflowEvent.BOTH')
-  @DocsEditable()
-  static const int BOTH = 2;
-
-  @DomName('OverflowEvent.HORIZONTAL')
-  @DocsEditable()
-  static const int HORIZONTAL = 0;
-
-  @DomName('OverflowEvent.VERTICAL')
-  @DocsEditable()
-  static const int VERTICAL = 1;
-
-  @DomName('OverflowEvent.horizontalOverflow')
-  @DocsEditable()
-  bool get horizontalOverflow => _blink.BlinkOverflowEvent.instance.horizontalOverflow_Getter_(unwrap_jso(this));
-  
-  @DomName('OverflowEvent.orient')
-  @DocsEditable()
-  int get orient => _blink.BlinkOverflowEvent.instance.orient_Getter_(unwrap_jso(this));
-  
-  @DomName('OverflowEvent.verticalOverflow')
-  @DocsEditable()
-  bool get verticalOverflow => _blink.BlinkOverflowEvent.instance.verticalOverflow_Getter_(unwrap_jso(this));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('PageTransitionEvent')
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent
 @Experimental()
@@ -29342,6 +31020,16 @@
   // To suppress missing implicit constructor warnings.
   factory PageTransitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PageTransitionEvent.PageTransitionEvent')
+  @DocsEditable()
+  factory PageTransitionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkPageTransitionEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkPageTransitionEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static PageTransitionEvent internalCreatePageTransitionEvent() {
@@ -29501,6 +31189,55 @@
 
 
 @DocsEditable()
+@DomName('PasswordCredential')
+@Experimental() // untriaged
+class PasswordCredential extends Credential {
+  // To suppress missing implicit constructor warnings.
+  factory PasswordCredential._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PasswordCredential.PasswordCredential')
+  @DocsEditable()
+  factory PasswordCredential(String id, String password, [String name, String iconURL]) {
+    if (iconURL != null) {
+      return wrap_jso(_blink.BlinkPasswordCredential.instance.constructorCallback_4_(id, password, name, iconURL));
+    }
+    if (name != null) {
+      return wrap_jso(_blink.BlinkPasswordCredential.instance.constructorCallback_3_(id, password, name));
+    }
+    return wrap_jso(_blink.BlinkPasswordCredential.instance.constructorCallback_2_(id, password));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static PasswordCredential internalCreatePasswordCredential() {
+    return new PasswordCredential._internalWrap();
+  }
+
+  external factory PasswordCredential._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PasswordCredential.internal_() : super.internal_();
+
+
+  @DomName('PasswordCredential.formData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  FormData get formData => wrap_jso(_blink.BlinkPasswordCredential.instance.formData_Getter_(unwrap_jso(this)));
+  
+  @DomName('PasswordCredential.password')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get password => _blink.BlinkPasswordCredential.instance.password_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('Path2D')
 @Experimental() // untriaged
 class Path2D extends DartHtmlDomObject implements _CanvasPathMethods {
@@ -29650,6 +31387,11 @@
   @DocsEditable()
   PerformanceTiming get timing => wrap_jso(_blink.BlinkPerformance.instance.timing_Getter_(unwrap_jso(this)));
   
+  @DomName('Performance.clearFrameTimings')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearFrameTimings() => _blink.BlinkPerformance.instance.clearFrameTimings_Callback_0_(unwrap_jso(this));
+  
   @DomName('Performance.clearMarks')
   @DocsEditable()
   // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
@@ -29696,6 +31438,11 @@
   @DocsEditable()
   num now() => _blink.BlinkPerformance.instance.now_Callback_0_(unwrap_jso(this));
   
+  @DomName('Performance.setFrameTimingBufferSize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void setFrameTimingBufferSize(int maxSize) => _blink.BlinkPerformance.instance.setFrameTimingBufferSize_Callback_1_(unwrap_jso(this), maxSize);
+  
   @DomName('Performance.webkitClearResourceTimings')
   @DocsEditable()
   @SupportedBrowser(SupportedBrowser.CHROME)
@@ -29728,6 +31475,38 @@
 
 
 @DocsEditable()
+@DomName('PerformanceCompositeTiming')
+@Experimental() // untriaged
+class PerformanceCompositeTiming extends PerformanceEntry {
+  // To suppress missing implicit constructor warnings.
+  factory PerformanceCompositeTiming._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static PerformanceCompositeTiming internalCreatePerformanceCompositeTiming() {
+    return new PerformanceCompositeTiming._internalWrap();
+  }
+
+  external factory PerformanceCompositeTiming._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PerformanceCompositeTiming.internal_() : super.internal_();
+
+
+  @DomName('PerformanceCompositeTiming.sourceFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get sourceFrame => _blink.BlinkPerformanceCompositeTiming.instance.sourceFrame_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('PerformanceEntry')
 // http://www.w3.org/TR/performance-timeline/#sec-PerformanceEntry-interface
 @Experimental()
@@ -29885,6 +31664,38 @@
 
 
 @DocsEditable()
+@DomName('PerformanceRenderTiming')
+@Experimental() // untriaged
+class PerformanceRenderTiming extends PerformanceEntry {
+  // To suppress missing implicit constructor warnings.
+  factory PerformanceRenderTiming._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static PerformanceRenderTiming internalCreatePerformanceRenderTiming() {
+    return new PerformanceRenderTiming._internalWrap();
+  }
+
+  external factory PerformanceRenderTiming._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PerformanceRenderTiming.internal_() : super.internal_();
+
+
+  @DomName('PerformanceRenderTiming.sourceFrame')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get sourceFrame => _blink.BlinkPerformanceRenderTiming.instance.sourceFrame_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('PerformanceResourceTiming')
 // http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
 @Experimental()
@@ -29955,6 +31766,11 @@
   @DocsEditable()
   num get secureConnectionStart => _blink.BlinkPerformanceResourceTiming.instance.secureConnectionStart_Getter_(unwrap_jso(this));
   
+  @DomName('PerformanceResourceTiming.workerStart')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get workerStart => _blink.BlinkPerformanceResourceTiming.instance.workerStart_Getter_(unwrap_jso(this));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -30078,6 +31894,239 @@
 
 
 @DocsEditable()
+@DomName('PeriodicSyncEvent')
+@Experimental() // untriaged
+class PeriodicSyncEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PeriodicSyncEvent.PeriodicSyncEvent')
+  @DocsEditable()
+  factory PeriodicSyncEvent(String type, Map init) {
+    var init_1 = convertDartToNative_Dictionary(init);
+    return wrap_jso(_blink.BlinkPeriodicSyncEvent.instance.constructorCallback_2_(type, init_1));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static PeriodicSyncEvent internalCreatePeriodicSyncEvent() {
+    return new PeriodicSyncEvent._internalWrap();
+  }
+
+  external factory PeriodicSyncEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PeriodicSyncEvent.internal_() : super.internal_();
+
+
+  @DomName('PeriodicSyncEvent.registration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  PeriodicSyncRegistration get registration => wrap_jso(_blink.BlinkPeriodicSyncEvent.instance.registration_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PeriodicSyncManager')
+@Experimental() // untriaged
+class PeriodicSyncManager extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncManager._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static PeriodicSyncManager internalCreatePeriodicSyncManager() {
+    return new PeriodicSyncManager._internalWrap();
+  }
+
+  factory PeriodicSyncManager._internalWrap() {
+    return new PeriodicSyncManager.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  PeriodicSyncManager.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('PeriodicSyncManager.minPossiblePeriod')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get minPossiblePeriod => _blink.BlinkPeriodicSyncManager.instance.minPossiblePeriod_Getter_(unwrap_jso(this));
+  
+  @DomName('PeriodicSyncManager.getRegistration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistration(String tag) => wrap_jso(_blink.BlinkPeriodicSyncManager.instance.getRegistration_Callback_1_(unwrap_jso(this), tag));
+  
+  @DomName('PeriodicSyncManager.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() => wrap_jso(_blink.BlinkPeriodicSyncManager.instance.getRegistrations_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PeriodicSyncManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future permissionState() => wrap_jso(_blink.BlinkPeriodicSyncManager.instance.permissionState_Callback_0_(unwrap_jso(this)));
+  
+  Future register([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkPeriodicSyncManager.instance.register_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkPeriodicSyncManager.instance.register_Callback_0_(unwrap_jso(this)));
+  }
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PeriodicSyncRegistration')
+@Experimental() // untriaged
+class PeriodicSyncRegistration extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory PeriodicSyncRegistration._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static PeriodicSyncRegistration internalCreatePeriodicSyncRegistration() {
+    return new PeriodicSyncRegistration._internalWrap();
+  }
+
+  factory PeriodicSyncRegistration._internalWrap() {
+    return new PeriodicSyncRegistration.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  PeriodicSyncRegistration.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('PeriodicSyncRegistration.minPeriod')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get minPeriod => _blink.BlinkPeriodicSyncRegistration.instance.minPeriod_Getter_(unwrap_jso(this));
+  
+  @DomName('PeriodicSyncRegistration.networkState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get networkState => _blink.BlinkPeriodicSyncRegistration.instance.networkState_Getter_(unwrap_jso(this));
+  
+  @DomName('PeriodicSyncRegistration.powerState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get powerState => _blink.BlinkPeriodicSyncRegistration.instance.powerState_Getter_(unwrap_jso(this));
+  
+  @DomName('PeriodicSyncRegistration.tag')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get tag => _blink.BlinkPeriodicSyncRegistration.instance.tag_Getter_(unwrap_jso(this));
+  
+  @DomName('PeriodicSyncRegistration.unregister')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future unregister() => wrap_jso(_blink.BlinkPeriodicSyncRegistration.instance.unregister_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PermissionStatus')
+@Experimental() // untriaged
+class PermissionStatus extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PermissionStatus._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PermissionStatus.changeEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> changeEvent = const EventStreamProvider<Event>('change');
+
+
+  @Deprecated("Internal Use Only")
+  static PermissionStatus internalCreatePermissionStatus() {
+    return new PermissionStatus._internalWrap();
+  }
+
+  external factory PermissionStatus._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PermissionStatus.internal_() : super.internal_();
+
+
+  @DomName('PermissionStatus.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get state => _blink.BlinkPermissionStatus.instance.state_Getter_(unwrap_jso(this));
+  
+  @DomName('PermissionStatus.status')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get status => _blink.BlinkPermissionStatus.instance.status_Getter_(unwrap_jso(this));
+  
+  @DomName('PermissionStatus.onchange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onChange => changeEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('Permissions')
+@Experimental() // untriaged
+class Permissions extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Permissions._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Permissions internalCreatePermissions() {
+    return new Permissions._internalWrap();
+  }
+
+  factory Permissions._internalWrap() {
+    return new Permissions.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Permissions.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('Permissions.query')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future query(Object permission) => wrap_jso(_blink.BlinkPermissions.instance.query_Callback_1_(unwrap_jso(this), permission));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('HTMLPictureElement')
 @Experimental() // untriaged
 class PictureElement extends HtmlElement {
@@ -30148,18 +32197,20 @@
   @DocsEditable()
   String get name => _blink.BlinkPlugin.instance.name_Getter_(unwrap_jso(this));
   
-  @DomName('Plugin.__getter__')
-  @DocsEditable()
-  MimeType __getter__(String name) => wrap_jso(_blink.BlinkPlugin.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
   @DomName('Plugin.item')
   @DocsEditable()
   MimeType item(int index) => wrap_jso(_blink.BlinkPlugin.instance.item_Callback_1_(unwrap_jso(this), index));
   
-  @DomName('Plugin.namedItem')
-  @DocsEditable()
-  MimeType namedItem(String name) => wrap_jso(_blink.BlinkPlugin.instance.namedItem_Callback_1_(unwrap_jso(this), name));
-  
+  MimeType namedItem(String name) {
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkPlugin.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkPlugin.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -30240,18 +32291,20 @@
   Plugin elementAt(int index) => this[index];
   // -- end List<Plugin> mixins.
 
-  @DomName('PluginArray.__getter__')
-  @DocsEditable()
-  Plugin __getter__(String name) => wrap_jso(_blink.BlinkPluginArray.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
   @DomName('PluginArray.item')
   @DocsEditable()
   Plugin item(int index) => wrap_jso(_blink.BlinkPluginArray.instance.item_Callback_1_(unwrap_jso(this), index));
   
-  @DomName('PluginArray.namedItem')
-  @DocsEditable()
-  Plugin namedItem(String name) => wrap_jso(_blink.BlinkPluginArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
-  
+  Plugin namedItem(String name) {
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkPluginArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkPluginArray.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('PluginArray.refresh')
   @DocsEditable()
   void refresh(bool reload) => _blink.BlinkPluginArray.instance.refresh_Callback_1_(unwrap_jso(this), reload);
@@ -30289,6 +32342,16 @@
    */
   PluginPlaceholderElement.created() : super.created();
 
+  @DomName('PluginPlaceholderElement.closeable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get closeable => _blink.BlinkPluginPlaceholderElement.instance.closeable_Getter_(unwrap_jso(this));
+  
+  @DomName('PluginPlaceholderElement.closeable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set closeable(bool value) => _blink.BlinkPluginPlaceholderElement.instance.closeable_Setter_(unwrap_jso(this), value);
+  
   @DomName('PluginPlaceholderElement.message')
   @DocsEditable()
   @Experimental() // untriaged
@@ -30313,6 +32376,83 @@
 
 
 @DocsEditable()
+@DomName('PointerEvent')
+@Experimental() // untriaged
+class PointerEvent extends MouseEvent {
+  // To suppress missing implicit constructor warnings.
+  factory PointerEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PointerEvent.PointerEvent')
+  @DocsEditable()
+  factory PointerEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkPointerEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkPointerEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static PointerEvent internalCreatePointerEvent() {
+    return new PointerEvent._internalWrap();
+  }
+
+  external factory PointerEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PointerEvent.internal_() : super.internal_();
+
+
+  @DomName('PointerEvent.height')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get height => _blink.BlinkPointerEvent.instance.height_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.isPrimary')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get isPrimary => _blink.BlinkPointerEvent.instance.isPrimary_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.pointerId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get pointerId => _blink.BlinkPointerEvent.instance.pointerId_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.pointerType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get pointerType => _blink.BlinkPointerEvent.instance.pointerType_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.pressure')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get pressure => _blink.BlinkPointerEvent.instance.pressure_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.tiltX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get tiltX => _blink.BlinkPointerEvent.instance.tiltX_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.tiltY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get tiltY => _blink.BlinkPointerEvent.instance.tiltY_Getter_(unwrap_jso(this));
+  
+  @DomName('PointerEvent.width')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get width => _blink.BlinkPointerEvent.instance.width_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('PopStateEvent')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.FIREFOX)
@@ -30322,6 +32462,16 @@
   // To suppress missing implicit constructor warnings.
   factory PopStateEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PopStateEvent.PopStateEvent')
+  @DocsEditable()
+  factory PopStateEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkPopStateEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkPopStateEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static PopStateEvent internalCreatePopStateEvent() {
@@ -30417,6 +32567,48 @@
 
 
 @DocsEditable()
+@DomName('PositionSensorVRDevice')
+@Experimental() // untriaged
+class PositionSensorVRDevice extends VRDevice {
+  // To suppress missing implicit constructor warnings.
+  factory PositionSensorVRDevice._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static PositionSensorVRDevice internalCreatePositionSensorVRDevice() {
+    return new PositionSensorVRDevice._internalWrap();
+  }
+
+  external factory PositionSensorVRDevice._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PositionSensorVRDevice.internal_() : super.internal_();
+
+
+  @DomName('PositionSensorVRDevice.getImmediateState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRPositionState getImmediateState() => wrap_jso(_blink.BlinkPositionSensorVRDevice.instance.getImmediateState_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PositionSensorVRDevice.getState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRPositionState getState() => wrap_jso(_blink.BlinkPositionSensorVRDevice.instance.getState_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PositionSensorVRDevice.resetSensor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void resetSensor() => _blink.BlinkPositionSensorVRDevice.instance.resetSensor_Callback_0_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('HTMLPreElement')
 class PreElement extends HtmlElement {
   // To suppress missing implicit constructor warnings.
@@ -30471,6 +32663,150 @@
   Presentation.internal_() : super.internal_();
 
 
+  @DomName('Presentation.session')
+  @DocsEditable()
+  @Experimental() // untriaged
+  PresentationSession get session => wrap_jso(_blink.BlinkPresentation.instance.session_Getter_(unwrap_jso(this)));
+  
+  @DomName('Presentation.getAvailability')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getAvailability(String url) => wrap_jso(_blink.BlinkPresentation.instance.getAvailability_Callback_1_(unwrap_jso(this), url));
+  
+  @DomName('Presentation.joinSession')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future joinSession(String url, String presentationId) => wrap_jso(_blink.BlinkPresentation.instance.joinSession_Callback_2_(unwrap_jso(this), url, presentationId));
+  
+  @DomName('Presentation.startSession')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future startSession(String url) => wrap_jso(_blink.BlinkPresentation.instance.startSession_Callback_1_(unwrap_jso(this), url));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PresentationAvailability')
+@Experimental() // untriaged
+class PresentationAvailability extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PresentationAvailability._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PresentationAvailability.changeEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<Event> changeEvent = const EventStreamProvider<Event>('change');
+
+
+  @Deprecated("Internal Use Only")
+  static PresentationAvailability internalCreatePresentationAvailability() {
+    return new PresentationAvailability._internalWrap();
+  }
+
+  external factory PresentationAvailability._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PresentationAvailability.internal_() : super.internal_();
+
+
+  @DomName('PresentationAvailability.value')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get value => _blink.BlinkPresentationAvailability.instance.value_Getter_(unwrap_jso(this));
+  
+  @DomName('PresentationAvailability.onchange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<Event> get onChange => changeEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PresentationSession')
+@Experimental() // untriaged
+class PresentationSession extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory PresentationSession._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PresentationSession.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+
+  @Deprecated("Internal Use Only")
+  static PresentationSession internalCreatePresentationSession() {
+    return new PresentationSession._internalWrap();
+  }
+
+  external factory PresentationSession._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PresentationSession.internal_() : super.internal_();
+
+
+  @DomName('PresentationSession.binaryType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get binaryType => _blink.BlinkPresentationSession.instance.binaryType_Getter_(unwrap_jso(this));
+  
+  @DomName('PresentationSession.binaryType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set binaryType(String value) => _blink.BlinkPresentationSession.instance.binaryType_Setter_(unwrap_jso(this), value);
+  
+  @DomName('PresentationSession.id')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get id => _blink.BlinkPresentationSession.instance.id_Getter_(unwrap_jso(this));
+  
+  @DomName('PresentationSession.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get state => _blink.BlinkPresentationSession.instance.state_Getter_(unwrap_jso(this));
+  
+  @DomName('PresentationSession.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void close() => _blink.BlinkPresentationSession.instance.close_Callback_0_(unwrap_jso(this));
+  
+  void send(data_OR_message) {
+    if ((data_OR_message is String || data_OR_message == null)) {
+      _blink.BlinkPresentationSession.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data_OR_message));
+      return;
+    }
+    if ((data_OR_message is Blob || data_OR_message == null)) {
+      _blink.BlinkPresentationSession.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data_OR_message));
+      return;
+    }
+    if ((data_OR_message is TypedData || data_OR_message == null)) {
+      _blink.BlinkPresentationSession.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data_OR_message));
+      return;
+    }
+    if ((data_OR_message is ByteBuffer || data_OR_message == null)) {
+      _blink.BlinkPresentationSession.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data_OR_message));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('PresentationSession.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -30589,6 +32925,16 @@
   // To suppress missing implicit constructor warnings.
   factory ProgressEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ProgressEvent.ProgressEvent')
+  @DocsEditable()
+  factory ProgressEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkProgressEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkProgressEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static ProgressEvent internalCreateProgressEvent() {
@@ -30622,12 +32968,69 @@
 
 
 @DocsEditable()
+@DomName('PromiseRejectionEvent')
+@Experimental() // untriaged
+class PromiseRejectionEvent extends Event {
+  // To suppress missing implicit constructor warnings.
+  factory PromiseRejectionEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PromiseRejectionEvent.PromiseRejectionEvent')
+  @DocsEditable()
+  factory PromiseRejectionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkPromiseRejectionEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkPromiseRejectionEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static PromiseRejectionEvent internalCreatePromiseRejectionEvent() {
+    return new PromiseRejectionEvent._internalWrap();
+  }
+
+  external factory PromiseRejectionEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  PromiseRejectionEvent.internal_() : super.internal_();
+
+
+  @DomName('PromiseRejectionEvent.promise')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future get promise => wrap_jso(_blink.BlinkPromiseRejectionEvent.instance.promise_Getter_(unwrap_jso(this)));
+  
+  @DomName('PromiseRejectionEvent.reason')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get reason => wrap_jso(_blink.BlinkPromiseRejectionEvent.instance.reason_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('PushEvent')
 @Experimental() // untriaged
-class PushEvent extends Event {
+class PushEvent extends ExtendableEvent {
   // To suppress missing implicit constructor warnings.
   factory PushEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('PushEvent.PushEvent')
+  @DocsEditable()
+  factory PushEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkPushEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkPushEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static PushEvent internalCreatePushEvent() {
@@ -30643,7 +33046,7 @@
   @DomName('PushEvent.data')
   @DocsEditable()
   @Experimental() // untriaged
-  String get data => _blink.BlinkPushEvent.instance.data_Getter_(unwrap_jso(this));
+  PushMessageData get data => wrap_jso(_blink.BlinkPushEvent.instance.data_Getter_(unwrap_jso(this)));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -30675,10 +33078,80 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('PushManager.register')
+  @DomName('PushManager.getSubscription')
   @DocsEditable()
   @Experimental() // untriaged
-  Future register(String senderId) => wrap_jso(_blink.BlinkPushManager.instance.register_Callback_1_(unwrap_jso(this), senderId));
+  Future getSubscription() => wrap_jso(_blink.BlinkPushManager.instance.getSubscription_Callback_0_(unwrap_jso(this)));
+  
+  Future permissionState([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkPushManager.instance.permissionState_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkPushManager.instance.permissionState_Callback_0_(unwrap_jso(this)));
+  }
+
+  Future subscribe([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkPushManager.instance.subscribe_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkPushManager.instance.subscribe_Callback_0_(unwrap_jso(this)));
+  }
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('PushMessageData')
+@Experimental() // untriaged
+class PushMessageData extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory PushMessageData._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('PushMessageData.PushMessageData')
+  @DocsEditable()
+  factory PushMessageData(String message) {
+    return wrap_jso(_blink.BlinkPushMessageData.instance.constructorCallback_1_(message));
+  }
+
+  @Deprecated("Internal Use Only")
+  static PushMessageData internalCreatePushMessageData() {
+    return new PushMessageData._internalWrap();
+  }
+
+  factory PushMessageData._internalWrap() {
+    return new PushMessageData.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  PushMessageData.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('PushMessageData.arrayBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ByteBuffer arrayBuffer() => wrap_jso(_blink.BlinkPushMessageData.instance.arrayBuffer_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PushMessageData.blob')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Blob blob() => wrap_jso(_blink.BlinkPushMessageData.instance.blob_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PushMessageData.json')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object json() => wrap_jso(_blink.BlinkPushMessageData.instance.json_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('PushMessageData.text')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String text() => _blink.BlinkPushMessageData.instance.text_Callback_0_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -30689,36 +33162,36 @@
 
 
 @DocsEditable()
-@DomName('PushRegistration')
+@DomName('PushSubscription')
 @Experimental() // untriaged
-class PushRegistration extends DartHtmlDomObject {
+class PushSubscription extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
-  factory PushRegistration._() { throw new UnsupportedError("Not supported"); }
+  factory PushSubscription._() { throw new UnsupportedError("Not supported"); }
 
   @Deprecated("Internal Use Only")
-  static PushRegistration internalCreatePushRegistration() {
-    return new PushRegistration._internalWrap();
+  static PushSubscription internalCreatePushSubscription() {
+    return new PushSubscription._internalWrap();
   }
 
-  factory PushRegistration._internalWrap() {
-    return new PushRegistration.internal_();
+  factory PushSubscription._internalWrap() {
+    return new PushSubscription.internal_();
   }
 
   @Deprecated("Internal Use Only")
-  PushRegistration.internal_() { }
+  PushSubscription.internal_() { }
 
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('PushRegistration.pushEndpoint')
+  @DomName('PushSubscription.endpoint')
   @DocsEditable()
   @Experimental() // untriaged
-  String get pushEndpoint => _blink.BlinkPushRegistration.instance.pushEndpoint_Getter_(unwrap_jso(this));
+  String get endpoint => _blink.BlinkPushSubscription.instance.endpoint_Getter_(unwrap_jso(this));
   
-  @DomName('PushRegistration.pushRegistrationId')
+  @DomName('PushSubscription.unsubscribe')
   @DocsEditable()
   @Experimental() // untriaged
-  String get pushRegistrationId => _blink.BlinkPushRegistration.instance.pushRegistrationId_Getter_(unwrap_jso(this));
+  Future unsubscribe() => wrap_jso(_blink.BlinkPushSubscription.instance.unsubscribe_Callback_0_(unwrap_jso(this)));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -30838,26 +33311,6 @@
   @DocsEditable()
   static const int END_TO_START = 3;
 
-  @DomName('Range.NODE_AFTER')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_AFTER = 1;
-
-  @DomName('Range.NODE_BEFORE')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_BEFORE = 0;
-
-  @DomName('Range.NODE_BEFORE_AND_AFTER')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_BEFORE_AND_AFTER = 2;
-
-  @DomName('Range.NODE_INSIDE')
-  @DocsEditable()
-  @Experimental() // nonstandard
-  static const int NODE_INSIDE = 3;
-
   @DomName('Range.START_TO_END')
   @DocsEditable()
   static const int START_TO_END = 1;
@@ -30914,11 +33367,11 @@
   
   @DomName('Range.comparePoint')
   @DocsEditable()
-  int comparePoint(Node refNode, int offset) => _blink.BlinkRange.instance.comparePoint_Callback_2_(unwrap_jso(this), unwrap_jso(refNode), offset);
+  int comparePoint(Node node, int offset) => _blink.BlinkRange.instance.comparePoint_Callback_2_(unwrap_jso(this), unwrap_jso(node), offset);
   
   @DomName('Range.createContextualFragment')
   @DocsEditable()
-  DocumentFragment createContextualFragment(String html) => wrap_jso(_blink.BlinkRange.instance.createContextualFragment_Callback_1_(unwrap_jso(this), html));
+  DocumentFragment createContextualFragment(String fragment) => wrap_jso(_blink.BlinkRange.instance.createContextualFragment_Callback_1_(unwrap_jso(this), fragment));
   
   @DomName('Range.deleteContents')
   @DocsEditable()
@@ -30947,43 +33400,43 @@
   
   @DomName('Range.insertNode')
   @DocsEditable()
-  void insertNode(Node newNode) => _blink.BlinkRange.instance.insertNode_Callback_1_(unwrap_jso(this), unwrap_jso(newNode));
+  void insertNode(Node node) => _blink.BlinkRange.instance.insertNode_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.isPointInRange')
   @DocsEditable()
-  bool isPointInRange(Node refNode, int offset) => _blink.BlinkRange.instance.isPointInRange_Callback_2_(unwrap_jso(this), unwrap_jso(refNode), offset);
+  bool isPointInRange(Node node, int offset) => _blink.BlinkRange.instance.isPointInRange_Callback_2_(unwrap_jso(this), unwrap_jso(node), offset);
   
   @DomName('Range.selectNode')
   @DocsEditable()
-  void selectNode(Node refNode) => _blink.BlinkRange.instance.selectNode_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void selectNode(Node node) => _blink.BlinkRange.instance.selectNode_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.selectNodeContents')
   @DocsEditable()
-  void selectNodeContents(Node refNode) => _blink.BlinkRange.instance.selectNodeContents_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void selectNodeContents(Node node) => _blink.BlinkRange.instance.selectNodeContents_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.setEnd')
   @DocsEditable()
-  void setEnd(Node refNode, int offset) => _blink.BlinkRange.instance.setEnd_Callback_2_(unwrap_jso(this), unwrap_jso(refNode), offset);
+  void setEnd(Node node, int offset) => _blink.BlinkRange.instance.setEnd_Callback_2_(unwrap_jso(this), unwrap_jso(node), offset);
   
   @DomName('Range.setEndAfter')
   @DocsEditable()
-  void setEndAfter(Node refNode) => _blink.BlinkRange.instance.setEndAfter_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void setEndAfter(Node node) => _blink.BlinkRange.instance.setEndAfter_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.setEndBefore')
   @DocsEditable()
-  void setEndBefore(Node refNode) => _blink.BlinkRange.instance.setEndBefore_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void setEndBefore(Node node) => _blink.BlinkRange.instance.setEndBefore_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.setStart')
   @DocsEditable()
-  void setStart(Node refNode, int offset) => _blink.BlinkRange.instance.setStart_Callback_2_(unwrap_jso(this), unwrap_jso(refNode), offset);
+  void setStart(Node node, int offset) => _blink.BlinkRange.instance.setStart_Callback_2_(unwrap_jso(this), unwrap_jso(node), offset);
   
   @DomName('Range.setStartAfter')
   @DocsEditable()
-  void setStartAfter(Node refNode) => _blink.BlinkRange.instance.setStartAfter_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void setStartAfter(Node node) => _blink.BlinkRange.instance.setStartAfter_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.setStartBefore')
   @DocsEditable()
-  void setStartBefore(Node refNode) => _blink.BlinkRange.instance.setStartBefore_Callback_1_(unwrap_jso(this), unwrap_jso(refNode));
+  void setStartBefore(Node node) => _blink.BlinkRange.instance.setStartBefore_Callback_1_(unwrap_jso(this), unwrap_jso(node));
   
   @DomName('Range.surroundContents')
   @DocsEditable()
@@ -31007,6 +33460,100 @@
 
 
 @DocsEditable()
+@DomName('ReadableByteStream')
+@Experimental() // untriaged
+class ReadableByteStream extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableByteStream._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static ReadableByteStream internalCreateReadableByteStream() {
+    return new ReadableByteStream._internalWrap();
+  }
+
+  factory ReadableByteStream._internalWrap() {
+    return new ReadableByteStream.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ReadableByteStream.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  Future cancel([Object reason]) {
+    if (reason != null) {
+      return wrap_jso(_blink.BlinkReadableByteStream.instance.cancel_Callback_1_(unwrap_jso(this), reason));
+    }
+    return wrap_jso(_blink.BlinkReadableByteStream.instance.cancel_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('ReadableByteStream.getReader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ReadableByteStreamReader getReader() => wrap_jso(_blink.BlinkReadableByteStream.instance.getReader_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('ReadableByteStreamReader')
+@Experimental() // untriaged
+class ReadableByteStreamReader extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableByteStreamReader._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static ReadableByteStreamReader internalCreateReadableByteStreamReader() {
+    return new ReadableByteStreamReader._internalWrap();
+  }
+
+  factory ReadableByteStreamReader._internalWrap() {
+    return new ReadableByteStreamReader.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ReadableByteStreamReader.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('ReadableByteStreamReader.closed')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future get closed => wrap_jso(_blink.BlinkReadableByteStreamReader.instance.closed_Getter_(unwrap_jso(this)));
+  
+  Future cancel([Object reason]) {
+    if (reason != null) {
+      return wrap_jso(_blink.BlinkReadableByteStreamReader.instance.cancel_Callback_1_(unwrap_jso(this), reason));
+    }
+    return wrap_jso(_blink.BlinkReadableByteStreamReader.instance.cancel_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('ReadableByteStreamReader.read')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future read() => wrap_jso(_blink.BlinkReadableByteStreamReader.instance.read_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('ReadableByteStreamReader.releaseLock')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void releaseLock() => _blink.BlinkReadableByteStreamReader.instance.releaseLock_Callback_0_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('ReadableStream')
 @Experimental() // untriaged
 class ReadableStream extends DartHtmlDomObject {
@@ -31028,30 +33575,69 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('ReadableStream.closed')
+  Future cancel([Object reason]) {
+    if (reason != null) {
+      return wrap_jso(_blink.BlinkReadableStream.instance.cancel_Callback_1_(unwrap_jso(this), reason));
+    }
+    return wrap_jso(_blink.BlinkReadableStream.instance.cancel_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('ReadableStream.getReader')
   @DocsEditable()
   @Experimental() // untriaged
-  Future get closed => wrap_jso(_blink.BlinkReadableStream.instance.closed_Getter_(unwrap_jso(this)));
+  ReadableStreamReader getReader() => wrap_jso(_blink.BlinkReadableStream.instance.getReader_Callback_0_(unwrap_jso(this)));
   
-  @DomName('ReadableStream.state')
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('ReadableStreamReader')
+@Experimental() // untriaged
+class ReadableStreamReader extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ReadableStreamReader._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static ReadableStreamReader internalCreateReadableStreamReader() {
+    return new ReadableStreamReader._internalWrap();
+  }
+
+  factory ReadableStreamReader._internalWrap() {
+    return new ReadableStreamReader.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ReadableStreamReader.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('ReadableStreamReader.closed')
   @DocsEditable()
   @Experimental() // untriaged
-  String get state => _blink.BlinkReadableStream.instance.state_Getter_(unwrap_jso(this));
+  Future get closed => wrap_jso(_blink.BlinkReadableStreamReader.instance.closed_Getter_(unwrap_jso(this)));
   
-  @DomName('ReadableStream.cancel')
+  Future cancel([Object reason]) {
+    if (reason != null) {
+      return wrap_jso(_blink.BlinkReadableStreamReader.instance.cancel_Callback_1_(unwrap_jso(this), reason));
+    }
+    return wrap_jso(_blink.BlinkReadableStreamReader.instance.cancel_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('ReadableStreamReader.read')
   @DocsEditable()
   @Experimental() // untriaged
-  Future cancel(Object reason) => wrap_jso(_blink.BlinkReadableStream.instance.cancel_Callback_1_(unwrap_jso(this), reason));
+  Future read() => wrap_jso(_blink.BlinkReadableStreamReader.instance.read_Callback_0_(unwrap_jso(this)));
   
-  @DomName('ReadableStream.read')
+  @DomName('ReadableStreamReader.releaseLock')
   @DocsEditable()
   @Experimental() // untriaged
-  Object read() => wrap_jso(_blink.BlinkReadableStream.instance.read_Callback_0_(unwrap_jso(this)));
-  
-  @DomName('ReadableStream.wait')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Future wait() => wrap_jso(_blink.BlinkReadableStream.instance.wait_Callback_0_(unwrap_jso(this)));
+  void releaseLock() => _blink.BlinkReadableStreamReader.instance.releaseLock_Callback_0_(unwrap_jso(this));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -31068,6 +33654,16 @@
   // To suppress missing implicit constructor warnings.
   factory RelatedEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('RelatedEvent.RelatedEvent')
+  @DocsEditable()
+  factory RelatedEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkRelatedEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkRelatedEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static RelatedEvent internalCreateRelatedEvent() {
@@ -31278,7 +33874,7 @@
   
   @DomName('RTCDataChannel.sendByteBuffer')
   @DocsEditable()
-  void sendByteBuffer(ByteBuffer data) => _blink.BlinkRTCDataChannel.instance.send_Callback_1_(unwrap_jso(this), data);
+  void sendByteBuffer(ByteBuffer data) => _blink.BlinkRTCDataChannel.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
   
   @DomName('RTCDataChannel.sendString')
   @DocsEditable()
@@ -31432,6 +34028,13 @@
   // To suppress missing implicit constructor warnings.
   factory RtcDtmfToneChangeEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent')
+  @DocsEditable()
+  factory RtcDtmfToneChangeEvent(String type, Map eventInitDict) {
+    var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+    return wrap_jso(_blink.BlinkRTCDTMFToneChangeEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+  }
+
 
   @Deprecated("Internal Use Only")
   static RtcDtmfToneChangeEvent internalCreateRtcDtmfToneChangeEvent() {
@@ -31467,9 +34070,9 @@
 
   @DomName('RTCIceCandidate.RTCIceCandidate')
   @DocsEditable()
-  factory RtcIceCandidate(Map dictionary) {
-    var dictionary_1 = convertDartToNative_Dictionary(dictionary);
-    return wrap_jso(_blink.BlinkRTCIceCandidate.instance.constructorCallback_1_(dictionary_1));
+  factory RtcIceCandidate(Map candidateInitDict) {
+    var candidateInitDict_1 = convertDartToNative_Dictionary(candidateInitDict);
+    return wrap_jso(_blink.BlinkRTCIceCandidate.instance.constructorCallback_1_(candidateInitDict_1));
   }
 
   @Deprecated("Internal Use Only")
@@ -31930,14 +34533,6 @@
   @DocsEditable()
   String get id => _blink.BlinkRTCStatsReport.instance.id_Getter_(unwrap_jso(this));
   
-  @DomName('RTCStatsReport.local')
-  @DocsEditable()
-  RtcStatsReport get local => wrap_jso(_blink.BlinkRTCStatsReport.instance.local_Getter_(unwrap_jso(this)));
-  
-  @DomName('RTCStatsReport.remote')
-  @DocsEditable()
-  RtcStatsReport get remote => wrap_jso(_blink.BlinkRTCStatsReport.instance.remote_Getter_(unwrap_jso(this)));
-  
   @DomName('RTCStatsReport.timestamp')
   @DocsEditable()
   DateTime get timestamp => _blink.BlinkRTCStatsReport.instance.timestamp_Getter_(unwrap_jso(this));
@@ -31985,14 +34580,16 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('RTCStatsResponse.__getter__')
-  @DocsEditable()
-  RtcStatsReport __getter__(String name) => wrap_jso(_blink.BlinkRTCStatsResponse.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
-  @DomName('RTCStatsResponse.namedItem')
-  @DocsEditable()
-  RtcStatsReport namedItem(String name) => wrap_jso(_blink.BlinkRTCStatsResponse.instance.namedItem_Callback_1_(unwrap_jso(this), name));
-  
+  RtcStatsReport namedItem(String name) {
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkRTCStatsResponse.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    if ((name is String || name == null)) {
+      return wrap_jso(_blink.BlinkRTCStatsResponse.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('RTCStatsResponse.result')
   @DocsEditable()
   List<RtcStatsReport> result() => wrap_jso(_blink.BlinkRTCStatsResponse.instance.result_Callback_0_(unwrap_jso(this)));
@@ -32245,6 +34842,121 @@
 
 
 @DocsEditable()
+@DomName('ScrollState')
+@Experimental() // untriaged
+class ScrollState extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ScrollState._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ScrollState.ScrollState')
+  @DocsEditable()
+  factory ScrollState([num deltaX, num deltaY, num deltaGranularity, num velocityX, num velocityY, bool inInertialPhase, bool isBeginning, bool isEnding]) {
+    if (isEnding != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_8_(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding));
+    }
+    if (isBeginning != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_7_(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning));
+    }
+    if (inInertialPhase != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_6_(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase));
+    }
+    if (velocityY != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_5_(deltaX, deltaY, deltaGranularity, velocityX, velocityY));
+    }
+    if (velocityX != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_4_(deltaX, deltaY, deltaGranularity, velocityX));
+    }
+    if (deltaGranularity != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_3_(deltaX, deltaY, deltaGranularity));
+    }
+    if (deltaY != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_2_(deltaX, deltaY));
+    }
+    if (deltaX != null) {
+      return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_1_(deltaX));
+    }
+    return wrap_jso(_blink.BlinkScrollState.instance.constructorCallback_0_());
+  }
+
+  @Deprecated("Internal Use Only")
+  static ScrollState internalCreateScrollState() {
+    return new ScrollState._internalWrap();
+  }
+
+  factory ScrollState._internalWrap() {
+    return new ScrollState.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ScrollState.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('ScrollState.deltaGranularity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get deltaGranularity => _blink.BlinkScrollState.instance.deltaGranularity_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.deltaX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get deltaX => _blink.BlinkScrollState.instance.deltaX_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.deltaY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get deltaY => _blink.BlinkScrollState.instance.deltaY_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.fromUserInput')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get fromUserInput => _blink.BlinkScrollState.instance.fromUserInput_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.inInertialPhase')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get inInertialPhase => _blink.BlinkScrollState.instance.inInertialPhase_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.isBeginning')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get isBeginning => _blink.BlinkScrollState.instance.isBeginning_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.isEnding')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get isEnding => _blink.BlinkScrollState.instance.isEnding_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.shouldPropagate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get shouldPropagate => _blink.BlinkScrollState.instance.shouldPropagate_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.velocityX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get velocityX => _blink.BlinkScrollState.instance.velocityX_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.velocityY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get velocityY => _blink.BlinkScrollState.instance.velocityY_Getter_(unwrap_jso(this));
+  
+  @DomName('ScrollState.consumeDelta')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void consumeDelta(num x, num y) => _blink.BlinkScrollState.instance.consumeDelta_Callback_2_(unwrap_jso(this), x, y);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('SecurityPolicyViolationEvent')
 // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
 @Experimental()
@@ -32252,6 +34964,16 @@
   // To suppress missing implicit constructor warnings.
   factory SecurityPolicyViolationEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SecurityPolicyViolationEvent.SecurityPolicyViolationEvent')
+  @DocsEditable()
+  factory SecurityPolicyViolationEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkSecurityPolicyViolationEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkSecurityPolicyViolationEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static SecurityPolicyViolationEvent internalCreateSecurityPolicyViolationEvent() {
@@ -32437,12 +35159,12 @@
   
   @DomName('HTMLSelectElement.__setter__')
   @DocsEditable()
-  void __setter__(int index, OptionElement value) => _blink.BlinkHTMLSelectElement.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, OptionElement option) => _blink.BlinkHTMLSelectElement.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(option));
   
   @DomName('HTMLSelectElement.add')
   @DocsEditable()
   @Experimental() // untriaged
-  void add(HtmlElement element, int before) => _blink.BlinkHTMLSelectElement.instance.add_Callback_2_(unwrap_jso(this), unwrap_jso(element), before);
+  void add(Object element, Object before) => _blink.BlinkHTMLSelectElement.instance.add_Callback_2_(unwrap_jso(this), element, before);
   
   @DomName('HTMLSelectElement.checkValidity')
   @DocsEditable()
@@ -32454,7 +35176,12 @@
   
   @DomName('HTMLSelectElement.namedItem')
   @DocsEditable()
-  Element namedItem(String name) => wrap_jso(_blink.BlinkHTMLSelectElement.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+  OptionElement namedItem(String name) => wrap_jso(_blink.BlinkHTMLSelectElement.instance.namedItem_Callback_1_(unwrap_jso(this), name));
+  
+  @DomName('HTMLSelectElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLSelectElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
   
   @DomName('HTMLSelectElement.setCustomValidity')
   @DocsEditable()
@@ -32580,7 +35307,7 @@
   @DomName('Selection.containsNode')
   @DocsEditable()
   @Experimental() // non-standard
-  bool containsNode(Node node, bool allowPartial) => _blink.BlinkSelection.instance.containsNode_Callback_2_(unwrap_jso(this), unwrap_jso(node), allowPartial);
+  bool containsNode(Node node, bool allowPartialContainment) => _blink.BlinkSelection.instance.containsNode_Callback_2_(unwrap_jso(this), unwrap_jso(node), allowPartialContainment);
   
   @DomName('Selection.deleteFromDocument')
   @DocsEditable()
@@ -32640,37 +35367,56 @@
 
 
 @DocsEditable()
-@DomName('ServiceWorkerClient')
+@DomName('ServicePort')
 @Experimental() // untriaged
-class ServiceWorkerClient extends DartHtmlDomObject {
+class ServicePort extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerClient._() { throw new UnsupportedError("Not supported"); }
+  factory ServicePort._() { throw new UnsupportedError("Not supported"); }
 
   @Deprecated("Internal Use Only")
-  static ServiceWorkerClient internalCreateServiceWorkerClient() {
-    return new ServiceWorkerClient._internalWrap();
+  static ServicePort internalCreateServicePort() {
+    return new ServicePort._internalWrap();
   }
 
-  factory ServiceWorkerClient._internalWrap() {
-    return new ServiceWorkerClient.internal_();
+  factory ServicePort._internalWrap() {
+    return new ServicePort.internal_();
   }
 
   @Deprecated("Internal Use Only")
-  ServiceWorkerClient.internal_() { }
+  ServicePort.internal_() { }
 
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('ServiceWorkerClient.id')
+  @DomName('ServicePort.data')
   @DocsEditable()
   @Experimental() // untriaged
-  int get id => _blink.BlinkServiceWorkerClient.instance.id_Getter_(unwrap_jso(this));
+  Object get data => wrap_jso(_blink.BlinkServicePort.instance.data_Getter_(unwrap_jso(this)));
   
-  @DomName('ServiceWorkerClient.postMessage')
+  @DomName('ServicePort.name')
   @DocsEditable()
   @Experimental() // untriaged
-  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) => _blink.BlinkServiceWorkerClient.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+  String get name => _blink.BlinkServicePort.instance.name_Getter_(unwrap_jso(this));
   
+  @DomName('ServicePort.targetURL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get targetUrl => _blink.BlinkServicePort.instance.targetURL_Getter_(unwrap_jso(this));
+  
+  @DomName('ServicePort.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void close() => _blink.BlinkServicePort.instance.close_Callback_0_(unwrap_jso(this));
+  
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkServicePort.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkServicePort.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -32680,34 +35426,105 @@
 
 
 @DocsEditable()
-@DomName('ServiceWorkerClients')
+@DomName('ServicePortCollection')
 @Experimental() // untriaged
-class ServiceWorkerClients extends DartHtmlDomObject {
+class ServicePortCollection extends EventTarget {
   // To suppress missing implicit constructor warnings.
-  factory ServiceWorkerClients._() { throw new UnsupportedError("Not supported"); }
+  factory ServicePortCollection._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ServicePortCollection.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
 
   @Deprecated("Internal Use Only")
-  static ServiceWorkerClients internalCreateServiceWorkerClients() {
-    return new ServiceWorkerClients._internalWrap();
+  static ServicePortCollection internalCreateServicePortCollection() {
+    return new ServicePortCollection._internalWrap();
   }
 
-  factory ServiceWorkerClients._internalWrap() {
-    return new ServiceWorkerClients.internal_();
-  }
+  external factory ServicePortCollection._internalWrap();
 
   @Deprecated("Internal Use Only")
-  ServiceWorkerClients.internal_() { }
+  ServicePortCollection.internal_() : super.internal_();
 
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
 
-  Future getAll([Map options]) {
+  Future connect(String url, [Map options]) {
     if (options != null) {
-      return wrap_jso(_blink.BlinkServiceWorkerClients.instance.getAll_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+      return wrap_jso(_blink.BlinkServicePortCollection.instance.connect_Callback_2_(unwrap_jso(this), url, convertDartToNative_Dictionary(options)));
     }
-    return wrap_jso(_blink.BlinkServiceWorkerClients.instance.getAll_Callback_0_(unwrap_jso(this)));
+    return wrap_jso(_blink.BlinkServicePortCollection.instance.connect_Callback_1_(unwrap_jso(this), url));
   }
 
+  @DomName('ServicePortCollection.match')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future match(Map options) => wrap_jso(_blink.BlinkServicePortCollection.instance.match_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+  
+  Future matchAll([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkServicePortCollection.instance.matchAll_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkServicePortCollection.instance.matchAll_Callback_0_(unwrap_jso(this)));
+  }
+
+  @DomName('ServicePortCollection.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('ServicePortConnectEvent')
+@Experimental() // untriaged
+class ServicePortConnectEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory ServicePortConnectEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ServicePortConnectEvent.ServicePortConnectEvent')
+  @DocsEditable()
+  factory ServicePortConnectEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkServicePortConnectEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkServicePortConnectEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static ServicePortConnectEvent internalCreateServicePortConnectEvent() {
+    return new ServicePortConnectEvent._internalWrap();
+  }
+
+  external factory ServicePortConnectEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  ServicePortConnectEvent.internal_() : super.internal_();
+
+
+  @DomName('ServicePortConnectEvent.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get origin => _blink.BlinkServicePortConnectEvent.instance.origin_Getter_(unwrap_jso(this));
+  
+  @DomName('ServicePortConnectEvent.targetURL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get targetUrl => _blink.BlinkServicePortConnectEvent.instance.targetURL_Getter_(unwrap_jso(this));
+  
+  @DomName('ServicePortConnectEvent.respondWith')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future respondWith(Future response) => wrap_jso(_blink.BlinkServicePortConnectEvent.instance.respondWith_Callback_1_(unwrap_jso(this), response));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -32719,24 +35536,26 @@
 @DocsEditable()
 @DomName('ServiceWorkerContainer')
 @Experimental() // untriaged
-class ServiceWorkerContainer extends DartHtmlDomObject {
+class ServiceWorkerContainer extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory ServiceWorkerContainer._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('ServiceWorkerContainer.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+
   @Deprecated("Internal Use Only")
   static ServiceWorkerContainer internalCreateServiceWorkerContainer() {
     return new ServiceWorkerContainer._internalWrap();
   }
 
-  factory ServiceWorkerContainer._internalWrap() {
-    return new ServiceWorkerContainer.internal_();
-  }
+  external factory ServiceWorkerContainer._internalWrap();
 
   @Deprecated("Internal Use Only")
-  ServiceWorkerContainer.internal_() { }
+  ServiceWorkerContainer.internal_() : super.internal_();
 
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
 
   @DomName('ServiceWorkerContainer.controller')
   @DocsEditable()
@@ -32755,6 +35574,11 @@
     return wrap_jso(_blink.BlinkServiceWorkerContainer.instance.getRegistration_Callback_0_(unwrap_jso(this)));
   }
 
+  @DomName('ServiceWorkerContainer.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() => wrap_jso(_blink.BlinkServiceWorkerContainer.instance.getRegistrations_Callback_0_(unwrap_jso(this)));
+  
   Future register(String url, [Map options]) {
     if (options != null) {
       return wrap_jso(_blink.BlinkServiceWorkerContainer.instance.register_Callback_2_(unwrap_jso(this), url, convertDartToNative_Dictionary(options)));
@@ -32762,6 +35586,11 @@
     return wrap_jso(_blink.BlinkServiceWorkerContainer.instance.register_Callback_1_(unwrap_jso(this), url));
   }
 
+  @DomName('ServiceWorkerContainer.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -32794,48 +35623,111 @@
   ServiceWorkerGlobalScope.internal_() : super.internal_();
 
 
-  @DomName('ServiceWorkerGlobalScope.caches')
-  @DocsEditable()
-  @Experimental() // untriaged
-  CacheStorage get caches => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.caches_Getter_(unwrap_jso(this)));
-  
   @DomName('ServiceWorkerGlobalScope.clients')
   @DocsEditable()
   @Experimental() // untriaged
-  ServiceWorkerClients get clients => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.clients_Getter_(unwrap_jso(this)));
+  Clients get clients => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.clients_Getter_(unwrap_jso(this)));
   
-  @DomName('ServiceWorkerGlobalScope.scope')
+  @DomName('ServiceWorkerGlobalScope.ports')
   @DocsEditable()
   @Experimental() // untriaged
-  String get scope => _blink.BlinkServiceWorkerGlobalScope.instance.scope_Getter_(unwrap_jso(this));
+  StashedPortCollection get ports => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.ports_Getter_(unwrap_jso(this)));
+  
+  @DomName('ServiceWorkerGlobalScope.registration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ServiceWorkerRegistration get registration => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.registration_Getter_(unwrap_jso(this)));
   
   @DomName('ServiceWorkerGlobalScope.close')
   @DocsEditable()
   @Experimental() // untriaged
   void close() => _blink.BlinkServiceWorkerGlobalScope.instance.close_Callback_0_(unwrap_jso(this));
   
-  Future _fetch(request, [Map requestInitDict]) {
-    if ((request is String || request == null) && requestInitDict == null) {
-      return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_1_(unwrap_jso(this), unwrap_jso(request)));
+  Future _fetch(/*RequestInfo*/ input, [Map init]) {
+    if (init != null) {
+      return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_2_(unwrap_jso(this), input, convertDartToNative_Dictionary(init)));
     }
-    if ((requestInitDict is Map || requestInitDict == null) && (request is String || request == null)) {
-      return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_2_(unwrap_jso(this), unwrap_jso(request), convertDartToNative_Dictionary(requestInitDict)));
-    }
-    if ((request is _Request || request == null) && requestInitDict == null) {
-      return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_1_(unwrap_jso(this), unwrap_jso(request)));
-    }
-    if ((requestInitDict is Map || requestInitDict == null) && (request is _Request || request == null)) {
-      return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_2_(unwrap_jso(this), unwrap_jso(request), convertDartToNative_Dictionary(requestInitDict)));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.fetch_Callback_1_(unwrap_jso(this), input));
   }
 
+  @DomName('ServiceWorkerGlobalScope.skipWaiting')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future skipWaiting() => wrap_jso(_blink.BlinkServiceWorkerGlobalScope.instance.skipWaiting_Callback_0_(unwrap_jso(this)));
+  
   @DomName('ServiceWorkerGlobalScope.onmessage')
   @DocsEditable()
   @Experimental() // untriaged
   Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
 
 }
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+// TODO(alanknight): Provide a nicer constructor that uses named parameters
+// rather than an initialization map.
+@DomName('ServiceWorkerMessageEvent')
+@Experimental() // untriaged
+class ServiceWorkerMessageEvent extends Event {
+
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  dynamic get data => convertNativeToDart_SerializedScriptValue(
+      _blink.BlinkMessageEvent.instance.data_Getter_(unwrap_jso(this)));
+
+  // To suppress missing implicit constructor warnings.
+  factory ServiceWorkerMessageEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('ServiceWorkerMessageEvent.ServiceWorkerMessageEvent')
+  @DocsEditable()
+  factory ServiceWorkerMessageEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkServiceWorkerMessageEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkServiceWorkerMessageEvent.instance.constructorCallback_1_(type));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static ServiceWorkerMessageEvent internalCreateServiceWorkerMessageEvent() {
+    return new ServiceWorkerMessageEvent._internalWrap();
+  }
+
+  external factory ServiceWorkerMessageEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  ServiceWorkerMessageEvent.internal_() : super.internal_();
+
+
+  @DomName('ServiceWorkerMessageEvent.lastEventId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get lastEventId => _blink.BlinkServiceWorkerMessageEvent.instance.lastEventId_Getter_(unwrap_jso(this));
+  
+  @DomName('ServiceWorkerMessageEvent.origin')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get origin => _blink.BlinkServiceWorkerMessageEvent.instance.origin_Getter_(unwrap_jso(this));
+  
+  @DomName('ServiceWorkerMessageEvent.ports')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<MessagePort> get ports => wrap_jso(_blink.BlinkServiceWorkerMessageEvent.instance.ports_Getter_(unwrap_jso(this)));
+  
+  @DomName('ServiceWorkerMessageEvent.source')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object get source => wrap_jso(_blink.BlinkServiceWorkerMessageEvent.instance.source_Getter_(unwrap_jso(this)));
+  
+}
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
@@ -32867,26 +35759,65 @@
   @Experimental() // untriaged
   _ServiceWorker get active => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.active_Getter_(unwrap_jso(this)));
   
+  @DomName('ServiceWorkerRegistration.geofencing')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Geofencing get geofencing => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.geofencing_Getter_(unwrap_jso(this)));
+  
   @DomName('ServiceWorkerRegistration.installing')
   @DocsEditable()
   @Experimental() // untriaged
   _ServiceWorker get installing => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.installing_Getter_(unwrap_jso(this)));
   
+  @DomName('ServiceWorkerRegistration.periodicSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  PeriodicSyncManager get periodicSync => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.periodicSync_Getter_(unwrap_jso(this)));
+  
+  @DomName('ServiceWorkerRegistration.pushManager')
+  @DocsEditable()
+  @Experimental() // untriaged
+  PushManager get pushManager => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.pushManager_Getter_(unwrap_jso(this)));
+  
   @DomName('ServiceWorkerRegistration.scope')
   @DocsEditable()
   @Experimental() // untriaged
   String get scope => _blink.BlinkServiceWorkerRegistration.instance.scope_Getter_(unwrap_jso(this));
   
+  @DomName('ServiceWorkerRegistration.sync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  SyncManager get sync => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.sync_Getter_(unwrap_jso(this)));
+  
   @DomName('ServiceWorkerRegistration.waiting')
   @DocsEditable()
   @Experimental() // untriaged
   _ServiceWorker get waiting => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.waiting_Getter_(unwrap_jso(this)));
   
+  Future getNotifications([Map filter]) {
+    if (filter != null) {
+      return wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.getNotifications_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(filter)));
+    }
+    return wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.getNotifications_Callback_0_(unwrap_jso(this)));
+  }
+
+  Future showNotification(String title, [Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.showNotification_Callback_2_(unwrap_jso(this), title, convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.showNotification_Callback_1_(unwrap_jso(this), title));
+  }
+
   @DomName('ServiceWorkerRegistration.unregister')
   @DocsEditable()
   @Experimental() // untriaged
   Future unregister() => wrap_jso(_blink.BlinkServiceWorkerRegistration.instance.unregister_Callback_0_(unwrap_jso(this)));
   
+  @DomName('ServiceWorkerRegistration.update')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void update() => _blink.BlinkServiceWorkerRegistration.instance.update_Callback_0_(unwrap_jso(this));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -32966,6 +35897,11 @@
   @DocsEditable()
   Element get activeElement => wrap_jso(_blink.BlinkShadowRoot.instance.activeElement_Getter_(unwrap_jso(this)));
   
+  @DomName('ShadowRoot.delegatesFocus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get delegatesFocus => _blink.BlinkShadowRoot.instance.delegatesFocus_Getter_(unwrap_jso(this));
+  
   @DomName('ShadowRoot.host')
   @DocsEditable()
   @Experimental() // untriaged
@@ -32997,17 +35933,10 @@
   @DocsEditable()
   Element elementFromPoint(int x, int y) => wrap_jso(_blink.BlinkShadowRoot.instance.elementFromPoint_Callback_2_(unwrap_jso(this), x, y));
   
-  @DomName('ShadowRoot.getElementById')
+  @DomName('ShadowRoot.elementsFromPoint')
   @DocsEditable()
-  Element getElementById(String elementId) => wrap_jso(_blink.BlinkShadowRoot.instance.getElementById_Callback_1_(unwrap_jso(this), elementId));
-  
-  @DomName('ShadowRoot.getElementsByClassName')
-  @DocsEditable()
-  List<Node> getElementsByClassName(String className) => wrap_jso(_blink.BlinkShadowRoot.instance.getElementsByClassName_Callback_1_(unwrap_jso(this), className));
-  
-  @DomName('ShadowRoot.getElementsByTagName')
-  @DocsEditable()
-  List<Node> getElementsByTagName(String tagName) => wrap_jso(_blink.BlinkShadowRoot.instance.getElementsByTagName_Callback_1_(unwrap_jso(this), tagName));
+  @Experimental() // untriaged
+  List<Element> elementsFromPoint(int x, int y) => wrap_jso(_blink.BlinkShadowRoot.instance.elementsFromPoint_Callback_2_(unwrap_jso(this), x, y));
   
   @DomName('ShadowRoot.getSelection')
   @DocsEditable()
@@ -33058,6 +35987,41 @@
 
 
 @DocsEditable()
+@DomName('SharedArrayBuffer')
+@Experimental() // untriaged
+class SharedArrayBuffer extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory SharedArrayBuffer._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static SharedArrayBuffer internalCreateSharedArrayBuffer() {
+    return new SharedArrayBuffer._internalWrap();
+  }
+
+  factory SharedArrayBuffer._internalWrap() {
+    return new SharedArrayBuffer.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  SharedArrayBuffer.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('SharedArrayBuffer.byteLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get byteLength => _blink.BlinkSharedArrayBuffer.instance.byteLength_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('SharedWorker')
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-and-the-sharedworker-interface
 @Experimental()
@@ -33221,6 +36185,16 @@
   @DocsEditable()
   set timestampOffset(num value) => _blink.BlinkSourceBuffer.instance.timestampOffset_Setter_(unwrap_jso(this), value);
   
+  @DomName('SourceBuffer.trackDefaults')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TrackDefaultList get trackDefaults => wrap_jso(_blink.BlinkSourceBuffer.instance.trackDefaults_Getter_(unwrap_jso(this)));
+  
+  @DomName('SourceBuffer.trackDefaults')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set trackDefaults(TrackDefaultList value) => _blink.BlinkSourceBuffer.instance.trackDefaults_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
   @DomName('SourceBuffer.updating')
   @DocsEditable()
   @Experimental() // untriaged
@@ -33233,7 +36207,7 @@
   @DomName('SourceBuffer.appendBuffer')
   @DocsEditable()
   @Experimental() // untriaged
-  void appendBuffer(ByteBuffer data) => _blink.BlinkSourceBuffer.instance.appendBuffer_Callback_1_(unwrap_jso(this), data);
+  void appendBuffer(ByteBuffer data) => _blink.BlinkSourceBuffer.instance.appendBuffer_Callback_1_(unwrap_jso(this), unwrap_jso(data));
   
   void appendStream(FileStream stream, [int maxSize]) {
     if (maxSize != null) {
@@ -33372,16 +36346,6 @@
    */
   SourceElement.created() : super.created();
 
-  @DomName('HTMLSourceElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLSourceElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLSourceElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLSourceElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLSourceElement.media')
   @DocsEditable()
   String get media => _blink.BlinkHTMLSourceElement.instance.media_Getter_(unwrap_jso(this));
@@ -33822,6 +36786,16 @@
   /// Checks if this type is supported on the current platform.
   static bool get supported => true;
 
+  @DomName('SpeechRecognition.audioTrack')
+  @DocsEditable()
+  @Experimental() // untriaged
+  MediaStreamTrack get audioTrack => wrap_jso(_blink.BlinkSpeechRecognition.instance.audioTrack_Getter_(unwrap_jso(this)));
+  
+  @DomName('SpeechRecognition.audioTrack')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set audioTrack(MediaStreamTrack value) => _blink.BlinkSpeechRecognition.instance.audioTrack_Setter_(unwrap_jso(this), unwrap_jso(value));
+  
   @DomName('SpeechRecognition.continuous')
   @DocsEditable()
   bool get continuous => _blink.BlinkSpeechRecognition.instance.continuous_Getter_(unwrap_jso(this));
@@ -33862,6 +36836,16 @@
   @DocsEditable()
   set maxAlternatives(int value) => _blink.BlinkSpeechRecognition.instance.maxAlternatives_Setter_(unwrap_jso(this), value);
   
+  @DomName('SpeechRecognition.serviceURI')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get serviceUri => _blink.BlinkSpeechRecognition.instance.serviceURI_Getter_(unwrap_jso(this));
+  
+  @DomName('SpeechRecognition.serviceURI')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set serviceUri(String value) => _blink.BlinkSpeechRecognition.instance.serviceURI_Setter_(unwrap_jso(this), value);
+  
   @DomName('SpeechRecognition.abort')
   @DocsEditable()
   void abort() => _blink.BlinkSpeechRecognition.instance.abort_Callback_0_(unwrap_jso(this));
@@ -33986,6 +36970,16 @@
   // To suppress missing implicit constructor warnings.
   factory SpeechRecognitionError._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SpeechRecognitionError.SpeechRecognitionError')
+  @DocsEditable()
+  factory SpeechRecognitionError(String type, [Map initDict]) {
+    if (initDict != null) {
+      var initDict_1 = convertDartToNative_Dictionary(initDict);
+      return wrap_jso(_blink.BlinkSpeechRecognitionError.instance.constructorCallback_2_(type, initDict_1));
+    }
+    return wrap_jso(_blink.BlinkSpeechRecognitionError.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static SpeechRecognitionError internalCreateSpeechRecognitionError() {
@@ -34023,6 +37017,16 @@
   // To suppress missing implicit constructor warnings.
   factory SpeechRecognitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('SpeechRecognitionEvent.SpeechRecognitionEvent')
+  @DocsEditable()
+  factory SpeechRecognitionEvent(String type, [Map initDict]) {
+    if (initDict != null) {
+      var initDict_1 = convertDartToNative_Dictionary(initDict);
+      return wrap_jso(_blink.BlinkSpeechRecognitionEvent.instance.constructorCallback_2_(type, initDict_1));
+    }
+    return wrap_jso(_blink.BlinkSpeechRecognitionEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static SpeechRecognitionEvent internalCreateSpeechRecognitionEvent() {
@@ -34195,6 +37199,11 @@
   @DocsEditable()
   String get name => _blink.BlinkSpeechSynthesisEvent.instance.name_Getter_(unwrap_jso(this));
   
+  @DomName('SpeechSynthesisEvent.utterance')
+  @DocsEditable()
+  @Experimental() // untriaged
+  SpeechSynthesisUtterance get utterance => wrap_jso(_blink.BlinkSpeechSynthesisEvent.instance.utterance_Getter_(unwrap_jso(this)));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -34438,6 +37447,80 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('StashedMessagePort')
+@Experimental() // untriaged
+class StashedMessagePort extends MessagePort {
+  // To suppress missing implicit constructor warnings.
+  factory StashedMessagePort._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static StashedMessagePort internalCreateStashedMessagePort() {
+    return new StashedMessagePort._internalWrap();
+  }
+
+  external factory StashedMessagePort._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  StashedMessagePort.internal_() : super.internal_();
+
+
+  @DomName('StashedMessagePort.name')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get name => _blink.BlinkStashedMessagePort.instance.name_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('StashedPortCollection')
+@Experimental() // untriaged
+class StashedPortCollection extends EventTarget {
+  // To suppress missing implicit constructor warnings.
+  factory StashedPortCollection._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StashedPortCollection.messageEvent')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const EventStreamProvider<MessageEvent> messageEvent = const EventStreamProvider<MessageEvent>('message');
+
+
+  @Deprecated("Internal Use Only")
+  static StashedPortCollection internalCreateStashedPortCollection() {
+    return new StashedPortCollection._internalWrap();
+  }
+
+  external factory StashedPortCollection._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  StashedPortCollection.internal_() : super.internal_();
+
+
+  @DomName('StashedPortCollection.add')
+  @DocsEditable()
+  @Experimental() // untriaged
+  StashedMessagePort add(String name, MessagePort port) => wrap_jso(_blink.BlinkStashedPortCollection.instance.add_Callback_2_(unwrap_jso(this), name, unwrap_jso(port)));
+  
+  @DomName('StashedPortCollection.onmessage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 
 /**
  * The type used by the
@@ -34626,8 +37709,16 @@
         newValue, url, storageArea);
     return e;
   }
-  // To suppress missing implicit constructor warnings.
-  factory StorageEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StorageEvent.StorageEvent')
+  @DocsEditable()
+  factory StorageEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkStorageEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkStorageEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -34958,6 +38049,137 @@
 
 
 @DocsEditable()
+@DomName('SyncEvent')
+@Experimental() // untriaged
+class SyncEvent extends ExtendableEvent {
+  // To suppress missing implicit constructor warnings.
+  factory SyncEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('SyncEvent.SyncEvent')
+  @DocsEditable()
+  factory SyncEvent(String type, Map init) {
+    var init_1 = convertDartToNative_Dictionary(init);
+    return wrap_jso(_blink.BlinkSyncEvent.instance.constructorCallback_2_(type, init_1));
+  }
+
+
+  @Deprecated("Internal Use Only")
+  static SyncEvent internalCreateSyncEvent() {
+    return new SyncEvent._internalWrap();
+  }
+
+  external factory SyncEvent._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  SyncEvent.internal_() : super.internal_();
+
+
+  @DomName('SyncEvent.registration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  SyncRegistration get registration => wrap_jso(_blink.BlinkSyncEvent.instance.registration_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('SyncManager')
+@Experimental() // untriaged
+class SyncManager extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory SyncManager._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static SyncManager internalCreateSyncManager() {
+    return new SyncManager._internalWrap();
+  }
+
+  factory SyncManager._internalWrap() {
+    return new SyncManager.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  SyncManager.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('SyncManager.getRegistration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistration(String tag) => wrap_jso(_blink.BlinkSyncManager.instance.getRegistration_Callback_1_(unwrap_jso(this), tag));
+  
+  @DomName('SyncManager.getRegistrations')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future getRegistrations() => wrap_jso(_blink.BlinkSyncManager.instance.getRegistrations_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('SyncManager.permissionState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future permissionState() => wrap_jso(_blink.BlinkSyncManager.instance.permissionState_Callback_0_(unwrap_jso(this)));
+  
+  Future register([Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkSyncManager.instance.register_Callback_1_(unwrap_jso(this), convertDartToNative_Dictionary(options)));
+    }
+    return wrap_jso(_blink.BlinkSyncManager.instance.register_Callback_0_(unwrap_jso(this)));
+  }
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('SyncRegistration')
+@Experimental() // untriaged
+class SyncRegistration extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory SyncRegistration._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static SyncRegistration internalCreateSyncRegistration() {
+    return new SyncRegistration._internalWrap();
+  }
+
+  factory SyncRegistration._internalWrap() {
+    return new SyncRegistration.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  SyncRegistration.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('SyncRegistration.tag')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get tag => _blink.BlinkSyncRegistration.instance.tag_Getter_(unwrap_jso(this));
+  
+  @DomName('SyncRegistration.unregister')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future unregister() => wrap_jso(_blink.BlinkSyncRegistration.instance.unregister_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('HTMLTableCaptionElement')
 class TableCaptionElement extends HtmlElement {
   // To suppress missing implicit constructor warnings.
@@ -35478,6 +38700,16 @@
    */
   TextAreaElement.created() : super.created();
 
+  @DomName('HTMLTextAreaElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get autocapitalize => _blink.BlinkHTMLTextAreaElement.instance.autocapitalize_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLTextAreaElement.autocapitalize')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set autocapitalize(String value) => _blink.BlinkHTMLTextAreaElement.instance.autocapitalize_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLTextAreaElement.autofocus')
   @DocsEditable()
   bool get autofocus => _blink.BlinkHTMLTextAreaElement.instance.autofocus_Getter_(unwrap_jso(this));
@@ -35549,6 +38781,16 @@
   @DocsEditable()
   set maxLength(int value) => _blink.BlinkHTMLTextAreaElement.instance.maxLength_Setter_(unwrap_jso(this), value);
   
+  @DomName('HTMLTextAreaElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get minLength => _blink.BlinkHTMLTextAreaElement.instance.minLength_Getter_(unwrap_jso(this));
+  
+  @DomName('HTMLTextAreaElement.minLength')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set minLength(int value) => _blink.BlinkHTMLTextAreaElement.instance.minLength_Setter_(unwrap_jso(this), value);
+  
   @DomName('HTMLTextAreaElement.name')
   @DocsEditable()
   String get name => _blink.BlinkHTMLTextAreaElement.instance.name_Getter_(unwrap_jso(this));
@@ -35653,6 +38895,11 @@
   @DocsEditable()
   bool checkValidity() => _blink.BlinkHTMLTextAreaElement.instance.checkValidity_Callback_0_(unwrap_jso(this));
   
+  @DomName('HTMLTextAreaElement.reportValidity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool reportValidity() => _blink.BlinkHTMLTextAreaElement.instance.reportValidity_Callback_0_(unwrap_jso(this));
+  
   @DomName('HTMLTextAreaElement.select')
   @DocsEditable()
   void select() => _blink.BlinkHTMLTextAreaElement.instance.select_Callback_0_(unwrap_jso(this));
@@ -36267,126 +39514,6 @@
 
 
 @DocsEditable()
-@DomName('Timing')
-@Experimental() // untriaged
-class Timing extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory Timing._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static Timing internalCreateTiming() {
-    return new Timing._internalWrap();
-  }
-
-  factory Timing._internalWrap() {
-    return new Timing.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  Timing.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-  @DomName('Timing.delay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get delay => _blink.BlinkTiming.instance.delay_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.delay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set delay(num value) => _blink.BlinkTiming.instance.delay_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.direction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get direction => _blink.BlinkTiming.instance.direction_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.direction')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set direction(String value) => _blink.BlinkTiming.instance.direction_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.easing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get easing => _blink.BlinkTiming.instance.easing_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.easing')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set easing(String value) => _blink.BlinkTiming.instance.easing_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.endDelay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get endDelay => _blink.BlinkTiming.instance.endDelay_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.endDelay')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set endDelay(num value) => _blink.BlinkTiming.instance.endDelay_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.fill')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get fill => _blink.BlinkTiming.instance.fill_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.fill')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set fill(String value) => _blink.BlinkTiming.instance.fill_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.iterationStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get iterationStart => _blink.BlinkTiming.instance.iterationStart_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.iterationStart')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set iterationStart(num value) => _blink.BlinkTiming.instance.iterationStart_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.iterations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get iterations => _blink.BlinkTiming.instance.iterations_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.iterations')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set iterations(num value) => _blink.BlinkTiming.instance.iterations_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  num get playbackRate => _blink.BlinkTiming.instance.playbackRate_Getter_(unwrap_jso(this));
-  
-  @DomName('Timing.playbackRate')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set playbackRate(num value) => _blink.BlinkTiming.instance.playbackRate_Setter_(unwrap_jso(this), value);
-  
-  @DomName('Timing.__getter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  Object __getter__(String name) => wrap_jso(_blink.BlinkTiming.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
-  @DomName('Timing.__setter__')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void __setter__(String name, num duration) => _blink.BlinkTiming.instance.$__setter___Callback_2_(unwrap_jso(this), name, duration);
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('HTMLTitleElement')
 class TitleElement extends HtmlElement {
   // To suppress missing implicit constructor warnings.
@@ -36478,6 +39605,11 @@
   @Experimental() // untriaged
   num get _radiusY => _blink.BlinkTouch.instance.radiusY_Getter_(unwrap_jso(this));
   
+  @DomName('Touch.rotationAngle')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get rotationAngle => _blink.BlinkTouch.instance.rotationAngle_Getter_(unwrap_jso(this));
+  
   @DomName('Touch.screenX')
   @DocsEditable()
   num get _screenX => _blink.BlinkTouch.instance.screenX_Getter_(unwrap_jso(this));
@@ -36490,13 +39622,6 @@
   @DocsEditable()
   EventTarget get target => wrap_jso(_blink.BlinkTouch.instance.target_Getter_(unwrap_jso(this)));
   
-  @DomName('Touch.webkitRotationAngle')
-  @DocsEditable()
-  @SupportedBrowser(SupportedBrowser.CHROME)
-  @SupportedBrowser(SupportedBrowser.SAFARI)
-  @Experimental()
-  num get rotationAngle => _blink.BlinkTouch.instance.webkitRotationAngle_Getter_(unwrap_jso(this));
-  
 
 // As of Chrome 37, these all changed from long to double.  This code
 // preserves backwards compatability for the time being.
@@ -36716,6 +39841,121 @@
 
 
 @DocsEditable()
+@DomName('TrackDefault')
+@Experimental() // untriaged
+class TrackDefault extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory TrackDefault._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('TrackDefault.TrackDefault')
+  @DocsEditable()
+  factory TrackDefault(String type, String language, String label, List<String> kinds, [String byteStreamTrackID]) {
+    if (byteStreamTrackID != null) {
+      List kinds_1 = convertDartToNative_StringArray(kinds);
+      return wrap_jso(_blink.BlinkTrackDefault.instance.constructorCallback_5_(type, language, label, kinds_1, byteStreamTrackID));
+    }
+    List kinds_1 = convertDartToNative_StringArray(kinds);
+    return wrap_jso(_blink.BlinkTrackDefault.instance.constructorCallback_4_(type, language, label, kinds_1));
+  }
+
+  @Deprecated("Internal Use Only")
+  static TrackDefault internalCreateTrackDefault() {
+    return new TrackDefault._internalWrap();
+  }
+
+  factory TrackDefault._internalWrap() {
+    return new TrackDefault.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  TrackDefault.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('TrackDefault.byteStreamTrackID')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get byteStreamTrackID => _blink.BlinkTrackDefault.instance.byteStreamTrackID_Getter_(unwrap_jso(this));
+  
+  @DomName('TrackDefault.kinds')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<String> get kinds => _blink.BlinkTrackDefault.instance.kinds_Getter_(unwrap_jso(this));
+  
+  @DomName('TrackDefault.label')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get label => _blink.BlinkTrackDefault.instance.label_Getter_(unwrap_jso(this));
+  
+  @DomName('TrackDefault.language')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get language => _blink.BlinkTrackDefault.instance.language_Getter_(unwrap_jso(this));
+  
+  @DomName('TrackDefault.type')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get type => _blink.BlinkTrackDefault.instance.type_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('TrackDefaultList')
+@Experimental() // untriaged
+class TrackDefaultList extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory TrackDefaultList._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('TrackDefaultList.TrackDefaultList')
+  @DocsEditable()
+  factory TrackDefaultList([List<TrackDefault> trackDefaults]) {
+    if (trackDefaults != null) {
+      return wrap_jso(_blink.BlinkTrackDefaultList.instance.constructorCallback_1_(trackDefaults));
+    }
+    return wrap_jso(_blink.BlinkTrackDefaultList.instance.constructorCallback_0_());
+  }
+
+  @Deprecated("Internal Use Only")
+  static TrackDefaultList internalCreateTrackDefaultList() {
+    return new TrackDefaultList._internalWrap();
+  }
+
+  factory TrackDefaultList._internalWrap() {
+    return new TrackDefaultList.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  TrackDefaultList.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('TrackDefaultList.length')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get length => _blink.BlinkTrackDefaultList.instance.length_Getter_(unwrap_jso(this));
+  
+  @DomName('TrackDefaultList.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TrackDefault item(int index) => wrap_jso(_blink.BlinkTrackDefaultList.instance.item_Callback_1_(unwrap_jso(this), index));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('HTMLTrackElement')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.IE, '10')
@@ -36775,16 +40015,6 @@
   @DocsEditable()
   set defaultValue(bool value) => _blink.BlinkHTMLTrackElement.instance.default_Setter_(unwrap_jso(this), value);
   
-  @DomName('HTMLTrackElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get integrity => _blink.BlinkHTMLTrackElement.instance.integrity_Getter_(unwrap_jso(this));
-  
-  @DomName('HTMLTrackElement.integrity')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set integrity(String value) => _blink.BlinkHTMLTrackElement.instance.integrity_Setter_(unwrap_jso(this), value);
-  
   @DomName('HTMLTrackElement.kind')
   @DocsEditable()
   String get kind => _blink.BlinkHTMLTrackElement.instance.kind_Getter_(unwrap_jso(this));
@@ -36840,6 +40070,16 @@
   // To suppress missing implicit constructor warnings.
   factory TrackEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('TrackEvent.TrackEvent')
+  @DocsEditable()
+  factory TrackEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkTrackEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkTrackEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static TrackEvent internalCreateTrackEvent() {
@@ -36870,6 +40110,16 @@
   // To suppress missing implicit constructor warnings.
   factory TransitionEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('TransitionEvent.TransitionEvent')
+  @DocsEditable()
+  factory TransitionEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkTransitionEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkTransitionEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static TransitionEvent internalCreateTransitionEvent() {
@@ -36998,8 +40248,16 @@
     e._initUIEvent(type, canBubble, cancelable, view, detail);
     return e;
   }
-  // To suppress missing implicit constructor warnings.
-  factory UIEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('UIEvent.UIEvent')
+  @DocsEditable()
+  factory UIEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkUIEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkUIEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -37027,29 +40285,10 @@
   @Unstable()
   int get _keyCode => _blink.BlinkUIEvent.instance.keyCode_Getter_(unwrap_jso(this));
   
-  @DomName('UIEvent.layerX')
+  @DomName('UIEvent.sourceDevice')
   @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  int get _layerX => _blink.BlinkUIEvent.instance.layerX_Getter_(unwrap_jso(this));
-  
-  @DomName('UIEvent.layerY')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  int get _layerY => _blink.BlinkUIEvent.instance.layerY_Getter_(unwrap_jso(this));
-  
-  @DomName('UIEvent.pageX')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  int get _pageX => _blink.BlinkUIEvent.instance.pageX_Getter_(unwrap_jso(this));
-  
-  @DomName('UIEvent.pageY')
-  @DocsEditable()
-  // http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevents
-  @Experimental() // nonstandard
-  int get _pageY => _blink.BlinkUIEvent.instance.pageY_Getter_(unwrap_jso(this));
+  @Experimental() // untriaged
+  InputDevice get sourceDevice => wrap_jso(_blink.BlinkUIEvent.instance.sourceDevice_Getter_(unwrap_jso(this)));
   
   @DomName('UIEvent.view')
   @DocsEditable()
@@ -37058,20 +40297,12 @@
   @DomName('UIEvent.which')
   @DocsEditable()
   @Unstable()
-  int get which => _blink.BlinkUIEvent.instance.which_Getter_(unwrap_jso(this));
+  int get _which => _blink.BlinkUIEvent.instance.which_Getter_(unwrap_jso(this));
   
   @DomName('UIEvent.initUIEvent')
   @DocsEditable()
-  void _initUIEvent(String type, bool canBubble, bool cancelable, Window view, int detail) => _blink.BlinkUIEvent.instance.initUIEvent_Callback_5_(unwrap_jso(this), type, canBubble, cancelable, unwrap_jso(view), detail);
+  void _initUIEvent(String type, bool bubbles, bool cancelable, Window view, int detail) => _blink.BlinkUIEvent.instance.initUIEvent_Callback_5_(unwrap_jso(this), type, bubbles, cancelable, unwrap_jso(view), detail);
   
-
-  @DomName('UIEvent.layerX')
-  @DomName('UIEvent.layerY')
-  Point get layer => new Point(_layerX, _layerY);
-
-  @DomName('UIEvent.pageX')
-  @DomName('UIEvent.pageY')
-  Point get page => new Point(_pageX, _pageY);
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -37507,6 +40738,256 @@
 
 
 @DocsEditable()
+@DomName('VRDevice')
+@Experimental() // untriaged
+class VRDevice extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory VRDevice._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static VRDevice internalCreateVRDevice() {
+    return new VRDevice._internalWrap();
+  }
+
+  factory VRDevice._internalWrap() {
+    return new VRDevice.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  VRDevice.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('VRDevice.deviceId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get deviceId => _blink.BlinkVRDevice.instance.deviceId_Getter_(unwrap_jso(this));
+  
+  @DomName('VRDevice.deviceName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get deviceName => _blink.BlinkVRDevice.instance.deviceName_Getter_(unwrap_jso(this));
+  
+  @DomName('VRDevice.hardwareUnitId')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get hardwareUnitId => _blink.BlinkVRDevice.instance.hardwareUnitId_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('VREyeParameters')
+@Experimental() // untriaged
+class VREyeParameters extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory VREyeParameters._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static VREyeParameters internalCreateVREyeParameters() {
+    return new VREyeParameters._internalWrap();
+  }
+
+  factory VREyeParameters._internalWrap() {
+    return new VREyeParameters.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  VREyeParameters.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('VREyeParameters.currentFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRFieldOfView get currentFieldOfView => wrap_jso(_blink.BlinkVREyeParameters.instance.currentFieldOfView_Getter_(unwrap_jso(this)));
+  
+  @DomName('VREyeParameters.eyeTranslation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get eyeTranslation => wrap_jso(_blink.BlinkVREyeParameters.instance.eyeTranslation_Getter_(unwrap_jso(this)));
+  
+  @DomName('VREyeParameters.maximumFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRFieldOfView get maximumFieldOfView => wrap_jso(_blink.BlinkVREyeParameters.instance.maximumFieldOfView_Getter_(unwrap_jso(this)));
+  
+  @DomName('VREyeParameters.minimumFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRFieldOfView get minimumFieldOfView => wrap_jso(_blink.BlinkVREyeParameters.instance.minimumFieldOfView_Getter_(unwrap_jso(this)));
+  
+  @DomName('VREyeParameters.recommendedFieldOfView')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VRFieldOfView get recommendedFieldOfView => wrap_jso(_blink.BlinkVREyeParameters.instance.recommendedFieldOfView_Getter_(unwrap_jso(this)));
+  
+  @DomName('VREyeParameters.renderRect')
+  @DocsEditable()
+  @Experimental() // untriaged
+  _DomRect get renderRect => wrap_jso(_blink.BlinkVREyeParameters.instance.renderRect_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('VRFieldOfView')
+@Experimental() // untriaged
+class VRFieldOfView extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory VRFieldOfView._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('VRFieldOfView.VRFieldOfView')
+  @DocsEditable()
+  factory VRFieldOfView([Map fov]) {
+    if (fov != null) {
+      var fov_1 = convertDartToNative_Dictionary(fov);
+      return wrap_jso(_blink.BlinkVRFieldOfView.instance.constructorCallback_1_(fov_1));
+    }
+    return wrap_jso(_blink.BlinkVRFieldOfView.instance.constructorCallback_0_());
+  }
+
+  @Deprecated("Internal Use Only")
+  static VRFieldOfView internalCreateVRFieldOfView() {
+    return new VRFieldOfView._internalWrap();
+  }
+
+  factory VRFieldOfView._internalWrap() {
+    return new VRFieldOfView.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  VRFieldOfView.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('VRFieldOfView.downDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get downDegrees => _blink.BlinkVRFieldOfView.instance.downDegrees_Getter_(unwrap_jso(this));
+  
+  @DomName('VRFieldOfView.downDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set downDegrees(num value) => _blink.BlinkVRFieldOfView.instance.downDegrees_Setter_(unwrap_jso(this), value);
+  
+  @DomName('VRFieldOfView.leftDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get leftDegrees => _blink.BlinkVRFieldOfView.instance.leftDegrees_Getter_(unwrap_jso(this));
+  
+  @DomName('VRFieldOfView.leftDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set leftDegrees(num value) => _blink.BlinkVRFieldOfView.instance.leftDegrees_Setter_(unwrap_jso(this), value);
+  
+  @DomName('VRFieldOfView.rightDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get rightDegrees => _blink.BlinkVRFieldOfView.instance.rightDegrees_Getter_(unwrap_jso(this));
+  
+  @DomName('VRFieldOfView.rightDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set rightDegrees(num value) => _blink.BlinkVRFieldOfView.instance.rightDegrees_Setter_(unwrap_jso(this), value);
+  
+  @DomName('VRFieldOfView.upDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get upDegrees => _blink.BlinkVRFieldOfView.instance.upDegrees_Getter_(unwrap_jso(this));
+  
+  @DomName('VRFieldOfView.upDegrees')
+  @DocsEditable()
+  @Experimental() // untriaged
+  set upDegrees(num value) => _blink.BlinkVRFieldOfView.instance.upDegrees_Setter_(unwrap_jso(this), value);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('VRPositionState')
+@Experimental() // untriaged
+class VRPositionState extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory VRPositionState._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static VRPositionState internalCreateVRPositionState() {
+    return new VRPositionState._internalWrap();
+  }
+
+  factory VRPositionState._internalWrap() {
+    return new VRPositionState.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  VRPositionState.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('VRPositionState.angularAcceleration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get angularAcceleration => wrap_jso(_blink.BlinkVRPositionState.instance.angularAcceleration_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.angularVelocity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get angularVelocity => wrap_jso(_blink.BlinkVRPositionState.instance.angularVelocity_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.linearAcceleration')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get linearAcceleration => wrap_jso(_blink.BlinkVRPositionState.instance.linearAcceleration_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.linearVelocity')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get linearVelocity => wrap_jso(_blink.BlinkVRPositionState.instance.linearVelocity_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.orientation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get orientation => wrap_jso(_blink.BlinkVRPositionState.instance.orientation_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.position')
+  @DocsEditable()
+  @Experimental() // untriaged
+  DomPoint get position => wrap_jso(_blink.BlinkVRPositionState.instance.position_Getter_(unwrap_jso(this)));
+  
+  @DomName('VRPositionState.timeStamp')
+  @DocsEditable()
+  @Experimental() // untriaged
+  num get timeStamp => _blink.BlinkVRPositionState.instance.timeStamp_Getter_(unwrap_jso(this));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('ValidityState')
 class ValidityState extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
@@ -37555,6 +41036,11 @@
   @DocsEditable()
   bool get tooLong => _blink.BlinkValidityState.instance.tooLong_Getter_(unwrap_jso(this));
   
+  @DomName('ValidityState.tooShort')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get tooShort => _blink.BlinkValidityState.instance.tooShort_Getter_(unwrap_jso(this));
+  
   @DomName('ValidityState.typeMismatch')
   @DocsEditable()
   bool get typeMismatch => _blink.BlinkValidityState.instance.typeMismatch_Getter_(unwrap_jso(this));
@@ -37891,22 +41377,22 @@
   @DomName('VTTCue.line')
   @DocsEditable()
   @Experimental() // untriaged
-  int get line => _blink.BlinkVTTCue.instance.line_Getter_(unwrap_jso(this));
+  Object get line => wrap_jso(_blink.BlinkVTTCue.instance.line_Getter_(unwrap_jso(this)));
   
   @DomName('VTTCue.line')
   @DocsEditable()
   @Experimental() // untriaged
-  set line(int value) => _blink.BlinkVTTCue.instance.line_Setter_(unwrap_jso(this), value);
+  set line(Object value) => _blink.BlinkVTTCue.instance.line_Setter_(unwrap_jso(this), unwrap_jso(value));
   
   @DomName('VTTCue.position')
   @DocsEditable()
   @Experimental() // untriaged
-  int get position => _blink.BlinkVTTCue.instance.position_Getter_(unwrap_jso(this));
+  Object get position => wrap_jso(_blink.BlinkVTTCue.instance.position_Getter_(unwrap_jso(this)));
   
   @DomName('VTTCue.position')
   @DocsEditable()
   @Experimental() // untriaged
-  set position(int value) => _blink.BlinkVTTCue.instance.position_Setter_(unwrap_jso(this), value);
+  set position(Object value) => _blink.BlinkVTTCue.instance.position_Setter_(unwrap_jso(this), unwrap_jso(value));
   
   @DomName('VTTCue.regionId')
   @DocsEditable()
@@ -37921,12 +41407,12 @@
   @DomName('VTTCue.size')
   @DocsEditable()
   @Experimental() // untriaged
-  int get size => _blink.BlinkVTTCue.instance.size_Getter_(unwrap_jso(this));
+  num get size => _blink.BlinkVTTCue.instance.size_Getter_(unwrap_jso(this));
   
   @DomName('VTTCue.size')
   @DocsEditable()
   @Experimental() // untriaged
-  set size(int value) => _blink.BlinkVTTCue.instance.size_Setter_(unwrap_jso(this), value);
+  set size(num value) => _blink.BlinkVTTCue.instance.size_Setter_(unwrap_jso(this), value);
   
   @DomName('VTTCue.snapToLines')
   @DocsEditable()
@@ -38224,18 +41710,11 @@
 
   @DomName('WebSocket.WebSocket')
   @DocsEditable()
-  factory WebSocket(String url, [protocol_OR_protocols]) {
-    if ((url is String || url == null) && protocol_OR_protocols == null) {
-      return wrap_jso(_blink.BlinkWebSocket.instance.constructorCallback_1_(url));
+  factory WebSocket(String url, [Object protocols]) {
+    if (protocols != null) {
+      return wrap_jso(_blink.BlinkWebSocket.instance.constructorCallback_2_(url, protocols));
     }
-    if ((protocol_OR_protocols is String || protocol_OR_protocols == null) && (url is String || url == null)) {
-      return wrap_jso(_blink.BlinkWebSocket.instance.constructorCallback_2_(url, protocol_OR_protocols));
-    }
-    if ((protocol_OR_protocols is List<String> || protocol_OR_protocols == null) && (url is String || url == null)) {
-      List protocols_1 = convertDartToNative_StringArray(protocol_OR_protocols);
-      return wrap_jso(_blink.BlinkWebSocket.instance.constructorCallback_2_(url, protocols_1));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkWebSocket.instance.constructorCallback_1_(url));
   }
 
 
@@ -38311,19 +41790,19 @@
   }
 
   void send(data) {
-    if ((data is String || data == null)) {
+    if ((data is String)) {
       _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
       return;
     }
-    if ((data is Blob || data == null)) {
+    if ((data is Blob)) {
       _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
       return;
     }
-    if ((data is TypedData || data == null)) {
+    if ((data is TypedData)) {
       _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
       return;
     }
-    if ((data is ByteBuffer || data == null)) {
+    if ((data is ByteBuffer)) {
       _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
       return;
     }
@@ -38336,7 +41815,7 @@
   
   @DomName('WebSocket.sendByteBuffer')
   @DocsEditable()
-  void sendByteBuffer(ByteBuffer data) => _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), data);
+  void sendByteBuffer(ByteBuffer data) => _blink.BlinkWebSocket.instance.send_Callback_1_(unwrap_jso(this), unwrap_jso(data));
   
   @DomName('WebSocket.sendString')
   @DocsEditable()
@@ -38407,8 +41886,16 @@
     return wrap_jso(_blink.BlinkWheelEvent.instance.constructorCallback_2_(type, convertDartToNative_Dictionary(options)));
   }
 
-  // To suppress missing implicit constructor warnings.
-  factory WheelEvent._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('WheelEvent.WheelEvent')
+  @DocsEditable()
+  factory WheelEvent._(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkWheelEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkWheelEvent.instance.constructorCallback_1_(type));
+  }
 
 
   @Deprecated("Internal Use Only")
@@ -38555,7 +42042,7 @@
    * for the animation to continue.
    */
   @DomName('Window.requestAnimationFrame')
-  int requestAnimationFrame(RequestAnimationFrameCallback callback) {
+  int requestAnimationFrame(FrameRequestCallback callback) {
     return _requestAnimationFrame(_wrapZone(callback));
   }
 
@@ -38797,17 +42284,6 @@
   static const int TEMPORARY = 0;
 
   /**
-   * Entrypoint for CSS-related functions.
-   *
-   * ## Other resources
-   *
-   * * [The CSS interface](http://dev.w3.org/csswg/css-conditional/#the-css-interface) from W3C.
-   */
-  @DomName('Window.CSS')
-  @DocsEditable()
-  Css get css => wrap_jso(_blink.BlinkWindow.instance.CSS_Getter_(unwrap_jso(this)));
-  
-  /**
    * The application cache for this window.
    *
    * ## Other resources
@@ -38823,6 +42299,11 @@
   @DocsEditable()
   ApplicationCache get applicationCache => wrap_jso(_blink.BlinkWindow.instance.applicationCache_Getter_(unwrap_jso(this)));
   
+  @DomName('Window.caches')
+  @DocsEditable()
+  @Experimental() // untriaged
+  CacheStorage get caches => wrap_jso(_blink.BlinkWindow.instance.caches_Getter_(unwrap_jso(this)));
+  
   @DomName('Window.closed')
   @DocsEditable()
   bool get closed => _blink.BlinkWindow.instance.closed_Getter_(unwrap_jso(this));
@@ -39335,7 +42816,7 @@
 
   @DomName('Window.cancelAnimationFrame')
   @DocsEditable()
-  void cancelAnimationFrame(int id) => _blink.BlinkWindow.instance.cancelAnimationFrame_Callback_1_(unwrap_jso(this), id);
+  void cancelAnimationFrame(int handle) => _blink.BlinkWindow.instance.cancelAnimationFrame_Callback_1_(unwrap_jso(this), handle);
   
   @DomName('Window.close')
   @DocsEditable()
@@ -39348,6 +42829,13 @@
     return _blink.BlinkWindow.instance.confirm_Callback_0_(unwrap_jso(this));
   }
 
+  Future fetch(/*RequestInfo*/ input, [Map init]) {
+    if (init != null) {
+      return wrap_jso(_blink.BlinkWindow.instance.fetch_Callback_2_(unwrap_jso(this), input, convertDartToNative_Dictionary(init)));
+    }
+    return wrap_jso(_blink.BlinkWindow.instance.fetch_Callback_1_(unwrap_jso(this), input));
+  }
+
   /**
    * Finds text in this window.
    *
@@ -39363,7 +42851,7 @@
   
   @DomName('Window.getComputedStyle')
   @DocsEditable()
-  CssStyleDeclaration _getComputedStyle(Element element, String pseudoElement) => wrap_jso(_blink.BlinkWindow.instance.getComputedStyle_Callback_2_(unwrap_jso(this), unwrap_jso(element), pseudoElement));
+  CssStyleDeclaration _getComputedStyle(Element elt, String pseudoElt) => wrap_jso(_blink.BlinkWindow.instance.getComputedStyle_Callback_2_(unwrap_jso(this), unwrap_jso(elt), pseudoElt));
   
   /**
    * Returns all CSS rules that apply to the element's pseudo-element.
@@ -39413,15 +42901,15 @@
    */
   @DomName('Window.moveBy')
   @DocsEditable()
-  void moveBy(num x, num y) => _blink.BlinkWindow.instance.moveBy_Callback_2_(unwrap_jso(this), x, y);
+  void moveBy(int x, int y) => _blink.BlinkWindow.instance.moveBy_Callback_2_(unwrap_jso(this), x, y);
   
   @DomName('Window.moveTo')
   @DocsEditable()
-  void _moveTo(num x, num y) => _blink.BlinkWindow.instance.moveTo_Callback_2_(unwrap_jso(this), x, y);
+  void _moveTo(int x, int y) => _blink.BlinkWindow.instance.moveTo_Callback_2_(unwrap_jso(this), x, y);
   
   @DomName('Window.open')
   @DocsEditable()
-  WindowBase open(String url, String name, [String options]) => wrap_jso(_blink.BlinkWindow.instance.open_Callback_3_(unwrap_jso(this), url, name, options));
+  WindowBase open(String url, String target, [String features]) => wrap_jso(_blink.BlinkWindow.instance.open_Callback_3_(unwrap_jso(this), url, target, features));
   
   SqlDatabase openDatabase(String name, String version, String displayName, int estimatedSize, [DatabaseCallback creationCallback]) {
     if (creationCallback != null) {
@@ -39432,7 +42920,7 @@
 
   @DomName('Window.postMessage')
   @DocsEditable()
-  void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List<MessagePort> transfer]) => _blink.BlinkWindow.instance.postMessage_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), targetOrigin, transfer);
+  void postMessage(Object message, String targetOrigin, [List<MessagePort> transfer]) => _blink.BlinkWindow.instance.postMessage_Callback_3_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), targetOrigin, transfer);
   
   /**
    * Opens the print dialog for this window.
@@ -39448,7 +42936,7 @@
   
   @DomName('Window.requestAnimationFrame')
   @DocsEditable()
-  int _requestAnimationFrame(RequestAnimationFrameCallback callback) => _blink.BlinkWindow.instance.requestAnimationFrame_Callback_1_(unwrap_jso(this), unwrap_jso((highResTime) => callback(highResTime)));
+  int _requestAnimationFrame(FrameRequestCallback callback) => _blink.BlinkWindow.instance.requestAnimationFrame_Callback_1_(unwrap_jso(this), unwrap_jso((highResTime) => callback(highResTime)));
   
   /**
    * Resizes this window by an offset.
@@ -39460,7 +42948,7 @@
    */
   @DomName('Window.resizeBy')
   @DocsEditable()
-  void resizeBy(num x, num y) => _blink.BlinkWindow.instance.resizeBy_Callback_2_(unwrap_jso(this), x, y);
+  void resizeBy(int x, int y) => _blink.BlinkWindow.instance.resizeBy_Callback_2_(unwrap_jso(this), x, y);
   
   /**
    * Resizes this window to a specific width and height.
@@ -39472,82 +42960,81 @@
    */
   @DomName('Window.resizeTo')
   @DocsEditable()
-  void resizeTo(num width, num height) => _blink.BlinkWindow.instance.resizeTo_Callback_2_(unwrap_jso(this), width, height);
+  void resizeTo(int x, int y) => _blink.BlinkWindow.instance.resizeTo_Callback_2_(unwrap_jso(this), x, y);
   
-  void scroll(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scroll_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+  void scroll([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scroll_Callback_0_(unwrap_jso(this));
       return;
     }
-    if ((scrollOptions is Map) && (y is num) && (x is num)) {
-      _blink.BlinkWindow.instance.scroll_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scroll_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
       return;
     }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scroll_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scroll_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
       return;
     }
-    if ((scrollOptions is Map) && (y is int) && (x is int)) {
-      _blink.BlinkWindow.instance.scroll_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scroll_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
+      return;
+    }
+    if ((scrollOptions is Map) && (y is int) && (options_OR_x is int)) {
+      _blink.BlinkWindow.instance.scroll_Callback_3_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  void scrollBy(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scrollBy_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+  void scrollBy([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollBy_Callback_0_(unwrap_jso(this));
       return;
     }
-    if ((scrollOptions is Map) && (y is num) && (x is num)) {
-      _blink.BlinkWindow.instance.scrollBy_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollBy_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
       return;
     }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scrollBy_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollBy_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
       return;
     }
-    if ((scrollOptions is Map) && (y is int) && (x is int)) {
-      _blink.BlinkWindow.instance.scrollBy_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollBy_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
+      return;
+    }
+    if ((scrollOptions is Map) && (y is int) && (options_OR_x is int)) {
+      _blink.BlinkWindow.instance.scrollBy_Callback_3_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  void scrollTo(x, y, [Map scrollOptions]) {
-    if ((y is num) && (x is num) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scrollTo_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+  void scrollTo([options_OR_x, y, Map scrollOptions]) {
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollTo_Callback_0_(unwrap_jso(this));
       return;
     }
-    if ((scrollOptions is Map) && (y is num) && (x is num)) {
-      _blink.BlinkWindow.instance.scrollTo_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((options_OR_x is Map) && y == null && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollTo_Callback_1_(unwrap_jso(this), unwrap_jso(options_OR_x));
       return;
     }
-    if ((y is int) && (x is int) && scrollOptions == null) {
-      _blink.BlinkWindow.instance.scrollTo_Callback_2_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y));
+    if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollTo_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
       return;
     }
-    if ((scrollOptions is Map) && (y is int) && (x is int)) {
-      _blink.BlinkWindow.instance.scrollTo_Callback_3_(unwrap_jso(this), unwrap_jso(x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
+    if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
+      _blink.BlinkWindow.instance.scrollTo_Callback_2_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y));
+      return;
+    }
+    if ((scrollOptions is Map) && (y is int) && (options_OR_x is int)) {
+      _blink.BlinkWindow.instance.scrollTo_Callback_3_(unwrap_jso(this), unwrap_jso(options_OR_x), unwrap_jso(y), convertDartToNative_Dictionary(scrollOptions));
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
   /**
-   * Opens a new page as a modal dialog.
-   *
-   * ## Other resources
-   *
-   * * [Dialogs implemented using separate
-   *   documents](http://www.w3.org/html/wg/drafts/html/master/webappapis.html#dialogs-implemented-using-separate-documents)
-   *   from W3C.
-   */
-  @DomName('Window.showModalDialog')
-  @DocsEditable()
-  Object showModalDialog(String url, [Object dialogArgs, String featureArgs]) => wrap_jso(_blink.BlinkWindow.instance.showModalDialog_Callback_3_(unwrap_jso(this), url, dialogArgs, featureArgs));
-  
-  /**
    * Stops the window from loading.
    *
    * ## Other resources
@@ -39596,28 +43083,58 @@
 
   @DomName('Window.atob')
   @DocsEditable()
-  String atob(String string) => _blink.BlinkWindow.instance.atob_Callback_1_(unwrap_jso(this), string);
+  String atob(String atob) => _blink.BlinkWindow.instance.atob_Callback_1_(unwrap_jso(this), atob);
   
   @DomName('Window.btoa')
   @DocsEditable()
-  String btoa(String string) => _blink.BlinkWindow.instance.btoa_Callback_1_(unwrap_jso(this), string);
+  String btoa(String btoa) => _blink.BlinkWindow.instance.btoa_Callback_1_(unwrap_jso(this), btoa);
   
-  @DomName('Window.clearInterval')
-  @DocsEditable()
-  void _clearInterval(int handle) => _blink.BlinkWindow.instance.clearInterval_Callback_1_(unwrap_jso(this), handle);
-  
-  @DomName('Window.clearTimeout')
-  @DocsEditable()
-  void _clearTimeout(int handle) => _blink.BlinkWindow.instance.clearTimeout_Callback_1_(unwrap_jso(this), handle);
-  
-  @DomName('Window.setInterval')
-  @DocsEditable()
-  int _setInterval(Object handler, int timeout) => _blink.BlinkWindow.instance.setInterval_Callback_2_(unwrap_jso(this), handler, timeout);
-  
-  @DomName('Window.setTimeout')
-  @DocsEditable()
-  int _setTimeout(Object handler, int timeout) => _blink.BlinkWindow.instance.setTimeout_Callback_2_(unwrap_jso(this), handler, timeout);
-  
+  int _setInterval_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWindow.instance.setInterval_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWindow.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  int _setTimeout_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWindow.instance.setTimeout_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWindow.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  void _clearInterval([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWindow.instance.clearInterval_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWindow.instance.clearInterval_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+  void _clearTimeout([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWindow.instance.clearTimeout_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWindow.instance.clearTimeout_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+  int _setInterval(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWindow.instance.setInterval_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWindow.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  int _setTimeout(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWindow.instance.setTimeout_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWindow.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
+
   /// Stream of `contentloaded` events handled by this [Window].
   @DomName('Window.onDOMContentLoaded')
   @DocsEditable()
@@ -40082,18 +43599,60 @@
   @DomName('WindowBase64.atob')
   @DocsEditable()
   @Experimental() // untriaged
-  String atob(String string);
+  String atob(String atob);
 
   @DomName('WindowBase64.btoa')
   @DocsEditable()
   @Experimental() // untriaged
-  String btoa(String string);
+  String btoa(String btoa);
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('WindowClient')
+@Experimental() // untriaged
+class WindowClient extends Client {
+  // To suppress missing implicit constructor warnings.
+  factory WindowClient._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static WindowClient internalCreateWindowClient() {
+    return new WindowClient._internalWrap();
+  }
+
+  external factory WindowClient._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  WindowClient.internal_() : super.internal_();
+
+
+  @DomName('WindowClient.focused')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool get focused => _blink.BlinkWindowClient.instance.focused_Getter_(unwrap_jso(this));
+  
+  @DomName('WindowClient.visibilityState')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get visibilityState => _blink.BlinkWindowClient.instance.visibilityState_Getter_(unwrap_jso(this));
+  
+  @DomName('WindowClient.focus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future focus() => wrap_jso(_blink.BlinkWindowClient.instance.focus_Callback_0_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
 
 @DocsEditable()
 @DomName('WindowEventHandlers')
@@ -40233,10 +43792,15 @@
   /// Checks if this type is supported on the current platform.
   static bool get supported => true;
 
-  @DomName('Worker.postMessage')
-  @DocsEditable()
-  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) => _blink.BlinkWorker.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
-  
+  void postMessage(/*SerializedScriptValue*/ message, [List<MessagePort> transfer]) {
+    if (transfer != null) {
+      _blink.BlinkWorker.instance.postMessage_Callback_2_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message), transfer);
+      return;
+    }
+    _blink.BlinkWorker.instance.postMessage_Callback_1_(unwrap_jso(this), convertDartToNative_SerializedScriptValue(message));
+    return;
+  }
+
   @DomName('Worker.terminate')
   @DocsEditable()
   void terminate() => _blink.BlinkWorker.instance.terminate_Callback_0_(unwrap_jso(this));
@@ -40327,6 +43891,11 @@
   @Experimental() // untriaged
   static const int TEMPORARY = 0;
 
+  @DomName('WorkerGlobalScope.caches')
+  @DocsEditable()
+  @Experimental() // untriaged
+  CacheStorage get caches => wrap_jso(_blink.BlinkWorkerGlobalScope.instance.caches_Getter_(unwrap_jso(this)));
+  
   @DomName('WorkerGlobalScope.console')
   @DocsEditable()
   @Experimental() // untriaged
@@ -40367,6 +43936,13 @@
   @Experimental() // untriaged
   void close() => _blink.BlinkWorkerGlobalScope.instance.close_Callback_0_(unwrap_jso(this));
   
+  Future fetch(/*RequestInfo*/ input, [Map init]) {
+    if (init != null) {
+      return wrap_jso(_blink.BlinkWorkerGlobalScope.instance.fetch_Callback_2_(unwrap_jso(this), input, convertDartToNative_Dictionary(init)));
+    }
+    return wrap_jso(_blink.BlinkWorkerGlobalScope.instance.fetch_Callback_1_(unwrap_jso(this), input));
+  }
+
   @DomName('WorkerGlobalScope.importScripts')
   @DocsEditable()
   @Experimental() // untriaged
@@ -40429,33 +44005,59 @@
   @DomName('WorkerGlobalScope.atob')
   @DocsEditable()
   @Experimental() // untriaged
-  String atob(String string) => _blink.BlinkWorkerGlobalScope.instance.atob_Callback_1_(unwrap_jso(this), string);
+  String atob(String atob) => _blink.BlinkWorkerGlobalScope.instance.atob_Callback_1_(unwrap_jso(this), atob);
   
   @DomName('WorkerGlobalScope.btoa')
   @DocsEditable()
   @Experimental() // untriaged
-  String btoa(String string) => _blink.BlinkWorkerGlobalScope.instance.btoa_Callback_1_(unwrap_jso(this), string);
+  String btoa(String btoa) => _blink.BlinkWorkerGlobalScope.instance.btoa_Callback_1_(unwrap_jso(this), btoa);
   
-  @DomName('WorkerGlobalScope.clearInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearInterval(int handle) => _blink.BlinkWorkerGlobalScope.instance.clearInterval_Callback_1_(unwrap_jso(this), handle);
-  
-  @DomName('WorkerGlobalScope.clearTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearTimeout(int handle) => _blink.BlinkWorkerGlobalScope.instance.clearTimeout_Callback_1_(unwrap_jso(this), handle);
-  
-  @DomName('WorkerGlobalScope.setInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setInterval(Object handler, int timeout) => _blink.BlinkWorkerGlobalScope.instance.setInterval_Callback_2_(unwrap_jso(this), handler, timeout);
-  
-  @DomName('WorkerGlobalScope.setTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setTimeout(Object handler, int timeout) => _blink.BlinkWorkerGlobalScope.instance.setTimeout_Callback_2_(unwrap_jso(this), handler, timeout);
-  
+  int _setInterval_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWorkerGlobalScope.instance.setInterval_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWorkerGlobalScope.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  int _setTimeout_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWorkerGlobalScope.instance.setTimeout_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWorkerGlobalScope.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  void _clearInterval([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWorkerGlobalScope.instance.clearInterval_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWorkerGlobalScope.instance.clearInterval_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+  void _clearTimeout([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWorkerGlobalScope.instance.clearTimeout_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWorkerGlobalScope.instance.clearTimeout_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+  int _setInterval(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWorkerGlobalScope.instance.setInterval_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWorkerGlobalScope.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  int _setTimeout(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWorkerGlobalScope.instance.setTimeout_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWorkerGlobalScope.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
+
   /// Stream of `error` events handled by this [WorkerGlobalScope].
   @DomName('WorkerGlobalScope.onerror')
   @DocsEditable()
@@ -40473,35 +44075,83 @@
 @DocsEditable()
 @DomName('WorkerPerformance')
 @Experimental() // untriaged
-class WorkerPerformance extends DartHtmlDomObject {
+class WorkerPerformance extends EventTarget {
   // To suppress missing implicit constructor warnings.
   factory WorkerPerformance._() { throw new UnsupportedError("Not supported"); }
 
+
   @Deprecated("Internal Use Only")
   static WorkerPerformance internalCreateWorkerPerformance() {
     return new WorkerPerformance._internalWrap();
   }
 
-  factory WorkerPerformance._internalWrap() {
-    return new WorkerPerformance.internal_();
-  }
+  external factory WorkerPerformance._internalWrap();
 
   @Deprecated("Internal Use Only")
-  WorkerPerformance.internal_() { }
+  WorkerPerformance.internal_() : super.internal_();
 
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
 
   @DomName('WorkerPerformance.memory')
   @DocsEditable()
   @Experimental() // untriaged
   MemoryInfo get memory => wrap_jso(_blink.BlinkWorkerPerformance.instance.memory_Getter_(unwrap_jso(this)));
   
+  @DomName('WorkerPerformance.clearMarks')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearMarks(String markName) => _blink.BlinkWorkerPerformance.instance.clearMarks_Callback_1_(unwrap_jso(this), markName);
+  
+  @DomName('WorkerPerformance.clearMeasures')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearMeasures(String measureName) => _blink.BlinkWorkerPerformance.instance.clearMeasures_Callback_1_(unwrap_jso(this), measureName);
+  
+  @DomName('WorkerPerformance.getEntries')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntries() => wrap_jso(_blink.BlinkWorkerPerformance.instance.getEntries_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WorkerPerformance.getEntriesByName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntriesByName(String name, String entryType) => wrap_jso(_blink.BlinkWorkerPerformance.instance.getEntriesByName_Callback_2_(unwrap_jso(this), name, entryType));
+  
+  @DomName('WorkerPerformance.getEntriesByType')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<PerformanceEntry> getEntriesByType(String entryType) => wrap_jso(_blink.BlinkWorkerPerformance.instance.getEntriesByType_Callback_1_(unwrap_jso(this), entryType));
+  
+  @DomName('WorkerPerformance.mark')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void mark(String markName) => _blink.BlinkWorkerPerformance.instance.mark_Callback_1_(unwrap_jso(this), markName);
+  
+  @DomName('WorkerPerformance.measure')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void measure(String measureName, String startMark, String endMark) => _blink.BlinkWorkerPerformance.instance.measure_Callback_3_(unwrap_jso(this), measureName, startMark, endMark);
+  
   @DomName('WorkerPerformance.now')
   @DocsEditable()
   @Experimental() // untriaged
   num now() => _blink.BlinkWorkerPerformance.instance.now_Callback_0_(unwrap_jso(this));
   
+  @DomName('WorkerPerformance.webkitClearResourceTimings')
+  @DocsEditable()
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental()
+  @Experimental() // untriaged
+  void clearResourceTimings() => _blink.BlinkWorkerPerformance.instance.webkitClearResourceTimings_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WorkerPerformance.webkitSetResourceTimingBufferSize')
+  @DocsEditable()
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental()
+  @Experimental() // untriaged
+  void setResourceTimingBufferSize(int maxSize) => _blink.BlinkWorkerPerformance.instance.webkitSetResourceTimingBufferSize_Callback_1_(unwrap_jso(this), maxSize);
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -40547,10 +44197,13 @@
   @DocsEditable()
   XPathNSResolver createNSResolver(Node nodeResolver) => wrap_jso(_blink.BlinkXPathEvaluator.instance.createNSResolver_Callback_1_(unwrap_jso(this), unwrap_jso(nodeResolver)));
   
-  @DomName('XPathEvaluator.evaluate')
-  @DocsEditable()
-  XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult) => wrap_jso(_blink.BlinkXPathEvaluator.instance.evaluate_Callback_5_(unwrap_jso(this), expression, unwrap_jso(contextNode), unwrap_jso(resolver), type, unwrap_jso(inResult)));
-  
+  XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, [int type, Object inResult]) {
+    if (type != null) {
+      return wrap_jso(_blink.BlinkXPathEvaluator.instance.evaluate_Callback_5_(unwrap_jso(this), expression, unwrap_jso(contextNode), unwrap_jso(resolver), type, inResult));
+    }
+    return wrap_jso(_blink.BlinkXPathEvaluator.instance.evaluate_Callback_3_(unwrap_jso(this), expression, unwrap_jso(contextNode), unwrap_jso(resolver)));
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -40582,10 +44235,13 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('XPathExpression.evaluate')
-  @DocsEditable()
-  XPathResult evaluate(Node contextNode, int type, XPathResult inResult) => wrap_jso(_blink.BlinkXPathExpression.instance.evaluate_Callback_3_(unwrap_jso(this), unwrap_jso(contextNode), type, unwrap_jso(inResult)));
-  
+  XPathResult evaluate(Node contextNode, [int type, Object inResult]) {
+    if (type != null) {
+      return wrap_jso(_blink.BlinkXPathExpression.instance.evaluate_Callback_3_(unwrap_jso(this), unwrap_jso(contextNode), type, inResult));
+    }
+    return wrap_jso(_blink.BlinkXPathExpression.instance.evaluate_Callback_1_(unwrap_jso(this), unwrap_jso(contextNode)));
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -40794,7 +44450,7 @@
 
   @DomName('XMLSerializer.serializeToString')
   @DocsEditable()
-  String serializeToString(Node node) => _blink.BlinkXMLSerializer.instance.serializeToString_Callback_1_(unwrap_jso(this), unwrap_jso(node));
+  String serializeToString(Node root) => _blink.BlinkXMLSerializer.instance.serializeToString_Callback_1_(unwrap_jso(this), unwrap_jso(root));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -40848,7 +44504,7 @@
   
   @DomName('XSLTProcessor.importStylesheet')
   @DocsEditable()
-  void importStylesheet(Node stylesheet) => _blink.BlinkXSLTProcessor.instance.importStylesheet_Callback_1_(unwrap_jso(this), unwrap_jso(stylesheet));
+  void importStylesheet(Node style) => _blink.BlinkXSLTProcessor.instance.importStylesheet_Callback_1_(unwrap_jso(this), unwrap_jso(style));
   
   @DomName('XSLTProcessor.removeParameter')
   @DocsEditable()
@@ -40868,7 +44524,7 @@
   
   @DomName('XSLTProcessor.transformToFragment')
   @DocsEditable()
-  DocumentFragment transformToFragment(Node source, Document docVal) => wrap_jso(_blink.BlinkXSLTProcessor.instance.transformToFragment_Callback_2_(unwrap_jso(this), unwrap_jso(source), unwrap_jso(docVal)));
+  DocumentFragment transformToFragment(Node source, Document output) => wrap_jso(_blink.BlinkXSLTProcessor.instance.transformToFragment_Callback_2_(unwrap_jso(this), unwrap_jso(source), unwrap_jso(output)));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -40942,93 +44598,6 @@
 
 
 @DocsEditable()
-@DomName('CSSPrimitiveValue')
-// http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
-@deprecated // deprecated
-class _CSSPrimitiveValue extends _CSSValue {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSPrimitiveValue._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _CSSPrimitiveValue internalCreate_CSSPrimitiveValue() {
-    return new _CSSPrimitiveValue._internalWrap();
-  }
-
-  external factory _CSSPrimitiveValue._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _CSSPrimitiveValue.internal_() : super.internal_();
-
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('CSSUnknownRule')
-// http://dev.w3.org/csswg/cssom/#the-cssstylesheet-interface
-@deprecated // deprecated
-class _CSSUnknownRule extends CssRule {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSUnknownRule._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _CSSUnknownRule internalCreate_CSSUnknownRule() {
-    return new _CSSUnknownRule._internalWrap();
-  }
-
-  external factory _CSSUnknownRule._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _CSSUnknownRule.internal_() : super.internal_();
-
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('CSSValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _CSSValue extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory _CSSValue._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static _CSSValue internalCreate_CSSValue() {
-    return new _CSSValue._internalWrap();
-  }
-
-  factory _CSSValue._internalWrap() {
-    return new _CSSValue.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  _CSSValue.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('Cache')
 @Experimental() // untriaged
 class _Cache extends DartHtmlDomObject {
@@ -41319,6 +44888,11 @@
   Rectangle elementAt(int index) => this[index];
   // -- end List<Rectangle> mixins.
 
+  @DomName('ClientRectList.__getter__')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Rectangle __getter__(int index) => make_dart_rectangle(_blink.BlinkClientRectList.instance.$__getter___Callback_1_(unwrap_jso(this), index));
+  
   @DomName('ClientRectList.item')
   @DocsEditable()
   Rectangle item(int index) => make_dart_rectangle(_blink.BlinkClientRectList.instance.item_Callback_1_(unwrap_jso(this), index));
@@ -41332,37 +44906,6 @@
 
 
 @DocsEditable()
-@DomName('Counter')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _Counter extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory _Counter._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static _Counter internalCreate_Counter() {
-    return new _Counter._internalWrap();
-  }
-
-  factory _Counter._internalWrap() {
-    return new _Counter.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  _Counter.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('CSSRuleList')
 class _CssRuleList extends DartHtmlDomObject with ListMixin<CssRule>, ImmutableListMixin<CssRule> implements List<CssRule> {
   // To suppress missing implicit constructor warnings.
@@ -41446,88 +44989,6 @@
 
 
 @DocsEditable()
-@DomName('CSSValueList')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _CssValueList extends _CSSValue with ListMixin<_CSSValue>, ImmutableListMixin<_CSSValue> implements List<_CSSValue> {
-  // To suppress missing implicit constructor warnings.
-  factory _CssValueList._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _CssValueList internalCreate_CssValueList() {
-    return new _CssValueList._internalWrap();
-  }
-
-  external factory _CssValueList._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _CssValueList.internal_() : super.internal_();
-
-
-  @DomName('CSSValueList.length')
-  @DocsEditable()
-  int get length => _blink.BlinkCSSValueList.instance.length_Getter_(unwrap_jso(this));
-  
-  _CSSValue operator[](int index) {
-    if (index < 0 || index >= length)
-      throw new RangeError.index(index, this);
-    return wrap_jso(_blink.BlinkCSSValueList.instance.item_Callback_1_(unwrap_jso(this), index));
-  }
-
-  _CSSValue _nativeIndexedGetter(int index) => wrap_jso(_blink.BlinkCSSValueList.instance.item_Callback_1_(unwrap_jso(this), index));
-
-  void operator[]=(int index, _CSSValue value) {
-    throw new UnsupportedError("Cannot assign element of immutable List.");
-  }
-  // -- start List<_CSSValue> mixins.
-  // _CSSValue is the element type.
-
-
-  set length(int value) {
-    throw new UnsupportedError("Cannot resize immutable List.");
-  }
-
-  _CSSValue get first {
-    if (this.length > 0) {
-      return _nativeIndexedGetter(0);
-    }
-    throw new StateError("No elements");
-  }
-
-  _CSSValue get last {
-    int len = this.length;
-    if (len > 0) {
-      return _nativeIndexedGetter(len - 1);
-    }
-    throw new StateError("No elements");
-  }
-
-  _CSSValue get single {
-    int len = this.length;
-    if (len == 1) {
-      return _nativeIndexedGetter(0);
-    }
-    if (len == 0) throw new StateError("No elements");
-    throw new StateError("More than one element");
-  }
-
-  _CSSValue elementAt(int index) => this[index];
-  // -- end List<_CSSValue> mixins.
-
-  @DomName('CSSValueList.item')
-  @DocsEditable()
-  _CSSValue item(int index) => wrap_jso(_blink.BlinkCSSValueList.instance.item_Callback_1_(unwrap_jso(this), index));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('DOMFileSystemSync')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @Experimental()
@@ -41968,10 +45429,16 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('HTMLAllCollection.item')
-  @DocsEditable()
-  Element _item(int index) => wrap_jso(_blink.BlinkHTMLAllCollection.instance.item_Callback_1_(unwrap_jso(this), index));
-  
+  Element _item(int index) {
+    if ((index is int || index == null)) {
+      return wrap_jso(_blink.BlinkHTMLAllCollection.instance.item_Callback_1_(unwrap_jso(this), index));
+    }
+    if ((index is int || index == null)) {
+      return wrap_jso(_blink.BlinkHTMLAllCollection.instance.item_Callback_1_(unwrap_jso(this), index));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -42298,37 +45765,39 @@
   Node elementAt(int index) => this[index];
   // -- end List<Node> mixins.
 
-  @DomName('NamedNodeMap.__getter__')
-  @DocsEditable()
-  Node __getter__(String name) => wrap_jso(_blink.BlinkNamedNodeMap.instance.$__getter___Callback_1_(unwrap_jso(this), name));
-  
-  @DomName('NamedNodeMap.getNamedItem')
-  @DocsEditable()
-  Node getNamedItem(String name) => wrap_jso(_blink.BlinkNamedNodeMap.instance.getNamedItem_Callback_1_(unwrap_jso(this), name));
-  
+  _Attr getNamedItem(String name) {
+    if ((name is String)) {
+      return wrap_jso(_blink.BlinkNamedNodeMap.instance.getNamedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    if ((name is String)) {
+      return wrap_jso(_blink.BlinkNamedNodeMap.instance.getNamedItem_Callback_1_(unwrap_jso(this), name));
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('NamedNodeMap.getNamedItemNS')
   @DocsEditable()
-  Node getNamedItemNS(String namespaceURI, String localName) => wrap_jso(_blink.BlinkNamedNodeMap.instance.getNamedItemNS_Callback_2_(unwrap_jso(this), namespaceURI, localName));
+  _Attr getNamedItemNS(String namespaceURI, String localName) => wrap_jso(_blink.BlinkNamedNodeMap.instance.getNamedItemNS_Callback_2_(unwrap_jso(this), namespaceURI, localName));
   
   @DomName('NamedNodeMap.item')
   @DocsEditable()
-  Node item(int index) => wrap_jso(_blink.BlinkNamedNodeMap.instance.item_Callback_1_(unwrap_jso(this), index));
+  _Attr item(int index) => wrap_jso(_blink.BlinkNamedNodeMap.instance.item_Callback_1_(unwrap_jso(this), index));
   
   @DomName('NamedNodeMap.removeNamedItem')
   @DocsEditable()
-  Node removeNamedItem(String name) => wrap_jso(_blink.BlinkNamedNodeMap.instance.removeNamedItem_Callback_1_(unwrap_jso(this), name));
+  _Attr removeNamedItem(String name) => wrap_jso(_blink.BlinkNamedNodeMap.instance.removeNamedItem_Callback_1_(unwrap_jso(this), name));
   
   @DomName('NamedNodeMap.removeNamedItemNS')
   @DocsEditable()
-  Node removeNamedItemNS(String namespaceURI, String localName) => wrap_jso(_blink.BlinkNamedNodeMap.instance.removeNamedItemNS_Callback_2_(unwrap_jso(this), namespaceURI, localName));
+  _Attr removeNamedItemNS(String namespaceURI, String localName) => wrap_jso(_blink.BlinkNamedNodeMap.instance.removeNamedItemNS_Callback_2_(unwrap_jso(this), namespaceURI, localName));
   
   @DomName('NamedNodeMap.setNamedItem')
   @DocsEditable()
-  Node setNamedItem(Node node) => wrap_jso(_blink.BlinkNamedNodeMap.instance.setNamedItem_Callback_1_(unwrap_jso(this), unwrap_jso(node)));
+  _Attr setNamedItem(_Attr attr) => wrap_jso(_blink.BlinkNamedNodeMap.instance.setNamedItem_Callback_1_(unwrap_jso(this), unwrap_jso(attr)));
   
   @DomName('NamedNodeMap.setNamedItemNS')
   @DocsEditable()
-  Node setNamedItemNS(Node node) => wrap_jso(_blink.BlinkNamedNodeMap.instance.setNamedItemNS_Callback_1_(unwrap_jso(this), unwrap_jso(node)));
+  _Attr setNamedItemNS(_Attr attr) => wrap_jso(_blink.BlinkNamedNodeMap.instance.setNamedItemNS_Callback_1_(unwrap_jso(this), unwrap_jso(attr)));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -42361,37 +45830,6 @@
   int get hashCode => unwrap_jso(this).hashCode;
 
 }
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('RGBColor')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _RGBColor extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory _RGBColor._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static _RGBColor internalCreate_RGBColor() {
-    return new _RGBColor._internalWrap();
-  }
-
-  factory _RGBColor._internalWrap() {
-    return new _RGBColor.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  _RGBColor.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-}
 // 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.
@@ -42414,37 +45852,11 @@
   _RadioNodeList.internal_() : super.internal_();
 
 
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('Rect')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _Rect extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory _Rect._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static _Rect internalCreate_Rect() {
-    return new _Rect._internalWrap();
-  }
-
-  factory _Rect._internalWrap() {
-    return new _Rect.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  _Rect.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
+  @DomName('RadioNodeList.item')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Node _item(int index) => wrap_jso(_blink.BlinkRadioNodeList.instance.item_Callback_1_(unwrap_jso(this), index));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -42462,22 +45874,12 @@
 
   @DomName('Request.Request')
   @DocsEditable()
-  factory _Request(input, [Map requestInitDict]) {
-    if ((input is String || input == null) && requestInitDict == null) {
-      return wrap_jso(_blink.BlinkRequest.instance.constructorCallback_1_(input));
-    }
-    if ((requestInitDict is Map || requestInitDict == null) && (input is String || input == null)) {
+  factory _Request(Object input, [Map requestInitDict]) {
+    if (requestInitDict != null) {
       var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
       return wrap_jso(_blink.BlinkRequest.instance.constructorCallback_2_(input, requestInitDict_1));
     }
-    if ((input is _Request || input == null) && requestInitDict == null) {
-      return wrap_jso(_blink.BlinkRequest.instance.constructorCallback_1_(input));
-    }
-    if ((requestInitDict is Map || requestInitDict == null) && (input is _Request || input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
-      return wrap_jso(_blink.BlinkRequest.instance.constructorCallback_2_(input, requestInitDict_1));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkRequest.instance.constructorCallback_1_(input));
   }
 
 
@@ -42492,6 +45894,11 @@
   _Request.internal_() : super.internal_();
 
 
+  @DomName('Request.context')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get context => _blink.BlinkRequest.instance.context_Getter_(unwrap_jso(this));
+  
   @DomName('Request.credentials')
   @DocsEditable()
   @Experimental() // untriaged
@@ -42539,36 +45946,15 @@
 
   @DomName('Response.Response')
   @DocsEditable()
-  factory _Response(body_OR_input, [Map requestInitDict_OR_responseInitDict]) {
-    if ((body_OR_input is String || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_1_(body_OR_input));
+  factory _Response([Object body, Map responseInitDict]) {
+    if (responseInitDict != null) {
+      var responseInitDict_1 = convertDartToNative_Dictionary(responseInitDict);
+      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_2_(body, responseInitDict_1));
     }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is String || body_OR_input == null)) {
-      var responseInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_2_(body_OR_input, responseInitDict_1));
+    if (body != null) {
+      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_1_(body));
     }
-    if ((body_OR_input is Blob || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_1_(body_OR_input));
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is Blob || body_OR_input == null)) {
-      var responseInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_2_(body_OR_input, responseInitDict_1));
-    }
-    if ((body_OR_input is TypedData || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_1_(body_OR_input));
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is TypedData || body_OR_input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_2_(body_OR_input, requestInitDict_1));
-    }
-    if ((body_OR_input is ByteBuffer || body_OR_input == null) && requestInitDict_OR_responseInitDict == null) {
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_1_(body_OR_input));
-    }
-    if ((requestInitDict_OR_responseInitDict is Map || requestInitDict_OR_responseInitDict == null) && (body_OR_input is ByteBuffer || body_OR_input == null)) {
-      var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict_OR_responseInitDict);
-      return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_2_(body_OR_input, requestInitDict_1));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkResponse.instance.constructorCallback_0_());
   }
 
 
@@ -42822,34 +46208,6 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSFilterValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _WebKitCSSFilterValue extends _CssValueList {
-  // To suppress missing implicit constructor warnings.
-  factory _WebKitCSSFilterValue._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _WebKitCSSFilterValue internalCreate_WebKitCSSFilterValue() {
-    return new _WebKitCSSFilterValue._internalWrap();
-  }
-
-  external factory _WebKitCSSFilterValue._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _WebKitCSSFilterValue.internal_() : super.internal_();
-
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('WebKitCSSMatrix')
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
@@ -42890,59 +46248,57 @@
 
 
 @DocsEditable()
-@DomName('WebKitCSSTransformValue')
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-class _WebKitCSSTransformValue extends _CssValueList {
-  // To suppress missing implicit constructor warnings.
-  factory _WebKitCSSTransformValue._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _WebKitCSSTransformValue internalCreate_WebKitCSSTransformValue() {
-    return new _WebKitCSSTransformValue._internalWrap();
-  }
-
-  external factory _WebKitCSSTransformValue._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _WebKitCSSTransformValue.internal_() : super.internal_();
-
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('WindowTimers')
 @Experimental() // untriaged
 abstract class _WindowTimers extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
   factory _WindowTimers._() { throw new UnsupportedError("Not supported"); }
 
-  @DomName('WindowTimers.clearInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearInterval(int handle);
+  int _setInterval_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWindowTimers.instance.setInterval_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWindowTimers.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
 
-  @DomName('WindowTimers.clearTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  void _clearTimeout(int handle);
+  int _setTimeout_String(String handler, [int timeout, Object arguments]) {
+    if (timeout != null) {
+      return _blink.BlinkWindowTimers.instance.setTimeout_Callback_3_(unwrap_jso(this), handler, timeout, arguments);
+    }
+    return _blink.BlinkWindowTimers.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
 
-  @DomName('WindowTimers.setInterval')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setInterval(Object handler, int timeout);
+  void _clearInterval([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWindowTimers.instance.clearInterval_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWindowTimers.instance.clearInterval_Callback_0_(unwrap_jso(this));
+    return;
+  }
 
-  @DomName('WindowTimers.setTimeout')
-  @DocsEditable()
-  @Experimental() // untriaged
-  int _setTimeout(Object handler, int timeout);
+  void _clearTimeout([int handle]) {
+    if (handle != null) {
+      _blink.BlinkWindowTimers.instance.clearTimeout_Callback_1_(unwrap_jso(this), handle);
+      return;
+    }
+    _blink.BlinkWindowTimers.instance.clearTimeout_Callback_0_(unwrap_jso(this));
+    return;
+  }
+
+  int _setInterval(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWindowTimers.instance.setInterval_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWindowTimers.instance.setInterval_Callback_1_(unwrap_jso(this), handler);
+  }
+
+  int _setTimeout(Object handler, [int timeout]) {
+    if (timeout != null) {
+      return _blink.BlinkWindowTimers.instance.setTimeout_Callback_2_(unwrap_jso(this), handler, timeout);
+    }
+    return _blink.BlinkWindowTimers.instance.setTimeout_Callback_1_(unwrap_jso(this), handler);
+  }
 
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -47351,22 +50707,22 @@
   /** The "fixed" value of whether the alt key is being pressed. */
   bool _shadowAltKey;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int _shadowCharCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int _shadowKeyCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get keyCode => _shadowKeyCode;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
 
-  /** Caculated value of whether the alt key is pressed is for this event. */
+  /** Calculated value of whether the alt key is pressed is for this event. */
   bool get altKey => _shadowAltKey;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get which => keyCode;
 
   /** Accessor to the underlying keyCode value is the parent event. */
@@ -47421,8 +50777,6 @@
   /** The currently registered target for this event. */
   EventTarget get currentTarget => _currentTarget;
 
-  /** Accessor to the clipboardData available for this event. */
-  DataTransfer get clipboardData => _parent.clipboardData;
   /** True if the ctrl key is pressed during this event. */
   bool get ctrlKey => _parent.ctrlKey;
   int get detail => _parent.detail;
@@ -47432,10 +50786,8 @@
    * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
    */
   int get keyLocation => _parent.keyLocation;
-  Point get layer => _parent.layer;
   /** True if the Meta (or Mac command) key is pressed during this event. */
   bool get metaKey => _parent.metaKey;
-  Point get page => _parent.page;
   /** True if the shift key was pressed during this event. */
   bool get shiftKey => _parent.shiftKey;
   Window get view => _parent.view;
@@ -47447,6 +50799,7 @@
 
   int get _charCode => charCode;
   int get _keyCode => keyCode;
+  int get _which => which;
   String get _keyIdentifier {
     throw new UnsupportedError("keyIdentifier is unsupported.");
   }
@@ -47456,10 +50809,6 @@
     throw new UnsupportedError(
         "Cannot initialize a KeyboardEvent from a KeyEvent.");
   }
-  int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
   @Experimental() // untriaged
   bool getModifierState(String keyArgument) => throw new UnimplementedError();
   @Experimental() // untriaged
@@ -47515,8 +50864,6 @@
 
   bool get cancelable => wrapped.cancelable;
 
-  DataTransfer get clipboardData => wrapped.clipboardData;
-
   EventTarget get currentTarget => wrapped.currentTarget;
 
   bool get defaultPrevented => wrapped.defaultPrevented;
@@ -47856,7 +51203,7 @@
 
   // TODO(vsm): Make this API compatible with spawnUri.  It should also
   // return a Future<Isolate>.
-  static spawnDomUri(String uri) => _blink.Blink_Utils.spawnDomUri(uri);
+  static spawnDomUri(String uri) => wrap_jso(_blink.Blink_Utils.spawnDomUri(uri));
 
   // The following methods were added for debugger integration to make working
   // with the Dart C mirrors API simpler.
@@ -48433,7 +51780,8 @@
     return [
         "inspect",
         (o) {
-          return host.callMethod("_inspect", [unwrap_jso(o)]);
+          host.callMethod("_inspect", [unwrap_jso(o)]);
+          return o;
         },
         "dir",
         window().console.dir,
@@ -48465,10 +51813,10 @@
     String extendsTagName) => _blink.Blink_Utils.register(unwrap_jso(document), tag, customType, extendsTagName);
 
   static Element createElement(Document document, String tagName) =>
-    wrap_jso(_blink.Blink_Utils.createElement(unwrap_jso(document), tagName));
+      wrap_jso(_blink.Blink_Utils.createElement(unwrap_jso(document), tagName));
 
   static Element changeElementWrapper(HtmlElement element, Type type) =>
-    _blink.Blink_Utils.changeElementWrapper(unwrap_jso(element), type);
+      wrap_jso(_blink.Blink_Utils.changeElementWrapper(unwrap_jso(element), type));
 }
 
 class _DOMWindowCrossFrame extends DartHtmlDomObject implements
@@ -48483,17 +51831,18 @@
   _DOMWindowCrossFrame.internal();
 
   // Fields.
-  HistoryBase get history => _blink.Blink_DOMWindowCrossFrame.get_history(this);
-  LocationBase get location => _blink.Blink_DOMWindowCrossFrame.get_location(this);
-  bool get closed => _blink.Blink_DOMWindowCrossFrame.get_closed(this);
-  WindowBase get opener => _blink.Blink_DOMWindowCrossFrame.get_opener(this);
-  WindowBase get parent => _blink.Blink_DOMWindowCrossFrame.get_parent(this);
-  WindowBase get top => _blink.Blink_DOMWindowCrossFrame.get_top(this);
+  HistoryBase get history => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_history(unwrap_jso(this)));
+  LocationBase get location => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_location(unwrap_jso(this)));
+  bool get closed => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_closed(unwrap_jso(this)));
+  WindowBase get opener => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_opener(unwrap_jso(this)));
+  WindowBase get parent => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_parent(unwrap_jso(this)));
+  WindowBase get top => wrap_jso(_blink.Blink_DOMWindowCrossFrame.get_top(unwrap_jso(this)));
 
   // Methods.
-  void close() => _blink.Blink_DOMWindowCrossFrame.close(this);
+  void close() => _blink.Blink_DOMWindowCrossFrame.close(unwrap_jso(this));
   void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List messagePorts]) =>
-    _blink.Blink_DOMWindowCrossFrame.postMessage(this, message, targetOrigin, messagePorts);
+      _blink.Blink_DOMWindowCrossFrame.postMessage(unwrap_jso(this),
+         convertDartToNative_SerializedScriptValue(message), targetOrigin, messagePorts);
 
   // Implementation support.
   String get typeName => "Window";
@@ -48526,9 +51875,9 @@
   _HistoryCrossFrame.internal();
 
   // Methods.
-  void back() => _blink.Blink_HistoryCrossFrame.back(this);
-  void forward() => _blink.Blink_HistoryCrossFrame.forward(this);
-  void go(int distance) => _blink.Blink_HistoryCrossFrame.go(this, distance);
+  void back() => _blink.Blink_HistoryCrossFrame.back(unwrap_jso(this));
+  void forward() => _blink.Blink_HistoryCrossFrame.forward(unwrap_jso(this));
+  void go(int distance) => _blink.Blink_HistoryCrossFrame.go(unwrap_jso(this), distance);
 
   // Implementation support.
   String get typeName => "History";
@@ -48538,33 +51887,12 @@
   _LocationCrossFrame.internal();
 
   // Fields.
-  set href(String h) => _blink.Blink_LocationCrossFrame.set_href(this, h);
+  set href(String h) => _blink.Blink_LocationCrossFrame.set_href(unwrap_jso(this), h);
 
   // Implementation support.
   String get typeName => "Location";
 }
 
-class _DOMStringMap extends DartHtmlDomObject implements Map<String, String> {
-  _DOMStringMap.internal();
-
-  bool containsValue(String value) => Maps.containsValue(this, value);
-  bool containsKey(String key) => _blink.Blink_DOMStringMap.containsKey(this, key);
-  String operator [](String key) => _blink.Blink_DOMStringMap.item(this, key);
-  void operator []=(String key, String value) => _blink.Blink_DOMStringMap.setItem(this, key, value);
-  String putIfAbsent(String key, String ifAbsent()) => Maps.putIfAbsent(this, key, ifAbsent);
-  String remove(String key) => _blink.Blink_DOMStringMap.remove(this, key);
-  void clear() => Maps.clear(this);
-  void forEach(void f(String key, String value)) => Maps.forEach(this, f);
-  Iterable<String> get keys => _blink.Blink_DOMStringMap.get_keys(this);
-  Iterable<String> get values => Maps.getValues(this);
-  int get length => Maps.length(this);
-  bool get isEmpty => Maps.isEmpty(this);
-  bool get isNotEmpty => Maps.isNotEmpty(this);
-  void addAll(Map<String, String> other) {
-    other.forEach((key, value) => this[key] = value);
-  }
-}
-
 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates
 // as workers.  This is only used to support
 // printing and timers in background isolates. As workers they should
diff --git a/sdk/lib/html/html_common/conversions_dartium.dart b/sdk/lib/html/html_common/conversions_dartium.dart
index 90fe55d..ad71852 100644
--- a/sdk/lib/html/html_common/conversions_dartium.dart
+++ b/sdk/lib/html/html_common/conversions_dartium.dart
@@ -120,7 +120,8 @@
 
 // Helper function to wrapped a returned dictionary from blink to a Dart looking
 // class.
-convertNativeDictionaryToDartDictionary(Map values) => new _ReturnedDictionary(values);
+convertNativeDictionaryToDartDictionary(Map values) =>
+  values != null ? new _ReturnedDictionary(values) : null;
 
 // Conversion function place holder (currently not used in dart2js or dartium).
 List convertDartToNative_StringArray(List<String> input) => input;
diff --git a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
index 1f80c9d..f969eb3 100644
--- a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
@@ -774,6 +774,16 @@
   @annotation_Creates_SerializedScriptValue
   Request _get(Object key) native;
 
+  @DomName('IDBIndex.getAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Request getAll(Object range, [int maxCount]) native;
+
+  @DomName('IDBIndex.getAllKeys')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Request getAllKeys(Object range, [int maxCount]) native;
+
   @JSName('getKey')
   @DomName('IDBIndex.getKey')
   @DocsEditable()
@@ -1072,41 +1082,21 @@
 
   @DomName('IDBObjectStore.createIndex')
   @DocsEditable()
-  Index _createIndex(String name, keyPath, [Map options]) {
-    if ((keyPath is String || keyPath == null) && options == null) {
-      return _createIndex_1(name, keyPath);
-    }
-    if (options != null && (keyPath is String || keyPath == null)) {
+  Index _createIndex(String name, Object keyPath, [Map options]) {
+    if (options != null) {
       var options_1 = convertDartToNative_Dictionary(options);
-      return _createIndex_2(name, keyPath, options_1);
+      return _createIndex_1(name, keyPath, options_1);
     }
-    if ((keyPath is List<String> || keyPath == null) && options == null) {
-      List keyPath_1 = convertDartToNative_StringArray(keyPath);
-      return _createIndex_3(name, keyPath_1);
-    }
-    if (options != null && (keyPath is List<String> || keyPath == null)) {
-      List keyPath_1 = convertDartToNative_StringArray(keyPath);
-      var options_2 = convertDartToNative_Dictionary(options);
-      return _createIndex_4(name, keyPath_1, options_2);
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return _createIndex_2(name, keyPath);
   }
   @JSName('createIndex')
   @DomName('IDBObjectStore.createIndex')
   @DocsEditable()
-  Index _createIndex_1(name, String keyPath) native;
+  Index _createIndex_1(name, keyPath, options) native;
   @JSName('createIndex')
   @DomName('IDBObjectStore.createIndex')
   @DocsEditable()
-  Index _createIndex_2(name, String keyPath, options) native;
-  @JSName('createIndex')
-  @DomName('IDBObjectStore.createIndex')
-  @DocsEditable()
-  Index _createIndex_3(name, List keyPath) native;
-  @JSName('createIndex')
-  @DomName('IDBObjectStore.createIndex')
-  @DocsEditable()
-  Index _createIndex_4(name, List keyPath, options) native;
+  Index _createIndex_2(name, keyPath) native;
 
   @JSName('delete')
   @DomName('IDBObjectStore.delete')
@@ -1125,6 +1115,16 @@
   @annotation_Creates_SerializedScriptValue
   Request _get(Object key) native;
 
+  @DomName('IDBObjectStore.getAll')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Request getAll(Object range, [int maxCount]) native;
+
+  @DomName('IDBObjectStore.getAllKeys')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Request getAllKeys(Object range, [int maxCount]) native;
+
   @DomName('IDBObjectStore.index')
   @DocsEditable()
   Index index(String name) native;
@@ -1394,6 +1394,13 @@
   @DocsEditable()
   final String mode;
 
+  @DomName('IDBTransaction.objectStoreNames')
+  @DocsEditable()
+  @Experimental() // untriaged
+  @Returns('DomStringList')
+  @Creates('DomStringList')
+  final List<String> objectStoreNames;
+
   @DomName('IDBTransaction.abort')
   @DocsEditable()
   void abort() native;
@@ -1431,6 +1438,18 @@
   // To suppress missing implicit constructor warnings.
   factory VersionChangeEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent')
+  @DocsEditable()
+  factory VersionChangeEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return VersionChangeEvent._create_1(type, eventInitDict_1);
+    }
+    return VersionChangeEvent._create_2(type);
+  }
+  static VersionChangeEvent _create_1(type, eventInitDict) => JS('VersionChangeEvent', 'new IDBVersionChangeEvent(#,#)', type, eventInitDict);
+  static VersionChangeEvent _create_2(type) => JS('VersionChangeEvent', 'new IDBVersionChangeEvent(#)', type);
+
   @DomName('IDBVersionChangeEvent.dataLoss')
   @DocsEditable()
   @Experimental() // untriaged
diff --git a/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart b/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
index 36b35e3..02a914f 100644
--- a/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
+++ b/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
@@ -704,6 +704,20 @@
   @DocsEditable()
   Request _get(Object key) => wrap_jso(_blink.BlinkIDBIndex.instance.get_Callback_1_(unwrap_jso(this), key));
   
+  Request getAll(Object range, [int maxCount]) {
+    if (maxCount != null) {
+      return wrap_jso(_blink.BlinkIDBIndex.instance.getAll_Callback_2_(unwrap_jso(this), range, maxCount));
+    }
+    return wrap_jso(_blink.BlinkIDBIndex.instance.getAll_Callback_1_(unwrap_jso(this), range));
+  }
+
+  Request getAllKeys(Object range, [int maxCount]) {
+    if (maxCount != null) {
+      return wrap_jso(_blink.BlinkIDBIndex.instance.getAllKeys_Callback_2_(unwrap_jso(this), range, maxCount));
+    }
+    return wrap_jso(_blink.BlinkIDBIndex.instance.getAllKeys_Callback_1_(unwrap_jso(this), range));
+  }
+
   @DomName('IDBIndex.getKey')
   @DocsEditable()
   Request _getKey(Object key) => wrap_jso(_blink.BlinkIDBIndex.instance.getKey_Callback_1_(unwrap_jso(this), key));
@@ -1001,20 +1015,11 @@
   @DocsEditable()
   Request _count(Object key) => wrap_jso(_blink.BlinkIDBObjectStore.instance.count_Callback_1_(unwrap_jso(this), key));
   
-  Index _createIndex(String name, keyPath, [Map options]) {
-    if ((keyPath is String || keyPath == null) && (name is String || name == null) && options == null) {
-      return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_2_(unwrap_jso(this), name, unwrap_jso(keyPath)));
+  Index _createIndex(String name, Object keyPath, [Map options]) {
+    if (options != null) {
+      return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_3_(unwrap_jso(this), name, keyPath, convertDartToNative_Dictionary(options)));
     }
-    if ((options is Map || options == null) && (keyPath is String || keyPath == null) && (name is String || name == null)) {
-      return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_3_(unwrap_jso(this), name, unwrap_jso(keyPath), convertDartToNative_Dictionary(options)));
-    }
-    if ((keyPath is List<String> || keyPath == null) && (name is String || name == null) && options == null) {
-      return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_2_(unwrap_jso(this), name, unwrap_jso(keyPath)));
-    }
-    if ((options is Map || options == null) && (keyPath is List<String> || keyPath == null) && (name is String || name == null)) {
-      return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_3_(unwrap_jso(this), name, unwrap_jso(keyPath), convertDartToNative_Dictionary(options)));
-    }
-    throw new ArgumentError("Incorrect number or type of arguments");
+    return wrap_jso(_blink.BlinkIDBObjectStore.instance.createIndex_Callback_2_(unwrap_jso(this), name, keyPath));
   }
 
   @DomName('IDBObjectStore.delete')
@@ -1029,6 +1034,20 @@
   @DocsEditable()
   Request _get(Object key) => wrap_jso(_blink.BlinkIDBObjectStore.instance.get_Callback_1_(unwrap_jso(this), key));
   
+  Request getAll(Object range, [int maxCount]) {
+    if (maxCount != null) {
+      return wrap_jso(_blink.BlinkIDBObjectStore.instance.getAll_Callback_2_(unwrap_jso(this), range, maxCount));
+    }
+    return wrap_jso(_blink.BlinkIDBObjectStore.instance.getAll_Callback_1_(unwrap_jso(this), range));
+  }
+
+  Request getAllKeys(Object range, [int maxCount]) {
+    if (maxCount != null) {
+      return wrap_jso(_blink.BlinkIDBObjectStore.instance.getAllKeys_Callback_2_(unwrap_jso(this), range, maxCount));
+    }
+    return wrap_jso(_blink.BlinkIDBObjectStore.instance.getAllKeys_Callback_1_(unwrap_jso(this), range));
+  }
+
   @DomName('IDBObjectStore.index')
   @DocsEditable()
   Index index(String name) => wrap_jso(_blink.BlinkIDBObjectStore.instance.index_Callback_1_(unwrap_jso(this), name));
@@ -1310,6 +1329,11 @@
   @DocsEditable()
   String get mode => _blink.BlinkIDBTransaction.instance.mode_Getter_(unwrap_jso(this));
   
+  @DomName('IDBTransaction.objectStoreNames')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<String> get objectStoreNames => wrap_jso(_blink.BlinkIDBTransaction.instance.objectStoreNames_Getter_(unwrap_jso(this)));
+  
   @DomName('IDBTransaction.abort')
   @DocsEditable()
   void abort() => _blink.BlinkIDBTransaction.instance.abort_Callback_0_(unwrap_jso(this));
@@ -1348,6 +1372,16 @@
   // To suppress missing implicit constructor warnings.
   factory VersionChangeEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent')
+  @DocsEditable()
+  factory VersionChangeEvent(String type, [Map eventInitDict]) {
+    if (eventInitDict != null) {
+      var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+      return wrap_jso(_blink.BlinkIDBVersionChangeEvent.instance.constructorCallback_2_(type, eventInitDict_1));
+    }
+    return wrap_jso(_blink.BlinkIDBVersionChangeEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static VersionChangeEvent internalCreateVersionChangeEvent() {
diff --git a/sdk/lib/svg/dart2js/svg_dart2js.dart b/sdk/lib/svg/dart2js/svg_dart2js.dart
index 5cb2ace..4b967b9 100644
--- a/sdk/lib/svg/dart2js/svg_dart2js.dart
+++ b/sdk/lib/svg/dart2js/svg_dart2js.dart
@@ -75,49 +75,6 @@
 
 
 @DocsEditable()
-@DomName('SVGAltGlyphElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAltGlyphElement")
-class AltGlyphElement extends TextPositioningElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory AltGlyphElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGAltGlyphElement.SVGAltGlyphElement')
-  @DocsEditable()
-  factory AltGlyphElement() => _SvgElementFactoryProvider.createSvgElement_tag("altGlyph");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AltGlyphElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => SvgElement.isTagSupported('altGlyph') && (new SvgElement.tag('altGlyph') is AltGlyphElement);
-
-  @DomName('SVGAltGlyphElement.format')
-  @DocsEditable()
-  String format;
-
-  @DomName('SVGAltGlyphElement.glyphRef')
-  @DocsEditable()
-  String glyphRef;
-
-  // From SVGURIReference
-
-  @DomName('SVGAltGlyphElement.href')
-  @DocsEditable()
-  final AnimatedString href;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('SVGAngle')
 @Unstable()
 @Native("SVGAngle")
@@ -1991,6 +1948,16 @@
   @DocsEditable()
   final AnimatedString in1;
 
+  @DomName('SVGFESpecularLightingElement.kernelUnitLengthX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final AnimatedNumber kernelUnitLengthX;
+
+  @DomName('SVGFESpecularLightingElement.kernelUnitLengthY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final AnimatedNumber kernelUnitLengthY;
+
   @DomName('SVGFESpecularLightingElement.specularConstant')
   @DocsEditable()
   final AnimatedNumber specularConstant;
@@ -2273,14 +2240,6 @@
   /// Checks if this type is supported on the current platform.
   static bool get supported => SvgElement.isTagSupported('filter') && (new SvgElement.tag('filter') is FilterElement);
 
-  @DomName('SVGFilterElement.filterResX')
-  @DocsEditable()
-  final AnimatedInteger filterResX;
-
-  @DomName('SVGFilterElement.filterResY')
-  @DocsEditable()
-  final AnimatedInteger filterResY;
-
   @DomName('SVGFilterElement.filterUnits')
   @DocsEditable()
   final AnimatedEnumeration filterUnits;
@@ -2305,10 +2264,6 @@
   @DocsEditable()
   final AnimatedLength y;
 
-  @DomName('SVGFilterElement.setFilterRes')
-  @DocsEditable()
-  void setFilterRes(int filterResX, int filterResY) native;
-
   // From SVGURIReference
 
   @DomName('SVGFilterElement.href')
@@ -2727,11 +2682,11 @@
   @DomName('SVGLengthList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Length value) native;
+  void __setter__(int index, Length newItem) native;
 
   @DomName('SVGLengthList.appendItem')
   @DocsEditable()
-  Length appendItem(Length item) native;
+  Length appendItem(Length newItem) native;
 
   @DomName('SVGLengthList.clear')
   @DocsEditable()
@@ -2743,11 +2698,11 @@
 
   @DomName('SVGLengthList.initialize')
   @DocsEditable()
-  Length initialize(Length item) native;
+  Length initialize(Length newItem) native;
 
   @DomName('SVGLengthList.insertItemBefore')
   @DocsEditable()
-  Length insertItemBefore(Length item, int index) native;
+  Length insertItemBefore(Length newItem, int index) native;
 
   @DomName('SVGLengthList.removeItem')
   @DocsEditable()
@@ -2755,7 +2710,7 @@
 
   @DomName('SVGLengthList.replaceItem')
   @DocsEditable()
-  Length replaceItem(Length item, int index) native;
+  Length replaceItem(Length newItem, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -3179,11 +3134,11 @@
   @DomName('SVGNumberList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Number value) native;
+  void __setter__(int index, Number newItem) native;
 
   @DomName('SVGNumberList.appendItem')
   @DocsEditable()
-  Number appendItem(Number item) native;
+  Number appendItem(Number newItem) native;
 
   @DomName('SVGNumberList.clear')
   @DocsEditable()
@@ -3195,11 +3150,11 @@
 
   @DomName('SVGNumberList.initialize')
   @DocsEditable()
-  Number initialize(Number item) native;
+  Number initialize(Number newItem) native;
 
   @DomName('SVGNumberList.insertItemBefore')
   @DocsEditable()
-  Number insertItemBefore(Number item, int index) native;
+  Number insertItemBefore(Number newItem, int index) native;
 
   @DomName('SVGNumberList.removeItem')
   @DocsEditable()
@@ -3207,7 +3162,7 @@
 
   @DomName('SVGNumberList.replaceItem')
   @DocsEditable()
-  Number replaceItem(Number item, int index) native;
+  Number replaceItem(Number newItem, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -3966,7 +3921,7 @@
   @DomName('SVGPathSegList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, PathSeg value) native;
+  void __setter__(int index, PathSeg newItem) native;
 
   @DomName('SVGPathSegList.appendItem')
   @DocsEditable()
@@ -4173,11 +4128,11 @@
   @DomName('SVGPointList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Point value) native;
+  void __setter__(int index, Point newItem) native;
 
   @DomName('SVGPointList.appendItem')
   @DocsEditable()
-  Point appendItem(Point item) native;
+  Point appendItem(Point newItem) native;
 
   @DomName('SVGPointList.clear')
   @DocsEditable()
@@ -4189,11 +4144,11 @@
 
   @DomName('SVGPointList.initialize')
   @DocsEditable()
-  Point initialize(Point item) native;
+  Point initialize(Point newItem) native;
 
   @DomName('SVGPointList.insertItemBefore')
   @DocsEditable()
-  Point insertItemBefore(Point item, int index) native;
+  Point insertItemBefore(Point newItem, int index) native;
 
   @DomName('SVGPointList.removeItem')
   @DocsEditable()
@@ -4201,7 +4156,7 @@
 
   @DomName('SVGPointList.replaceItem')
   @DocsEditable()
-  Point replaceItem(Point item, int index) native;
+  Point replaceItem(Point newItem, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -4471,43 +4426,6 @@
 
 
 @DocsEditable()
-@DomName('SVGRenderingIntent')
-@Unstable()
-@Native("SVGRenderingIntent")
-class RenderingIntent extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory RenderingIntent._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_ABSOLUTE_COLORIMETRIC')
-  @DocsEditable()
-  static const int RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_AUTO')
-  @DocsEditable()
-  static const int RENDERING_INTENT_AUTO = 1;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_PERCEPTUAL')
-  @DocsEditable()
-  static const int RENDERING_INTENT_PERCEPTUAL = 2;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_RELATIVE_COLORIMETRIC')
-  @DocsEditable()
-  static const int RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_SATURATION')
-  @DocsEditable()
-  static const int RENDERING_INTENT_SATURATION = 4;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_UNKNOWN')
-  @DocsEditable()
-  static const int RENDERING_INTENT_UNKNOWN = 0;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('SVGScriptElement')
 @Unstable()
 @Native("SVGScriptElement")
@@ -4661,11 +4579,11 @@
   @DomName('SVGStringList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, String value) native;
+  void __setter__(int index, String newItem) native;
 
   @DomName('SVGStringList.appendItem')
   @DocsEditable()
-  String appendItem(String item) native;
+  String appendItem(String newItem) native;
 
   @DomName('SVGStringList.clear')
   @DocsEditable()
@@ -4677,7 +4595,7 @@
 
   @DomName('SVGStringList.initialize')
   @DocsEditable()
-  String initialize(String item) native;
+  String initialize(String newItem) native;
 
   @DomName('SVGStringList.insertItemBefore')
   @DocsEditable()
@@ -4689,7 +4607,7 @@
 
   @DomName('SVGStringList.replaceItem')
   @DocsEditable()
-  String replaceItem(String item, int index) native;
+  String replaceItem(String newItem, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -5178,19 +5096,15 @@
   @DocsEditable()
   final SvgElement viewportElement;
 
-  @DomName('SVGElement.xmlbase')
-  @DocsEditable()
-  String xmlbase;
-
-  @DomName('SVGElement.xmllang')
+  @DomName('SVGElement.blur')
   @DocsEditable()
   @Experimental() // untriaged
-  String xmllang;
+  void blur() native;
 
-  @DomName('SVGElement.xmlspace')
+  @DomName('SVGElement.focus')
   @DocsEditable()
   @Experimental() // untriaged
-  String xmlspace;
+  void focus() native;
 
   @DomName('SVGElement.onabort')
   @DocsEditable()
@@ -5799,11 +5713,11 @@
 
   @DomName('SVGTextContentElement.getEndPositionOfChar')
   @DocsEditable()
-  Point getEndPositionOfChar(int offset) native;
+  Point getEndPositionOfChar(int charnum) native;
 
   @DomName('SVGTextContentElement.getExtentOfChar')
   @DocsEditable()
-  Rect getExtentOfChar(int offset) native;
+  Rect getExtentOfChar(int charnum) native;
 
   @DomName('SVGTextContentElement.getNumberOfChars')
   @DocsEditable()
@@ -5811,19 +5725,19 @@
 
   @DomName('SVGTextContentElement.getRotationOfChar')
   @DocsEditable()
-  double getRotationOfChar(int offset) native;
+  double getRotationOfChar(int charnum) native;
 
   @DomName('SVGTextContentElement.getStartPositionOfChar')
   @DocsEditable()
-  Point getStartPositionOfChar(int offset) native;
+  Point getStartPositionOfChar(int charnum) native;
 
   @DomName('SVGTextContentElement.getSubStringLength')
   @DocsEditable()
-  double getSubStringLength(int offset, int length) native;
+  double getSubStringLength(int charnum, int nchars) native;
 
   @DomName('SVGTextContentElement.selectSubString')
   @DocsEditable()
-  void selectSubString(int offset, int length) native;
+  void selectSubString(int charnum, int nchars) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -6117,11 +6031,11 @@
   @DomName('SVGTransformList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Transform value) native;
+  void __setter__(int index, Transform newItem) native;
 
   @DomName('SVGTransformList.appendItem')
   @DocsEditable()
-  Transform appendItem(Transform item) native;
+  Transform appendItem(Transform newItem) native;
 
   @DomName('SVGTransformList.clear')
   @DocsEditable()
@@ -6142,11 +6056,11 @@
 
   @DomName('SVGTransformList.initialize')
   @DocsEditable()
-  Transform initialize(Transform item) native;
+  Transform initialize(Transform newItem) native;
 
   @DomName('SVGTransformList.insertItemBefore')
   @DocsEditable()
-  Transform insertItemBefore(Transform item, int index) native;
+  Transform insertItemBefore(Transform newItem, int index) native;
 
   @DomName('SVGTransformList.removeItem')
   @DocsEditable()
@@ -6154,7 +6068,7 @@
 
   @DomName('SVGTransformList.replaceItem')
   @DocsEditable()
-  Transform replaceItem(Transform item, int index) native;
+  Transform replaceItem(Transform newItem, int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -6457,44 +6371,6 @@
 
 
 @DocsEditable()
-@DomName('SVGAltGlyphDefElement')
-@Unstable()
-@Native("SVGAltGlyphDefElement")
-abstract class _SVGAltGlyphDefElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGAltGlyphDefElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGAltGlyphDefElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGAltGlyphItemElement')
-@Unstable()
-@Native("SVGAltGlyphItemElement")
-abstract class _SVGAltGlyphItemElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGAltGlyphItemElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGAltGlyphItemElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('SVGComponentTransferFunctionElement')
 @Unstable()
 @Native("SVGComponentTransferFunctionElement")
@@ -6569,189 +6445,6 @@
 
 
 @DocsEditable()
-@DomName('SVGFontElement')
-@Unstable()
-@Native("SVGFontElement")
-abstract class _SVGFontElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceElement')
-@Unstable()
-@Native("SVGFontFaceElement")
-abstract class _SVGFontFaceElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceFormatElement')
-@Unstable()
-@Native("SVGFontFaceFormatElement")
-abstract class _SVGFontFaceFormatElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceFormatElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceFormatElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceNameElement')
-@Unstable()
-@Native("SVGFontFaceNameElement")
-abstract class _SVGFontFaceNameElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceNameElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceNameElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceSrcElement')
-@Unstable()
-@Native("SVGFontFaceSrcElement")
-abstract class _SVGFontFaceSrcElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceSrcElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceSrcElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceUriElement')
-@Unstable()
-@Native("SVGFontFaceUriElement")
-abstract class _SVGFontFaceUriElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceUriElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceUriElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGGlyphElement')
-@Unstable()
-@Native("SVGGlyphElement")
-abstract class _SVGGlyphElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGGlyphElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGGlyphElement.SVGGlyphElement')
-  @DocsEditable()
-  factory _SVGGlyphElement() => _SvgElementFactoryProvider.createSvgElement_tag("glyph");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGGlyphElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGGlyphRefElement')
-@Unstable()
-@Native("SVGGlyphRefElement")
-abstract class _SVGGlyphRefElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGGlyphRefElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGGlyphRefElement.created() : super.created();
-
-  // From SVGURIReference
-
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGHKernElement')
-@Unstable()
-@Native("SVGHKernElement")
-abstract class _SVGHKernElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGHKernElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGHKernElement.SVGHKernElement')
-  @DocsEditable()
-  factory _SVGHKernElement() => _SvgElementFactoryProvider.createSvgElement_tag("hkern");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGHKernElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('SVGMPathElement')
 @Native("SVGMPathElement")
 abstract class _SVGMPathElement extends SvgElement implements UriReference {
@@ -6772,45 +6465,3 @@
 
 }
 
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGMissingGlyphElement')
-@Unstable()
-@Native("SVGMissingGlyphElement")
-abstract class _SVGMissingGlyphElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGMissingGlyphElement._() { throw new UnsupportedError("Not supported"); }
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGMissingGlyphElement.created() : super.created();
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGVKernElement')
-@Unstable()
-@Native("SVGVKernElement")
-abstract class _SVGVKernElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGVKernElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGVKernElement.SVGVKernElement')
-  @DocsEditable()
-  factory _SVGVKernElement() => _SvgElementFactoryProvider.createSvgElement_tag("vkern");
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGVKernElement.created() : super.created();
-}
diff --git a/sdk/lib/svg/dartium/svg_dartium.dart b/sdk/lib/svg/dartium/svg_dartium.dart
index 7795952..1e7f276 100644
--- a/sdk/lib/svg/dartium/svg_dartium.dart
+++ b/sdk/lib/svg/dartium/svg_dartium.dart
@@ -27,9 +27,6 @@
 @Deprecated("Internal Use Only")
 final svgBlinkMap = {
   'SVGAElement': () => AElement,
-  'SVGAltGlyphDefElement': () => _SVGAltGlyphDefElement,
-  'SVGAltGlyphElement': () => AltGlyphElement,
-  'SVGAltGlyphItemElement': () => _SVGAltGlyphItemElement,
   'SVGAngle': () => Angle,
   'SVGAnimateElement': () => AnimateElement,
   'SVGAnimateMotionElement': () => AnimateMotionElement,
@@ -84,20 +81,11 @@
   'SVGFilterElement': () => FilterElement,
   'SVGFilterPrimitiveStandardAttributes': () => FilterPrimitiveStandardAttributes,
   'SVGFitToViewBox': () => FitToViewBox,
-  'SVGFontElement': () => _SVGFontElement,
-  'SVGFontFaceElement': () => _SVGFontFaceElement,
-  'SVGFontFaceFormatElement': () => _SVGFontFaceFormatElement,
-  'SVGFontFaceNameElement': () => _SVGFontFaceNameElement,
-  'SVGFontFaceSrcElement': () => _SVGFontFaceSrcElement,
-  'SVGFontFaceUriElement': () => _SVGFontFaceUriElement,
   'SVGForeignObjectElement': () => ForeignObjectElement,
   'SVGGElement': () => GElement,
   'SVGGeometryElement': () => GeometryElement,
-  'SVGGlyphElement': () => _SVGGlyphElement,
-  'SVGGlyphRefElement': () => _SVGGlyphRefElement,
   'SVGGradientElement': () => _GradientElement,
   'SVGGraphicsElement': () => GraphicsElement,
-  'SVGHKernElement': () => _SVGHKernElement,
   'SVGImageElement': () => ImageElement,
   'SVGLength': () => Length,
   'SVGLengthList': () => LengthList,
@@ -108,7 +96,6 @@
   'SVGMaskElement': () => MaskElement,
   'SVGMatrix': () => Matrix,
   'SVGMetadataElement': () => MetadataElement,
-  'SVGMissingGlyphElement': () => _SVGMissingGlyphElement,
   'SVGNumber': () => Number,
   'SVGNumberList': () => NumberList,
   'SVGPathElement': () => PathElement,
@@ -142,7 +129,6 @@
   'SVGRadialGradientElement': () => RadialGradientElement,
   'SVGRect': () => Rect,
   'SVGRectElement': () => RectElement,
-  'SVGRenderingIntent': () => RenderingIntent,
   'SVGSVGElement': () => SvgSvgElement,
   'SVGScriptElement': () => ScriptElement,
   'SVGSetElement': () => SetElement,
@@ -163,7 +149,6 @@
   'SVGURIReference': () => UriReference,
   'SVGUnitTypes': () => UnitTypes,
   'SVGUseElement': () => UseElement,
-  'SVGVKernElement': () => _SVGVKernElement,
   'SVGViewElement': () => ViewElement,
   'SVGViewSpec': () => ViewSpec,
   'SVGZoomAndPan': () => ZoomAndPan,
@@ -175,9 +160,6 @@
 @Deprecated("Internal Use Only")
 final svgBlinkFunctionMap = {
   'SVGAElement': () => AElement.internalCreateAElement,
-  'SVGAltGlyphDefElement': () => _SVGAltGlyphDefElement.internalCreate_SVGAltGlyphDefElement,
-  'SVGAltGlyphElement': () => AltGlyphElement.internalCreateAltGlyphElement,
-  'SVGAltGlyphItemElement': () => _SVGAltGlyphItemElement.internalCreate_SVGAltGlyphItemElement,
   'SVGAngle': () => Angle.internalCreateAngle,
   'SVGAnimateElement': () => AnimateElement.internalCreateAnimateElement,
   'SVGAnimateMotionElement': () => AnimateMotionElement.internalCreateAnimateMotionElement,
@@ -230,20 +212,11 @@
   'SVGFETileElement': () => FETileElement.internalCreateFETileElement,
   'SVGFETurbulenceElement': () => FETurbulenceElement.internalCreateFETurbulenceElement,
   'SVGFilterElement': () => FilterElement.internalCreateFilterElement,
-  'SVGFontElement': () => _SVGFontElement.internalCreate_SVGFontElement,
-  'SVGFontFaceElement': () => _SVGFontFaceElement.internalCreate_SVGFontFaceElement,
-  'SVGFontFaceFormatElement': () => _SVGFontFaceFormatElement.internalCreate_SVGFontFaceFormatElement,
-  'SVGFontFaceNameElement': () => _SVGFontFaceNameElement.internalCreate_SVGFontFaceNameElement,
-  'SVGFontFaceSrcElement': () => _SVGFontFaceSrcElement.internalCreate_SVGFontFaceSrcElement,
-  'SVGFontFaceUriElement': () => _SVGFontFaceUriElement.internalCreate_SVGFontFaceUriElement,
   'SVGForeignObjectElement': () => ForeignObjectElement.internalCreateForeignObjectElement,
   'SVGGElement': () => GElement.internalCreateGElement,
   'SVGGeometryElement': () => GeometryElement.internalCreateGeometryElement,
-  'SVGGlyphElement': () => _SVGGlyphElement.internalCreate_SVGGlyphElement,
-  'SVGGlyphRefElement': () => _SVGGlyphRefElement.internalCreate_SVGGlyphRefElement,
   'SVGGradientElement': () => _GradientElement.internalCreate_GradientElement,
   'SVGGraphicsElement': () => GraphicsElement.internalCreateGraphicsElement,
-  'SVGHKernElement': () => _SVGHKernElement.internalCreate_SVGHKernElement,
   'SVGImageElement': () => ImageElement.internalCreateImageElement,
   'SVGLength': () => Length.internalCreateLength,
   'SVGLengthList': () => LengthList.internalCreateLengthList,
@@ -254,7 +227,6 @@
   'SVGMaskElement': () => MaskElement.internalCreateMaskElement,
   'SVGMatrix': () => Matrix.internalCreateMatrix,
   'SVGMetadataElement': () => MetadataElement.internalCreateMetadataElement,
-  'SVGMissingGlyphElement': () => _SVGMissingGlyphElement.internalCreate_SVGMissingGlyphElement,
   'SVGNumber': () => Number.internalCreateNumber,
   'SVGNumberList': () => NumberList.internalCreateNumberList,
   'SVGPathElement': () => PathElement.internalCreatePathElement,
@@ -288,7 +260,6 @@
   'SVGRadialGradientElement': () => RadialGradientElement.internalCreateRadialGradientElement,
   'SVGRect': () => Rect.internalCreateRect,
   'SVGRectElement': () => RectElement.internalCreateRectElement,
-  'SVGRenderingIntent': () => RenderingIntent.internalCreateRenderingIntent,
   'SVGSVGElement': () => SvgSvgElement.internalCreateSvgSvgElement,
   'SVGScriptElement': () => ScriptElement.internalCreateScriptElement,
   'SVGSetElement': () => SetElement.internalCreateSetElement,
@@ -307,7 +278,6 @@
   'SVGTransformList': () => TransformList.internalCreateTransformList,
   'SVGUnitTypes': () => UnitTypes.internalCreateUnitTypes,
   'SVGUseElement': () => UseElement.internalCreateUseElement,
-  'SVGVKernElement': () => _SVGVKernElement.internalCreate_SVGVKernElement,
   'SVGViewElement': () => ViewElement.internalCreateViewElement,
   'SVGViewSpec': () => ViewSpec.internalCreateViewSpec,
   'SVGZoomEvent': () => ZoomEvent.internalCreateZoomEvent,
@@ -378,69 +348,6 @@
 
 
 @DocsEditable()
-@DomName('SVGAltGlyphElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-class AltGlyphElement extends TextPositioningElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory AltGlyphElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGAltGlyphElement.SVGAltGlyphElement')
-  @DocsEditable()
-  factory AltGlyphElement() => _SvgElementFactoryProvider.createSvgElement_tag("altGlyph");
-
-
-  @Deprecated("Internal Use Only")
-  static AltGlyphElement internalCreateAltGlyphElement() {
-    return new AltGlyphElement._internalWrap();
-  }
-
-  external factory AltGlyphElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  AltGlyphElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  AltGlyphElement.created() : super.created();
-
-  /// Checks if this type is supported on the current platform.
-  static bool get supported => true;
-
-  @DomName('SVGAltGlyphElement.format')
-  @DocsEditable()
-  String get format => _blink.BlinkSVGAltGlyphElement.instance.format_Getter_(unwrap_jso(this));
-  
-  @DomName('SVGAltGlyphElement.format')
-  @DocsEditable()
-  set format(String value) => _blink.BlinkSVGAltGlyphElement.instance.format_Setter_(unwrap_jso(this), value);
-  
-  @DomName('SVGAltGlyphElement.glyphRef')
-  @DocsEditable()
-  String get glyphRef => _blink.BlinkSVGAltGlyphElement.instance.glyphRef_Getter_(unwrap_jso(this));
-  
-  @DomName('SVGAltGlyphElement.glyphRef')
-  @DocsEditable()
-  set glyphRef(String value) => _blink.BlinkSVGAltGlyphElement.instance.glyphRef_Setter_(unwrap_jso(this), value);
-  
-  @DomName('SVGAltGlyphElement.href')
-  @DocsEditable()
-  AnimatedString get href => wrap_jso(_blink.BlinkSVGAltGlyphElement.instance.href_Getter_(unwrap_jso(this)));
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('SVGAngle')
 @Unstable()
 class Angle extends DartHtmlDomObject {
@@ -2968,6 +2875,16 @@
   @DocsEditable()
   AnimatedString get in1 => wrap_jso(_blink.BlinkSVGFESpecularLightingElement.instance.in1_Getter_(unwrap_jso(this)));
   
+  @DomName('SVGFESpecularLightingElement.kernelUnitLengthX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AnimatedNumber get kernelUnitLengthX => wrap_jso(_blink.BlinkSVGFESpecularLightingElement.instance.kernelUnitLengthX_Getter_(unwrap_jso(this)));
+  
+  @DomName('SVGFESpecularLightingElement.kernelUnitLengthY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AnimatedNumber get kernelUnitLengthY => wrap_jso(_blink.BlinkSVGFESpecularLightingElement.instance.kernelUnitLengthY_Getter_(unwrap_jso(this)));
+  
   @DomName('SVGFESpecularLightingElement.specularConstant')
   @DocsEditable()
   AnimatedNumber get specularConstant => wrap_jso(_blink.BlinkSVGFESpecularLightingElement.instance.specularConstant_Getter_(unwrap_jso(this)));
@@ -3300,14 +3217,6 @@
   /// Checks if this type is supported on the current platform.
   static bool get supported => true;
 
-  @DomName('SVGFilterElement.filterResX')
-  @DocsEditable()
-  AnimatedInteger get filterResX => wrap_jso(_blink.BlinkSVGFilterElement.instance.filterResX_Getter_(unwrap_jso(this)));
-  
-  @DomName('SVGFilterElement.filterResY')
-  @DocsEditable()
-  AnimatedInteger get filterResY => wrap_jso(_blink.BlinkSVGFilterElement.instance.filterResY_Getter_(unwrap_jso(this)));
-  
   @DomName('SVGFilterElement.filterUnits')
   @DocsEditable()
   AnimatedEnumeration get filterUnits => wrap_jso(_blink.BlinkSVGFilterElement.instance.filterUnits_Getter_(unwrap_jso(this)));
@@ -3332,10 +3241,6 @@
   @DocsEditable()
   AnimatedLength get y => wrap_jso(_blink.BlinkSVGFilterElement.instance.y_Getter_(unwrap_jso(this)));
   
-  @DomName('SVGFilterElement.setFilterRes')
-  @DocsEditable()
-  void setFilterRes(int filterResX, int filterResY) => _blink.BlinkSVGFilterElement.instance.setFilterRes_Callback_2_(unwrap_jso(this), filterResX, filterResY);
-  
   @DomName('SVGFilterElement.href')
   @DocsEditable()
   AnimatedString get href => wrap_jso(_blink.BlinkSVGFilterElement.instance.href_Getter_(unwrap_jso(this)));
@@ -3882,11 +3787,11 @@
   @DomName('SVGLengthList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Length value) => _blink.BlinkSVGLengthList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, Length newItem) => _blink.BlinkSVGLengthList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(newItem));
   
   @DomName('SVGLengthList.appendItem')
   @DocsEditable()
-  Length appendItem(Length item) => wrap_jso(_blink.BlinkSVGLengthList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Length appendItem(Length newItem) => wrap_jso(_blink.BlinkSVGLengthList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGLengthList.clear')
   @DocsEditable()
@@ -3898,11 +3803,11 @@
   
   @DomName('SVGLengthList.initialize')
   @DocsEditable()
-  Length initialize(Length item) => wrap_jso(_blink.BlinkSVGLengthList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Length initialize(Length newItem) => wrap_jso(_blink.BlinkSVGLengthList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGLengthList.insertItemBefore')
   @DocsEditable()
-  Length insertItemBefore(Length item, int index) => wrap_jso(_blink.BlinkSVGLengthList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Length insertItemBefore(Length newItem, int index) => wrap_jso(_blink.BlinkSVGLengthList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
   @DomName('SVGLengthList.removeItem')
   @DocsEditable()
@@ -3910,7 +3815,7 @@
   
   @DomName('SVGLengthList.replaceItem')
   @DocsEditable()
-  Length replaceItem(Length item, int index) => wrap_jso(_blink.BlinkSVGLengthList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Length replaceItem(Length newItem, int index) => wrap_jso(_blink.BlinkSVGLengthList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -4479,11 +4384,11 @@
   @DomName('SVGNumberList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Number value) => _blink.BlinkSVGNumberList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, Number newItem) => _blink.BlinkSVGNumberList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(newItem));
   
   @DomName('SVGNumberList.appendItem')
   @DocsEditable()
-  Number appendItem(Number item) => wrap_jso(_blink.BlinkSVGNumberList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Number appendItem(Number newItem) => wrap_jso(_blink.BlinkSVGNumberList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGNumberList.clear')
   @DocsEditable()
@@ -4495,11 +4400,11 @@
   
   @DomName('SVGNumberList.initialize')
   @DocsEditable()
-  Number initialize(Number item) => wrap_jso(_blink.BlinkSVGNumberList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Number initialize(Number newItem) => wrap_jso(_blink.BlinkSVGNumberList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGNumberList.insertItemBefore')
   @DocsEditable()
-  Number insertItemBefore(Number item, int index) => wrap_jso(_blink.BlinkSVGNumberList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Number insertItemBefore(Number newItem, int index) => wrap_jso(_blink.BlinkSVGNumberList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
   @DomName('SVGNumberList.removeItem')
   @DocsEditable()
@@ -4507,7 +4412,7 @@
   
   @DomName('SVGNumberList.replaceItem')
   @DocsEditable()
-  Number replaceItem(Number item, int index) => wrap_jso(_blink.BlinkSVGNumberList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Number replaceItem(Number newItem, int index) => wrap_jso(_blink.BlinkSVGNumberList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -5749,7 +5654,7 @@
   @DomName('SVGPathSegList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, PathSeg value) => _blink.BlinkSVGPathSegList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, PathSeg newItem) => _blink.BlinkSVGPathSegList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(newItem));
   
   @DomName('SVGPathSegList.appendItem')
   @DocsEditable()
@@ -6050,11 +5955,11 @@
   @DomName('SVGPointList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Point value) => _blink.BlinkSVGPointList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, Point newItem) => _blink.BlinkSVGPointList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(newItem));
   
   @DomName('SVGPointList.appendItem')
   @DocsEditable()
-  Point appendItem(Point item) => wrap_jso(_blink.BlinkSVGPointList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Point appendItem(Point newItem) => wrap_jso(_blink.BlinkSVGPointList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGPointList.clear')
   @DocsEditable()
@@ -6066,11 +5971,11 @@
   
   @DomName('SVGPointList.initialize')
   @DocsEditable()
-  Point initialize(Point item) => wrap_jso(_blink.BlinkSVGPointList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Point initialize(Point newItem) => wrap_jso(_blink.BlinkSVGPointList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGPointList.insertItemBefore')
   @DocsEditable()
-  Point insertItemBefore(Point item, int index) => wrap_jso(_blink.BlinkSVGPointList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Point insertItemBefore(Point newItem, int index) => wrap_jso(_blink.BlinkSVGPointList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
   @DomName('SVGPointList.removeItem')
   @DocsEditable()
@@ -6078,7 +5983,7 @@
   
   @DomName('SVGPointList.replaceItem')
   @DocsEditable()
-  Point replaceItem(Point item, int index) => wrap_jso(_blink.BlinkSVGPointList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Point replaceItem(Point newItem, int index) => wrap_jso(_blink.BlinkSVGPointList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -6465,60 +6370,6 @@
 
 
 @DocsEditable()
-@DomName('SVGRenderingIntent')
-@Unstable()
-class RenderingIntent extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory RenderingIntent._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static RenderingIntent internalCreateRenderingIntent() {
-    return new RenderingIntent._internalWrap();
-  }
-
-  factory RenderingIntent._internalWrap() {
-    return new RenderingIntent.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  RenderingIntent.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_ABSOLUTE_COLORIMETRIC')
-  @DocsEditable()
-  static const int RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_AUTO')
-  @DocsEditable()
-  static const int RENDERING_INTENT_AUTO = 1;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_PERCEPTUAL')
-  @DocsEditable()
-  static const int RENDERING_INTENT_PERCEPTUAL = 2;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_RELATIVE_COLORIMETRIC')
-  @DocsEditable()
-  static const int RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_SATURATION')
-  @DocsEditable()
-  static const int RENDERING_INTENT_SATURATION = 4;
-
-  @DomName('SVGRenderingIntent.RENDERING_INTENT_UNKNOWN')
-  @DocsEditable()
-  static const int RENDERING_INTENT_UNKNOWN = 0;
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('SVGScriptElement')
 @Unstable()
 class ScriptElement extends SvgElement implements UriReference {
@@ -6729,11 +6580,11 @@
   @DomName('SVGStringList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, String value) => _blink.BlinkSVGStringList.instance.$__setter___Callback_2_(unwrap_jso(this), index, value);
+  void __setter__(int index, String newItem) => _blink.BlinkSVGStringList.instance.$__setter___Callback_2_(unwrap_jso(this), index, newItem);
   
   @DomName('SVGStringList.appendItem')
   @DocsEditable()
-  String appendItem(String item) => _blink.BlinkSVGStringList.instance.appendItem_Callback_1_(unwrap_jso(this), item);
+  String appendItem(String newItem) => _blink.BlinkSVGStringList.instance.appendItem_Callback_1_(unwrap_jso(this), newItem);
   
   @DomName('SVGStringList.clear')
   @DocsEditable()
@@ -6745,7 +6596,7 @@
   
   @DomName('SVGStringList.initialize')
   @DocsEditable()
-  String initialize(String item) => _blink.BlinkSVGStringList.instance.initialize_Callback_1_(unwrap_jso(this), item);
+  String initialize(String newItem) => _blink.BlinkSVGStringList.instance.initialize_Callback_1_(unwrap_jso(this), newItem);
   
   @DomName('SVGStringList.insertItemBefore')
   @DocsEditable()
@@ -6757,7 +6608,7 @@
   
   @DomName('SVGStringList.replaceItem')
   @DocsEditable()
-  String replaceItem(String item, int index) => _blink.BlinkSVGStringList.instance.replaceItem_Callback_2_(unwrap_jso(this), item, index);
+  String replaceItem(String newItem, int index) => _blink.BlinkSVGStringList.instance.replaceItem_Callback_2_(unwrap_jso(this), newItem, index);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -7304,33 +7155,15 @@
   @DocsEditable()
   SvgElement get viewportElement => wrap_jso(_blink.BlinkSVGElement.instance.viewportElement_Getter_(unwrap_jso(this)));
   
-  @DomName('SVGElement.xmlbase')
-  @DocsEditable()
-  String get xmlbase => _blink.BlinkSVGElement.instance.xmlbase_Getter_(unwrap_jso(this));
-  
-  @DomName('SVGElement.xmlbase')
-  @DocsEditable()
-  set xmlbase(String value) => _blink.BlinkSVGElement.instance.xmlbase_Setter_(unwrap_jso(this), value);
-  
-  @DomName('SVGElement.xmllang')
+  @DomName('SVGElement.blur')
   @DocsEditable()
   @Experimental() // untriaged
-  String get xmllang => _blink.BlinkSVGElement.instance.xmllang_Getter_(unwrap_jso(this));
+  void blur() => _blink.BlinkSVGElement.instance.blur_Callback_0_(unwrap_jso(this));
   
-  @DomName('SVGElement.xmllang')
+  @DomName('SVGElement.focus')
   @DocsEditable()
   @Experimental() // untriaged
-  set xmllang(String value) => _blink.BlinkSVGElement.instance.xmllang_Setter_(unwrap_jso(this), value);
-  
-  @DomName('SVGElement.xmlspace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  String get xmlspace => _blink.BlinkSVGElement.instance.xmlspace_Getter_(unwrap_jso(this));
-  
-  @DomName('SVGElement.xmlspace')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set xmlspace(String value) => _blink.BlinkSVGElement.instance.xmlspace_Setter_(unwrap_jso(this), value);
+  void focus() => _blink.BlinkSVGElement.instance.focus_Callback_0_(unwrap_jso(this));
   
   @DomName('SVGElement.onabort')
   @DocsEditable()
@@ -8006,11 +7839,11 @@
   
   @DomName('SVGTextContentElement.getEndPositionOfChar')
   @DocsEditable()
-  Point getEndPositionOfChar(int offset) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getEndPositionOfChar_Callback_1_(unwrap_jso(this), offset));
+  Point getEndPositionOfChar(int charnum) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getEndPositionOfChar_Callback_1_(unwrap_jso(this), charnum));
   
   @DomName('SVGTextContentElement.getExtentOfChar')
   @DocsEditable()
-  Rect getExtentOfChar(int offset) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getExtentOfChar_Callback_1_(unwrap_jso(this), offset));
+  Rect getExtentOfChar(int charnum) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getExtentOfChar_Callback_1_(unwrap_jso(this), charnum));
   
   @DomName('SVGTextContentElement.getNumberOfChars')
   @DocsEditable()
@@ -8018,19 +7851,19 @@
   
   @DomName('SVGTextContentElement.getRotationOfChar')
   @DocsEditable()
-  num getRotationOfChar(int offset) => _blink.BlinkSVGTextContentElement.instance.getRotationOfChar_Callback_1_(unwrap_jso(this), offset);
+  num getRotationOfChar(int charnum) => _blink.BlinkSVGTextContentElement.instance.getRotationOfChar_Callback_1_(unwrap_jso(this), charnum);
   
   @DomName('SVGTextContentElement.getStartPositionOfChar')
   @DocsEditable()
-  Point getStartPositionOfChar(int offset) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getStartPositionOfChar_Callback_1_(unwrap_jso(this), offset));
+  Point getStartPositionOfChar(int charnum) => wrap_jso(_blink.BlinkSVGTextContentElement.instance.getStartPositionOfChar_Callback_1_(unwrap_jso(this), charnum));
   
   @DomName('SVGTextContentElement.getSubStringLength')
   @DocsEditable()
-  num getSubStringLength(int offset, int length) => _blink.BlinkSVGTextContentElement.instance.getSubStringLength_Callback_2_(unwrap_jso(this), offset, length);
+  num getSubStringLength(int charnum, int nchars) => _blink.BlinkSVGTextContentElement.instance.getSubStringLength_Callback_2_(unwrap_jso(this), charnum, nchars);
   
   @DomName('SVGTextContentElement.selectSubString')
   @DocsEditable()
-  void selectSubString(int offset, int length) => _blink.BlinkSVGTextContentElement.instance.selectSubString_Callback_2_(unwrap_jso(this), offset, length);
+  void selectSubString(int charnum, int nchars) => _blink.BlinkSVGTextContentElement.instance.selectSubString_Callback_2_(unwrap_jso(this), charnum, nchars);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -8412,11 +8245,11 @@
   @DomName('SVGTransformList.__setter__')
   @DocsEditable()
   @Experimental() // untriaged
-  void __setter__(int index, Transform value) => _blink.BlinkSVGTransformList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(value));
+  void __setter__(int index, Transform newItem) => _blink.BlinkSVGTransformList.instance.$__setter___Callback_2_(unwrap_jso(this), index, unwrap_jso(newItem));
   
   @DomName('SVGTransformList.appendItem')
   @DocsEditable()
-  Transform appendItem(Transform item) => wrap_jso(_blink.BlinkSVGTransformList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Transform appendItem(Transform newItem) => wrap_jso(_blink.BlinkSVGTransformList.instance.appendItem_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGTransformList.clear')
   @DocsEditable()
@@ -8436,11 +8269,11 @@
   
   @DomName('SVGTransformList.initialize')
   @DocsEditable()
-  Transform initialize(Transform item) => wrap_jso(_blink.BlinkSVGTransformList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(item)));
+  Transform initialize(Transform newItem) => wrap_jso(_blink.BlinkSVGTransformList.instance.initialize_Callback_1_(unwrap_jso(this), unwrap_jso(newItem)));
   
   @DomName('SVGTransformList.insertItemBefore')
   @DocsEditable()
-  Transform insertItemBefore(Transform item, int index) => wrap_jso(_blink.BlinkSVGTransformList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Transform insertItemBefore(Transform newItem, int index) => wrap_jso(_blink.BlinkSVGTransformList.instance.insertItemBefore_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
   @DomName('SVGTransformList.removeItem')
   @DocsEditable()
@@ -8448,7 +8281,7 @@
   
   @DomName('SVGTransformList.replaceItem')
   @DocsEditable()
-  Transform replaceItem(Transform item, int index) => wrap_jso(_blink.BlinkSVGTransformList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(item), index));
+  Transform replaceItem(Transform newItem, int index) => wrap_jso(_blink.BlinkSVGTransformList.instance.replaceItem_Callback_2_(unwrap_jso(this), unwrap_jso(newItem), index));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -8855,72 +8688,6 @@
 
 
 @DocsEditable()
-@DomName('SVGAltGlyphDefElement')
-@Unstable()
-class _SVGAltGlyphDefElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGAltGlyphDefElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGAltGlyphDefElement internalCreate_SVGAltGlyphDefElement() {
-    return new _SVGAltGlyphDefElement._internalWrap();
-  }
-
-  external factory _SVGAltGlyphDefElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGAltGlyphDefElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGAltGlyphDefElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGAltGlyphItemElement')
-@Unstable()
-class _SVGAltGlyphItemElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGAltGlyphItemElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGAltGlyphItemElement internalCreate_SVGAltGlyphItemElement() {
-    return new _SVGAltGlyphItemElement._internalWrap();
-  }
-
-  external factory _SVGAltGlyphItemElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGAltGlyphItemElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGAltGlyphItemElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('SVGComponentTransferFunctionElement')
 @Unstable()
 class _SVGComponentTransferFunctionElement extends SvgElement {
@@ -9033,312 +8800,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontElement')
-@Unstable()
-class _SVGFontElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontElement internalCreate_SVGFontElement() {
-    return new _SVGFontElement._internalWrap();
-  }
-
-  external factory _SVGFontElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceElement')
-@Unstable()
-class _SVGFontFaceElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontFaceElement internalCreate_SVGFontFaceElement() {
-    return new _SVGFontFaceElement._internalWrap();
-  }
-
-  external factory _SVGFontFaceElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontFaceElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceFormatElement')
-@Unstable()
-class _SVGFontFaceFormatElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceFormatElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontFaceFormatElement internalCreate_SVGFontFaceFormatElement() {
-    return new _SVGFontFaceFormatElement._internalWrap();
-  }
-
-  external factory _SVGFontFaceFormatElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontFaceFormatElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceFormatElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceNameElement')
-@Unstable()
-class _SVGFontFaceNameElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceNameElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontFaceNameElement internalCreate_SVGFontFaceNameElement() {
-    return new _SVGFontFaceNameElement._internalWrap();
-  }
-
-  external factory _SVGFontFaceNameElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontFaceNameElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceNameElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceSrcElement')
-@Unstable()
-class _SVGFontFaceSrcElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceSrcElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontFaceSrcElement internalCreate_SVGFontFaceSrcElement() {
-    return new _SVGFontFaceSrcElement._internalWrap();
-  }
-
-  external factory _SVGFontFaceSrcElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontFaceSrcElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceSrcElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGFontFaceUriElement')
-@Unstable()
-class _SVGFontFaceUriElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGFontFaceUriElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGFontFaceUriElement internalCreate_SVGFontFaceUriElement() {
-    return new _SVGFontFaceUriElement._internalWrap();
-  }
-
-  external factory _SVGFontFaceUriElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGFontFaceUriElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGFontFaceUriElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGGlyphElement')
-@Unstable()
-class _SVGGlyphElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGGlyphElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGGlyphElement.SVGGlyphElement')
-  @DocsEditable()
-  factory _SVGGlyphElement() => _SvgElementFactoryProvider.createSvgElement_tag("glyph");
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGGlyphElement internalCreate_SVGGlyphElement() {
-    return new _SVGGlyphElement._internalWrap();
-  }
-
-  external factory _SVGGlyphElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGGlyphElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGGlyphElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
-@DomName('SVGGlyphRefElement')
-@Unstable()
-class _SVGGlyphRefElement extends SvgElement implements UriReference {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGGlyphRefElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGGlyphRefElement internalCreate_SVGGlyphRefElement() {
-    return new _SVGGlyphRefElement._internalWrap();
-  }
-
-  external factory _SVGGlyphRefElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGGlyphRefElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGGlyphRefElement.created() : super.created();
-
-  // Override these methods for Dartium _SVGGlyphRefElement can't be abstract.
-  AnimatedString get href => wrap_jso(_blink.BlinkSVGGlyphRefElement.instance.href_Getter_(unwrap_jso(this)));
-}
-
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGHKernElement')
-@Unstable()
-class _SVGHKernElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGHKernElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGHKernElement.SVGHKernElement')
-  @DocsEditable()
-  factory _SVGHKernElement() => _SvgElementFactoryProvider.createSvgElement_tag("hkern");
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGHKernElement internalCreate_SVGHKernElement() {
-    return new _SVGHKernElement._internalWrap();
-  }
-
-  external factory _SVGHKernElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGHKernElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGHKernElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
 
 @DocsEditable()
 @DomName('SVGMPathElement')
@@ -9372,73 +8833,3 @@
   AnimatedString get href => wrap_jso(_blink.BlinkSVGMPathElement.instance.href_Getter_(unwrap_jso(this)));
 }
 
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGMissingGlyphElement')
-@Unstable()
-class _SVGMissingGlyphElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGMissingGlyphElement._() { throw new UnsupportedError("Not supported"); }
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGMissingGlyphElement internalCreate_SVGMissingGlyphElement() {
-    return new _SVGMissingGlyphElement._internalWrap();
-  }
-
-  external factory _SVGMissingGlyphElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGMissingGlyphElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGMissingGlyphElement.created() : super.created();
-
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
-@DomName('SVGVKernElement')
-@Unstable()
-class _SVGVKernElement extends SvgElement {
-  // To suppress missing implicit constructor warnings.
-  factory _SVGVKernElement._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('SVGVKernElement.SVGVKernElement')
-  @DocsEditable()
-  factory _SVGVKernElement() => _SvgElementFactoryProvider.createSvgElement_tag("vkern");
-
-
-  @Deprecated("Internal Use Only")
-  static _SVGVKernElement internalCreate_SVGVKernElement() {
-    return new _SVGVKernElement._internalWrap();
-  }
-
-  external factory _SVGVKernElement._internalWrap();
-
-  @Deprecated("Internal Use Only")
-  _SVGVKernElement.internal_() : super.internal_();
-
-  /**
-   * Constructor instantiated by the DOM when a custom element has been created.
-   *
-   * This can only be called by subclasses from their created constructor.
-   */
-  _SVGVKernElement.created() : super.created();
-
-}
diff --git a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
index 6005329..2a7e664 100644
--- a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
@@ -101,6 +101,16 @@
   @DocsEditable()
   final double sampleRate;
 
+  @DomName('AudioBuffer.copyFromChannel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyFromChannel(Float32List destination, int channelNumber, [int startInChannel]) native;
+
+  @DomName('AudioBuffer.copyToChannel')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyToChannel(Float32List source, int channelNumber, [int startInChannel]) native;
+
   @DomName('AudioBuffer.getChannelData')
   @DocsEditable()
   Float32List getChannelData(int channelIndex) native;
@@ -176,6 +186,11 @@
   @DocsEditable()
   AudioBuffer buffer;
 
+  @DomName('AudioBufferSourceNode.detune')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final AudioParam detune;
+
   @DomName('AudioBufferSourceNode.loop')
   @DocsEditable()
   bool loop;
@@ -214,16 +229,6 @@
   // To suppress missing implicit constructor warnings.
   factory AudioContext._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `complete` events to event
-   * handlers that are not necessarily instances of [AudioContext].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('AudioContext.completeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> completeEvent = const EventStreamProvider<Event>('complete');
-
   /// Checks if this type is supported on the current platform.
   static bool get supported => JS('bool', '!!(window.AudioContext || window.webkitAudioContext)');
 
@@ -243,6 +248,16 @@
   @DocsEditable()
   final double sampleRate;
 
+  @DomName('AudioContext.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final String state;
+
+  @DomName('AudioContext.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future close() native;
+
   @DomName('AudioContext.createAnalyser')
   @DocsEditable()
   AnalyserNode createAnalyser() native;
@@ -304,6 +319,11 @@
   @Experimental() // untriaged
   PeriodicWave createPeriodicWave(Float32List real, Float32List imag) native;
 
+  @DomName('AudioContext.createStereoPanner')
+  @DocsEditable()
+  @Experimental() // untriaged
+  StereoPannerNode createStereoPanner() native;
+
   @DomName('AudioContext.createWaveShaper')
   @DocsEditable()
   WaveShaperNode createWaveShaper() native;
@@ -313,14 +333,15 @@
   @DocsEditable()
   void _decodeAudioData(ByteBuffer audioData, AudioBufferCallback successCallback, [AudioBufferCallback errorCallback]) native;
 
-  @DomName('AudioContext.startRendering')
+  @DomName('AudioContext.resume')
   @DocsEditable()
-  void startRendering() native;
+  @Experimental() // untriaged
+  Future resume() native;
 
-  /// Stream of `complete` events handled by this [AudioContext].
-  @DomName('AudioContext.oncomplete')
+  @DomName('AudioContext.suspend')
   @DocsEditable()
-  Stream<Event> get onComplete => completeEvent.forTarget(this);
+  @Experimental() // untriaged
+  Future suspend() native;
 
   factory AudioContext() => JS('AudioContext',
       'new (window.AudioContext || window.webkitAudioContext)()');
@@ -455,11 +476,11 @@
   @JSName('connect')
   @DomName('AudioNode.connect')
   @DocsEditable()
-  void _connect(destination, int output, [int input]) native;
+  void _connect(destination, [int output, int input]) native;
 
   @DomName('AudioNode.disconnect')
   @DocsEditable()
-  void disconnect(int output) native;
+  void disconnect([destination_OR_output, int output, int input]) native;
 
   @DomName('AudioNode.connect')
   void connectNode(AudioNode destination, [int output = 0, int input = 0]) =>
@@ -811,6 +832,11 @@
     return OfflineAudioContext._create_1(numberOfChannels, numberOfFrames, sampleRate);
   }
   static OfflineAudioContext _create_1(numberOfChannels, numberOfFrames, sampleRate) => JS('OfflineAudioContext', 'new OfflineAudioContext(#,#,#)', numberOfChannels, numberOfFrames, sampleRate);
+
+  @DomName('OfflineAudioContext.startRendering')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future startRendering() native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -849,14 +875,6 @@
   @DocsEditable()
   String type;
 
-  @DomName('OscillatorNode.noteOff')
-  @DocsEditable()
-  void noteOff(num when) native;
-
-  @DomName('OscillatorNode.noteOn')
-  @DocsEditable()
-  void noteOn(num when) native;
-
   @DomName('OscillatorNode.setPeriodicWave')
   @DocsEditable()
   @Experimental() // untriaged
@@ -1000,6 +1018,24 @@
 
 
 @DocsEditable()
+@DomName('StereoPannerNode')
+@Experimental() // untriaged
+@Native("StereoPannerNode")
+class StereoPannerNode extends AudioNode {
+  // To suppress missing implicit constructor warnings.
+  factory StereoPannerNode._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('StereoPannerNode.pan')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final AudioParam pan;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WaveShaperNode')
 // https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode
 @Experimental()
diff --git a/sdk/lib/web_audio/dartium/web_audio_dartium.dart b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
index 7a3a9c4..d318a3d 100644
--- a/sdk/lib/web_audio/dartium/web_audio_dartium.dart
+++ b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
@@ -47,6 +47,7 @@
   'PannerNode': () => PannerNode,
   'PeriodicWave': () => PeriodicWave,
   'ScriptProcessorNode': () => ScriptProcessorNode,
+  'StereoPannerNode': () => StereoPannerNode,
   'WaveShaperNode': () => WaveShaperNode,
 
 };
@@ -80,6 +81,7 @@
   'PannerNode': () => PannerNode.internalCreatePannerNode,
   'PeriodicWave': () => PeriodicWave.internalCreatePeriodicWave,
   'ScriptProcessorNode': () => ScriptProcessorNode.internalCreateScriptProcessorNode,
+  'StereoPannerNode': () => StereoPannerNode.internalCreateStereoPannerNode,
   'WaveShaperNode': () => WaveShaperNode.internalCreateWaveShaperNode,
 
 };
@@ -148,20 +150,20 @@
   
   @DomName('AnalyserNode.getByteFrequencyData')
   @DocsEditable()
-  void getByteFrequencyData(Uint8List array) => _blink.BlinkAnalyserNode.instance.getByteFrequencyData_Callback_1_(unwrap_jso(this), array);
+  void getByteFrequencyData(Uint8List array) => _blink.BlinkAnalyserNode.instance.getByteFrequencyData_Callback_1_(unwrap_jso(this), unwrap_jso(array));
   
   @DomName('AnalyserNode.getByteTimeDomainData')
   @DocsEditable()
-  void getByteTimeDomainData(Uint8List array) => _blink.BlinkAnalyserNode.instance.getByteTimeDomainData_Callback_1_(unwrap_jso(this), array);
+  void getByteTimeDomainData(Uint8List array) => _blink.BlinkAnalyserNode.instance.getByteTimeDomainData_Callback_1_(unwrap_jso(this), unwrap_jso(array));
   
   @DomName('AnalyserNode.getFloatFrequencyData')
   @DocsEditable()
-  void getFloatFrequencyData(Float32List array) => _blink.BlinkAnalyserNode.instance.getFloatFrequencyData_Callback_1_(unwrap_jso(this), array);
+  void getFloatFrequencyData(Float32List array) => _blink.BlinkAnalyserNode.instance.getFloatFrequencyData_Callback_1_(unwrap_jso(this), unwrap_jso(array));
   
   @DomName('AnalyserNode.getFloatTimeDomainData')
   @DocsEditable()
   @Experimental() // untriaged
-  void getFloatTimeDomainData(Float32List array) => _blink.BlinkAnalyserNode.instance.getFloatTimeDomainData_Callback_1_(unwrap_jso(this), array);
+  void getFloatTimeDomainData(Float32List array) => _blink.BlinkAnalyserNode.instance.getFloatTimeDomainData_Callback_1_(unwrap_jso(this), unwrap_jso(array));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -210,9 +212,27 @@
   @DocsEditable()
   num get sampleRate => _blink.BlinkAudioBuffer.instance.sampleRate_Getter_(unwrap_jso(this));
   
+  void copyFromChannel(Float32List destination, int channelNumber, [int startInChannel]) {
+    if (startInChannel != null) {
+      _blink.BlinkAudioBuffer.instance.copyFromChannel_Callback_3_(unwrap_jso(this), unwrap_jso(destination), channelNumber, startInChannel);
+      return;
+    }
+    _blink.BlinkAudioBuffer.instance.copyFromChannel_Callback_2_(unwrap_jso(this), unwrap_jso(destination), channelNumber);
+    return;
+  }
+
+  void copyToChannel(Float32List source, int channelNumber, [int startInChannel]) {
+    if (startInChannel != null) {
+      _blink.BlinkAudioBuffer.instance.copyToChannel_Callback_3_(unwrap_jso(this), unwrap_jso(source), channelNumber, startInChannel);
+      return;
+    }
+    _blink.BlinkAudioBuffer.instance.copyToChannel_Callback_2_(unwrap_jso(this), unwrap_jso(source), channelNumber);
+    return;
+  }
+
   @DomName('AudioBuffer.getChannelData')
   @DocsEditable()
-  Float32List getChannelData(int channelIndex) => _blink.BlinkAudioBuffer.instance.getChannelData_Callback_1_(unwrap_jso(this), channelIndex);
+  Float32List getChannelData(int channelIndex) => wrap_jso(_blink.BlinkAudioBuffer.instance.getChannelData_Callback_1_(unwrap_jso(this), channelIndex));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -274,6 +294,11 @@
   @DocsEditable()
   set buffer(AudioBuffer value) => _blink.BlinkAudioBufferSourceNode.instance.buffer_Setter_(unwrap_jso(this), unwrap_jso(value));
   
+  @DomName('AudioBufferSourceNode.detune')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AudioParam get detune => wrap_jso(_blink.BlinkAudioBufferSourceNode.instance.detune_Getter_(unwrap_jso(this)));
+  
   @DomName('AudioBufferSourceNode.loop')
   @DocsEditable()
   bool get loop => _blink.BlinkAudioBufferSourceNode.instance.loop_Getter_(unwrap_jso(this));
@@ -349,16 +374,6 @@
   // To suppress missing implicit constructor warnings.
   factory AudioContext._() { throw new UnsupportedError("Not supported"); }
 
-  /**
-   * Static factory designed to expose `complete` events to event
-   * handlers that are not necessarily instances of [AudioContext].
-   *
-   * See [EventStreamProvider] for usage information.
-   */
-  @DomName('AudioContext.completeEvent')
-  @DocsEditable()
-  static const EventStreamProvider<Event> completeEvent = const EventStreamProvider<Event>('complete');
-
   @DomName('AudioContext.AudioContext')
   @DocsEditable()
   factory AudioContext() {
@@ -396,6 +411,16 @@
   @DocsEditable()
   num get sampleRate => _blink.BlinkAudioContext.instance.sampleRate_Getter_(unwrap_jso(this));
   
+  @DomName('AudioContext.state')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String get state => _blink.BlinkAudioContext.instance.state_Getter_(unwrap_jso(this));
+  
+  @DomName('AudioContext.close')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future close() => wrap_jso(_blink.BlinkAudioContext.instance.close_Callback_0_(unwrap_jso(this)));
+  
   @DomName('AudioContext.createAnalyser')
   @DocsEditable()
   AnalyserNode createAnalyser() => wrap_jso(_blink.BlinkAudioContext.instance.createAnalyser_Callback_0_(unwrap_jso(this)));
@@ -468,7 +493,7 @@
   @DomName('AudioContext.createPeriodicWave')
   @DocsEditable()
   @Experimental() // untriaged
-  PeriodicWave createPeriodicWave(Float32List real, Float32List imag) => wrap_jso(_blink.BlinkAudioContext.instance.createPeriodicWave_Callback_2_(unwrap_jso(this), real, imag));
+  PeriodicWave createPeriodicWave(Float32List real, Float32List imag) => wrap_jso(_blink.BlinkAudioContext.instance.createPeriodicWave_Callback_2_(unwrap_jso(this), unwrap_jso(real), unwrap_jso(imag)));
   
   ScriptProcessorNode createScriptProcessor([int bufferSize, int numberOfInputChannels, int numberOfOutputChannels]) {
     if (numberOfOutputChannels != null) {
@@ -483,23 +508,34 @@
     return wrap_jso(_blink.BlinkAudioContext.instance.createScriptProcessor_Callback_0_(unwrap_jso(this)));
   }
 
+  @DomName('AudioContext.createStereoPanner')
+  @DocsEditable()
+  @Experimental() // untriaged
+  StereoPannerNode createStereoPanner() => wrap_jso(_blink.BlinkAudioContext.instance.createStereoPanner_Callback_0_(unwrap_jso(this)));
+  
   @DomName('AudioContext.createWaveShaper')
   @DocsEditable()
   WaveShaperNode createWaveShaper() => wrap_jso(_blink.BlinkAudioContext.instance.createWaveShaper_Callback_0_(unwrap_jso(this)));
   
-  @DomName('AudioContext.decodeAudioData')
-  @DocsEditable()
-  void _decodeAudioData(ByteBuffer audioData, AudioBufferCallback successCallback, [AudioBufferCallback errorCallback]) => _blink.BlinkAudioContext.instance.decodeAudioData_Callback_3_(unwrap_jso(this), audioData, unwrap_jso((audioBuffer) => successCallback(wrap_jso(audioBuffer))), unwrap_jso((audioBuffer) => errorCallback(wrap_jso(audioBuffer))));
-  
-  @DomName('AudioContext.startRendering')
-  @DocsEditable()
-  void startRendering() => _blink.BlinkAudioContext.instance.startRendering_Callback_0_(unwrap_jso(this));
-  
-  /// Stream of `complete` events handled by this [AudioContext].
-  @DomName('AudioContext.oncomplete')
-  @DocsEditable()
-  Stream<Event> get onComplete => completeEvent.forTarget(this);
+  void _decodeAudioData(ByteBuffer audioData, AudioBufferCallback successCallback, [AudioBufferCallback errorCallback]) {
+    if (errorCallback != null) {
+      _blink.BlinkAudioContext.instance.decodeAudioData_Callback_3_(unwrap_jso(this), unwrap_jso(audioData), unwrap_jso((audioBuffer) => successCallback(wrap_jso(audioBuffer))), unwrap_jso((audioBuffer) => errorCallback(wrap_jso(audioBuffer))));
+      return;
+    }
+    _blink.BlinkAudioContext.instance.decodeAudioData_Callback_2_(unwrap_jso(this), unwrap_jso(audioData), unwrap_jso((audioBuffer) => successCallback(wrap_jso(audioBuffer))));
+    return;
+  }
 
+  @DomName('AudioContext.resume')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future resume() => wrap_jso(_blink.BlinkAudioContext.instance.resume_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('AudioContext.suspend')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future suspend() => wrap_jso(_blink.BlinkAudioContext.instance.suspend_Callback_0_(unwrap_jso(this)));
+  
   @DomName('AudioContext.decodeAudioData')
   Future<AudioBuffer> decodeAudioData(ByteBuffer audioData) {
     var completer = new Completer<AudioBuffer>();
@@ -666,22 +702,62 @@
   @DocsEditable()
   int get numberOfOutputs => _blink.BlinkAudioNode.instance.numberOfOutputs_Getter_(unwrap_jso(this));
   
-  void _connect(destination, int output, [int input]) {
-    if ((input is int || input == null) && (output is int || output == null) && (destination is AudioNode || destination == null)) {
+  void _connect(destination, [int output, int input]) {
+    if ((destination is AudioNode) && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.connect_Callback_1_(unwrap_jso(this), unwrap_jso(destination));
+      return;
+    }
+    if ((output is int || output == null) && (destination is AudioNode) && input == null) {
+      _blink.BlinkAudioNode.instance.connect_Callback_2_(unwrap_jso(this), unwrap_jso(destination), output);
+      return;
+    }
+    if ((input is int || input == null) && (output is int || output == null) && (destination is AudioNode)) {
       _blink.BlinkAudioNode.instance.connect_Callback_3_(unwrap_jso(this), unwrap_jso(destination), output, input);
       return;
     }
-    if ((output is int || output == null) && (destination is AudioParam || destination == null) && input == null) {
+    if ((destination is AudioParam) && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.connect_Callback_1_(unwrap_jso(this), unwrap_jso(destination));
+      return;
+    }
+    if ((output is int || output == null) && (destination is AudioParam) && input == null) {
       _blink.BlinkAudioNode.instance.connect_Callback_2_(unwrap_jso(this), unwrap_jso(destination), output);
       return;
     }
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('AudioNode.disconnect')
-  @DocsEditable()
-  void disconnect(int output) => _blink.BlinkAudioNode.instance.disconnect_Callback_1_(unwrap_jso(this), output);
-  
+  void disconnect([destination_OR_output, int output, int input]) {
+    if (destination_OR_output == null && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_0_(unwrap_jso(this));
+      return;
+    }
+    if ((destination_OR_output is int) && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_1_(unwrap_jso(this), unwrap_jso(destination_OR_output));
+      return;
+    }
+    if ((destination_OR_output is AudioNode) && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_1_(unwrap_jso(this), unwrap_jso(destination_OR_output));
+      return;
+    }
+    if ((output is int) && (destination_OR_output is AudioNode) && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_2_(unwrap_jso(this), unwrap_jso(destination_OR_output), output);
+      return;
+    }
+    if ((input is int) && (output is int) && (destination_OR_output is AudioNode)) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_3_(unwrap_jso(this), unwrap_jso(destination_OR_output), output, input);
+      return;
+    }
+    if ((destination_OR_output is AudioParam) && output == null && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_1_(unwrap_jso(this), unwrap_jso(destination_OR_output));
+      return;
+    }
+    if ((output is int) && (destination_OR_output is AudioParam) && input == null) {
+      _blink.BlinkAudioNode.instance.disconnect_Callback_2_(unwrap_jso(this), unwrap_jso(destination_OR_output), output);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('AudioNode.connect')
   void connectNode(AudioNode destination, [int output = 0, int input = 0]) =>
       _connect(destination, output, input);
@@ -754,7 +830,7 @@
   
   @DomName('AudioParam.setValueCurveAtTime')
   @DocsEditable()
-  void setValueCurveAtTime(Float32List values, num time, num duration) => _blink.BlinkAudioParam.instance.setValueCurveAtTime_Callback_3_(unwrap_jso(this), values, time, duration);
+  void setValueCurveAtTime(Float32List values, num time, num duration) => _blink.BlinkAudioParam.instance.setValueCurveAtTime_Callback_3_(unwrap_jso(this), unwrap_jso(values), time, duration);
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -879,7 +955,7 @@
   
   @DomName('BiquadFilterNode.getFrequencyResponse')
   @DocsEditable()
-  void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse, Float32List phaseResponse) => _blink.BlinkBiquadFilterNode.instance.getFrequencyResponse_Callback_3_(unwrap_jso(this), frequencyHz, magResponse, phaseResponse);
+  void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse, Float32List phaseResponse) => _blink.BlinkBiquadFilterNode.instance.getFrequencyResponse_Callback_3_(unwrap_jso(this), unwrap_jso(frequencyHz), unwrap_jso(magResponse), unwrap_jso(phaseResponse));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -1260,6 +1336,11 @@
   OfflineAudioContext.internal_() : super.internal_();
 
 
+  @DomName('OfflineAudioContext.startRendering')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Future startRendering() => wrap_jso(_blink.BlinkOfflineAudioContext.instance.startRendering_Callback_0_(unwrap_jso(this)));
+  
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -1315,14 +1396,6 @@
   @DocsEditable()
   set type(String value) => _blink.BlinkOscillatorNode.instance.type_Setter_(unwrap_jso(this), value);
   
-  @DomName('OscillatorNode.noteOff')
-  @DocsEditable()
-  void noteOff(num when) => _blink.BlinkOscillatorNode.instance.noteOff_Callback_1_(unwrap_jso(this), when);
-  
-  @DomName('OscillatorNode.noteOn')
-  @DocsEditable()
-  void noteOn(num when) => _blink.BlinkOscillatorNode.instance.noteOn_Callback_1_(unwrap_jso(this), when);
-  
   @DomName('OscillatorNode.setPeriodicWave')
   @DocsEditable()
   @Experimental() // untriaged
@@ -1556,6 +1629,38 @@
 
 
 @DocsEditable()
+@DomName('StereoPannerNode')
+@Experimental() // untriaged
+class StereoPannerNode extends AudioNode {
+  // To suppress missing implicit constructor warnings.
+  factory StereoPannerNode._() { throw new UnsupportedError("Not supported"); }
+
+
+  @Deprecated("Internal Use Only")
+  static StereoPannerNode internalCreateStereoPannerNode() {
+    return new StereoPannerNode._internalWrap();
+  }
+
+  external factory StereoPannerNode._internalWrap();
+
+  @Deprecated("Internal Use Only")
+  StereoPannerNode.internal_() : super.internal_();
+
+
+  @DomName('StereoPannerNode.pan')
+  @DocsEditable()
+  @Experimental() // untriaged
+  AudioParam get pan => wrap_jso(_blink.BlinkStereoPannerNode.instance.pan_Getter_(unwrap_jso(this)));
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WaveShaperNode')
 // https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode
 @Experimental()
@@ -1577,7 +1682,7 @@
 
   @DomName('WaveShaperNode.curve')
   @DocsEditable()
-  Float32List get curve => _blink.BlinkWaveShaperNode.instance.curve_Getter_(unwrap_jso(this));
+  Float32List get curve => wrap_jso(_blink.BlinkWaveShaperNode.instance.curve_Getter_(unwrap_jso(this)));
   
   @DomName('WaveShaperNode.curve')
   @DocsEditable()
diff --git a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
index 2ce52d4..37916f4 100644
--- a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
@@ -401,6 +401,71 @@
 
 
 @DocsEditable()
+@DomName('CHROMIUMSubscribeUniform')
+@Experimental() // untriaged
+@Native("CHROMIUMSubscribeUniform")
+class ChromiumSubscribeUniform extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory ChromiumSubscribeUniform._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('CHROMIUMSubscribeUniform.MOUSE_POSITION_CHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MOUSE_POSITION_CHROMIUM = 0x924C;
+
+  @DomName('CHROMIUMSubscribeUniform.SUBSCRIBED_VALUES_BUFFER_CHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SUBSCRIBED_VALUES_BUFFER_CHROMIUM = 0x924B;
+
+  @JSName('bindValuebufferCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.bindValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindValuebufferChromium(int target, ChromiumValuebuffer buffer) native;
+
+  @JSName('createValuebufferCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.createValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ChromiumValuebuffer createValuebufferChromium() native;
+
+  @JSName('deleteValuebufferCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.deleteValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteValuebufferChromium(ChromiumValuebuffer buffer) native;
+
+  @JSName('isValuebufferCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.isValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isValuebufferChromium(ChromiumValuebuffer buffer) native;
+
+  @JSName('populateSubscribedValuesCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.populateSubscribedValuesCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void populateSubscribedValuesChromium(int target) native;
+
+  @JSName('subscribeValueCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.subscribeValueCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void subscribeValueChromium(int target, int subscriptions) native;
+
+  @JSName('uniformValuebufferCHROMIUM')
+  @DomName('CHROMIUMSubscribeUniform.uniformValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformValuebufferChromium(UniformLocation location, int target, int subscription) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLCompressedTextureATC')
 // http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_atc/
 @Experimental()
@@ -505,70 +570,6 @@
 
 
 @DocsEditable()
-/**
- * The properties of a WebGL rendering context.
- *
- * If [alpha] is `true`, then the context has an alpha channel.
- *
- * If [antialias] is `true`, then antialiasing is performed by the browser, but
- * only if the browser's implementation of WebGL supports antialiasing.
- *
- * If [depth] is `true`, then the context has a depth buffer of at least 16
- * bits.
- *
- * If [premultipliedAlpha] is `true`, then the context's colors are assumed to
- * be premultiplied. This means that color values are assumed to have  been
- * multiplied by their alpha values. If [alpha] is `false`, then this flag is
- * ignored.
- *
- * If [preserveDrawingBuffer] is `false`, then all contents of the context are
- * cleared. If `true`, then all values will remain until changed or cleared.
- *
- * If [stencil] is `true`, then the context has a stencil buffer of at least 8
- * bits.
- */
-@DomName('WebGLContextAttributes')
-@Unstable()
-@Native("WebGLContextAttributes")
-class ContextAttributes extends Interceptor {
-  // To suppress missing implicit constructor warnings.
-  factory ContextAttributes._() { throw new UnsupportedError("Not supported"); }
-
-  @DomName('WebGLContextAttributes.alpha')
-  @DocsEditable()
-  bool alpha;
-
-  @DomName('WebGLContextAttributes.antialias')
-  @DocsEditable()
-  bool antialias;
-
-  @DomName('WebGLContextAttributes.depth')
-  @DocsEditable()
-  bool depth;
-
-  @DomName('WebGLContextAttributes.failIfMajorPerformanceCaveat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool failIfMajorPerformanceCaveat;
-
-  @DomName('WebGLContextAttributes.premultipliedAlpha')
-  @DocsEditable()
-  bool premultipliedAlpha;
-
-  @DomName('WebGLContextAttributes.preserveDrawingBuffer')
-  @DocsEditable()
-  bool preserveDrawingBuffer;
-
-  @DomName('WebGLContextAttributes.stencil')
-  @DocsEditable()
-  bool stencil;
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-
-@DocsEditable()
 @DomName('WebGLContextEvent')
 @Unstable()
 @Native("WebGLContextEvent")
@@ -576,6 +577,18 @@
   // To suppress missing implicit constructor warnings.
   factory ContextEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('WebGLContextEvent.WebGLContextEvent')
+  @DocsEditable()
+  factory ContextEvent(String type, [Map eventInit]) {
+    if (eventInit != null) {
+      var eventInit_1 = convertDartToNative_Dictionary(eventInit);
+      return ContextEvent._create_1(type, eventInit_1);
+    }
+    return ContextEvent._create_2(type);
+  }
+  static ContextEvent _create_1(type, eventInit) => JS('ContextEvent', 'new WebGLContextEvent(#,#)', type, eventInit);
+  static ContextEvent _create_2(type) => JS('ContextEvent', 'new WebGLContextEvent(#)', type);
+
   @DomName('WebGLContextEvent.statusMessage')
   @DocsEditable()
   final String statusMessage;
@@ -799,6 +812,39 @@
 
 
 @DocsEditable()
+@DomName('EXTsRGB')
+@Experimental() // untriaged
+@Native("EXTsRGB")
+class EXTsRgb extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory EXTsRgb._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('EXTsRGB.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
+
+  @DomName('EXTsRGB.SRGB8_ALPHA8_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB8_ALPHA8_EXT = 0x8C43;
+
+  @DomName('EXTsRGB.SRGB_ALPHA_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB_ALPHA_EXT = 0x8C42;
+
+  @DomName('EXTsRGB.SRGB_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB_EXT = 0x8C40;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('EXTBlendMinMax')
 @Experimental() // untriaged
 @Native("EXTBlendMinMax")
@@ -1013,22 +1059,22 @@
   @JSName('bindVertexArrayOES')
   @DomName('OESVertexArrayObject.bindVertexArrayOES')
   @DocsEditable()
-  void bindVertexArray(VertexArrayObject arrayObject) native;
+  void bindVertexArray(VertexArrayObjectOes arrayObject) native;
 
   @JSName('createVertexArrayOES')
   @DomName('OESVertexArrayObject.createVertexArrayOES')
   @DocsEditable()
-  VertexArrayObject createVertexArray() native;
+  VertexArrayObjectOes createVertexArray() native;
 
   @JSName('deleteVertexArrayOES')
   @DomName('OESVertexArrayObject.deleteVertexArrayOES')
   @DocsEditable()
-  void deleteVertexArray(VertexArrayObject arrayObject) native;
+  void deleteVertexArray(VertexArrayObjectOes arrayObject) native;
 
   @JSName('isVertexArrayOES')
   @DomName('OESVertexArrayObject.isVertexArrayOES')
   @DocsEditable()
-  bool isVertexArray(VertexArrayObject arrayObject) native;
+  bool isVertexArray(VertexArrayObjectOes arrayObject) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -1049,6 +1095,19 @@
 
 
 @DocsEditable()
+@DomName('WebGLQuery')
+@Experimental() // untriaged
+@Native("WebGLQuery")
+class Query extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Query._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLRenderbuffer')
 @Unstable()
 @Native("WebGLRenderbuffer")
@@ -2327,18 +2386,6 @@
   @DocsEditable()
   void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) native;
 
-  @JSName('bufferData')
-  /**
-   * Buffers the specified data.
-   *
-   * The [bufferData] method is provided for WebGL API compatibility reasons, but
-   * it is highly recommended that you use [bufferDataTyped] or [bufferByteData]
-   * depending on your purposes.
-   */
-  @DomName('WebGLRenderingContext.bufferData')
-  @DocsEditable()
-  void bufferByteData(int target, ByteBuffer data, int usage) native;
-
   /**
    * Buffers the specified data.
    *
@@ -2350,30 +2397,6 @@
   @DocsEditable()
   void bufferData(int target, data_OR_size, int usage) native;
 
-  @JSName('bufferData')
-  /**
-   * Buffers the specified data.
-   *
-   * The [bufferData] method is provided for WebGL API compatibility reasons, but
-   * it is highly recommended that you use [bufferDataTyped] or [bufferByteData]
-   * depending on your purposes.
-   */
-  @DomName('WebGLRenderingContext.bufferData')
-  @DocsEditable()
-  void bufferDataTyped(int target, TypedData data, int usage) native;
-
-  @JSName('bufferSubData')
-  /**
-   * Buffers the specified subset of data.
-   *
-   * The [bufferSubData] method is provided for WebGL API compatibility reasons, but
-   * it is highly recommended that you use [bufferSubDataTyped] or [bufferSubByteData]
-   * depending on your purposes.
-   */
-  @DomName('WebGLRenderingContext.bufferSubData')
-  @DocsEditable()
-  void bufferSubByteData(int target, int offset, ByteBuffer data) native;
-
   /**
    * Buffers the specified subset of data.
    *
@@ -2385,18 +2408,6 @@
   @DocsEditable()
   void bufferSubData(int target, int offset, data) native;
 
-  @JSName('bufferSubData')
-  /**
-   * Buffers the specified subset of data.
-   *
-   * The [bufferSubData] method is provided for WebGL API compatibility reasons, but
-   * it is highly recommended that you use [bufferSubDataTyped] or [bufferSubByteData]
-   * depending on your purposes.
-   */
-  @DomName('WebGLRenderingContext.bufferSubData')
-  @DocsEditable()
-  void bufferSubDataTyped(int target, int offset, TypedData data) native;
-
   @DomName('WebGLRenderingContext.checkFramebufferStatus')
   @DocsEditable()
   int checkFramebufferStatus(int target) native;
@@ -2581,14 +2592,14 @@
 
   @DomName('WebGLRenderingContext.getContextAttributes')
   @DocsEditable()
-  @Creates('ContextAttributes|=Object')
-  ContextAttributes getContextAttributes() {
-    return convertNativeToDart_ContextAttributes(_getContextAttributes_1());
+  @Creates('ContextAttributes|Null')
+  Map getContextAttributes() {
+    return convertNativeToDart_Dictionary(_getContextAttributes_1());
   }
   @JSName('getContextAttributes')
   @DomName('WebGLRenderingContext.getContextAttributes')
   @DocsEditable()
-  @Creates('ContextAttributes|=Object')
+  @Creates('ContextAttributes|Null')
   _getContextAttributes_1() native;
 
   @DomName('WebGLRenderingContext.getError')
@@ -2866,73 +2877,6 @@
   @DocsEditable()
   void _texImage2D_5(target, level, internalformat, format, type, VideoElement video) native;
 
-  @JSName('texImage2D')
-  /**
-   * Updates the currently bound texture to [data].
-   *
-   * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
-   * (or for more specificity, the more specialized [texImage2DImageData],
-   * [texImage2DCanvas], [texImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void texImage2DCanvas(int target, int level, int internalformat, int format, int type, CanvasElement canvas) native;
-
-  @JSName('texImage2D')
-  /**
-   * Updates the currently bound texture to [data].
-   *
-   * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
-   * (or for more specificity, the more specialized [texImage2DImageData],
-   * [texImage2DCanvas], [texImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void texImage2DImage(int target, int level, int internalformat, int format, int type, ImageElement image) native;
-
-  /**
-   * Updates the currently bound texture to [data].
-   *
-   * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
-   * (or for more specificity, the more specialized [texImage2DImageData],
-   * [texImage2DCanvas], [texImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void texImage2DImageData(int target, int level, int internalformat, int format, int type, ImageData pixels) {
-    var pixels_1 = convertDartToNative_ImageData(pixels);
-    _texImage2DImageData_1(target, level, internalformat, format, type, pixels_1);
-    return;
-  }
-  @JSName('texImage2D')
-  /**
-   * Updates the currently bound texture to [data].
-   *
-   * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
-   * (or for more specificity, the more specialized [texImage2DImageData],
-   * [texImage2DCanvas], [texImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void _texImage2DImageData_1(target, level, internalformat, format, type, pixels) native;
-
-  @JSName('texImage2D')
-  /**
-   * Updates the currently bound texture to [data].
-   *
-   * The [texImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texImage2DUntyped] or [texImage2DTyped]
-   * (or for more specificity, the more specialized [texImage2DImageData],
-   * [texImage2DCanvas], [texImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texImage2D')
-  @DocsEditable()
-  void texImage2DVideo(int target, int level, int internalformat, int format, int type, VideoElement video) native;
-
   @DomName('WebGLRenderingContext.texParameterf')
   @DocsEditable()
   void texParameterf(int target, int pname, num param) native;
@@ -3036,80 +2980,13 @@
   @DocsEditable()
   void _texSubImage2D_5(target, level, xoffset, yoffset, format, type, VideoElement video) native;
 
-  @JSName('texSubImage2D')
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
-   * (or for more specificity, the more specialized [texSubImage2DImageData],
-   * [texSubImage2DCanvas], [texSubImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void texSubImage2DCanvas(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas) native;
-
-  @JSName('texSubImage2D')
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
-   * (or for more specificity, the more specialized [texSubImage2DImageData],
-   * [texSubImage2DCanvas], [texSubImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void texSubImage2DImage(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image) native;
-
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
-   * (or for more specificity, the more specialized [texSubImage2DImageData],
-   * [texSubImage2DCanvas], [texSubImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void texSubImage2DImageData(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels) {
-    var pixels_1 = convertDartToNative_ImageData(pixels);
-    _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels_1);
-    return;
-  }
-  @JSName('texSubImage2D')
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
-   * (or for more specificity, the more specialized [texSubImage2DImageData],
-   * [texSubImage2DCanvas], [texSubImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void _texSubImage2DImageData_1(target, level, xoffset, yoffset, format, type, pixels) native;
-
-  @JSName('texSubImage2D')
-  /**
-   * Updates a sub-rectangle of the currently bound texture to [data].
-   *
-   * The [texSubImage2D] method is provided for WebGL API compatibility reasons, but it
-   * is highly recommended that you use [texSubImage2DUntyped] or [texSubImage2DTyped]
-   * (or for more specificity, the more specialized [texSubImage2DImageData],
-   * [texSubImage2DCanvas], [texSubImage2DVideo]).
-   */
-  @DomName('WebGLRenderingContext.texSubImage2D')
-  @DocsEditable()
-  void texSubImage2DVideo(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video) native;
-
   @DomName('WebGLRenderingContext.uniform1f')
   @DocsEditable()
   void uniform1f(UniformLocation location, num x) native;
 
   @DomName('WebGLRenderingContext.uniform1fv')
   @DocsEditable()
-  void uniform1fv(UniformLocation location, Float32List v) native;
+  void uniform1fv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform1i')
   @DocsEditable()
@@ -3117,7 +2994,7 @@
 
   @DomName('WebGLRenderingContext.uniform1iv')
   @DocsEditable()
-  void uniform1iv(UniformLocation location, Int32List v) native;
+  void uniform1iv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform2f')
   @DocsEditable()
@@ -3125,7 +3002,7 @@
 
   @DomName('WebGLRenderingContext.uniform2fv')
   @DocsEditable()
-  void uniform2fv(UniformLocation location, Float32List v) native;
+  void uniform2fv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform2i')
   @DocsEditable()
@@ -3133,7 +3010,7 @@
 
   @DomName('WebGLRenderingContext.uniform2iv')
   @DocsEditable()
-  void uniform2iv(UniformLocation location, Int32List v) native;
+  void uniform2iv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform3f')
   @DocsEditable()
@@ -3141,7 +3018,7 @@
 
   @DomName('WebGLRenderingContext.uniform3fv')
   @DocsEditable()
-  void uniform3fv(UniformLocation location, Float32List v) native;
+  void uniform3fv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform3i')
   @DocsEditable()
@@ -3149,7 +3026,7 @@
 
   @DomName('WebGLRenderingContext.uniform3iv')
   @DocsEditable()
-  void uniform3iv(UniformLocation location, Int32List v) native;
+  void uniform3iv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform4f')
   @DocsEditable()
@@ -3157,7 +3034,7 @@
 
   @DomName('WebGLRenderingContext.uniform4fv')
   @DocsEditable()
-  void uniform4fv(UniformLocation location, Float32List v) native;
+  void uniform4fv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniform4i')
   @DocsEditable()
@@ -3165,19 +3042,19 @@
 
   @DomName('WebGLRenderingContext.uniform4iv')
   @DocsEditable()
-  void uniform4iv(UniformLocation location, Int32List v) native;
+  void uniform4iv(UniformLocation location, v) native;
 
   @DomName('WebGLRenderingContext.uniformMatrix2fv')
   @DocsEditable()
-  void uniformMatrix2fv(UniformLocation location, bool transpose, Float32List array) native;
+  void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
 
   @DomName('WebGLRenderingContext.uniformMatrix3fv')
   @DocsEditable()
-  void uniformMatrix3fv(UniformLocation location, bool transpose, Float32List array) native;
+  void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
 
   @DomName('WebGLRenderingContext.uniformMatrix4fv')
   @DocsEditable()
-  void uniformMatrix4fv(UniformLocation location, bool transpose, Float32List array) native;
+  void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
 
   @DomName('WebGLRenderingContext.useProgram')
   @DocsEditable()
@@ -3193,7 +3070,7 @@
 
   @DomName('WebGLRenderingContext.vertexAttrib1fv')
   @DocsEditable()
-  void vertexAttrib1fv(int indx, Float32List values) native;
+  void vertexAttrib1fv(int indx, values) native;
 
   @DomName('WebGLRenderingContext.vertexAttrib2f')
   @DocsEditable()
@@ -3201,7 +3078,7 @@
 
   @DomName('WebGLRenderingContext.vertexAttrib2fv')
   @DocsEditable()
-  void vertexAttrib2fv(int indx, Float32List values) native;
+  void vertexAttrib2fv(int indx, values) native;
 
   @DomName('WebGLRenderingContext.vertexAttrib3f')
   @DocsEditable()
@@ -3209,7 +3086,7 @@
 
   @DomName('WebGLRenderingContext.vertexAttrib3fv')
   @DocsEditable()
-  void vertexAttrib3fv(int indx, Float32List values) native;
+  void vertexAttrib3fv(int indx, values) native;
 
   @DomName('WebGLRenderingContext.vertexAttrib4f')
   @DocsEditable()
@@ -3217,7 +3094,7 @@
 
   @DomName('WebGLRenderingContext.vertexAttrib4fv')
   @DocsEditable()
-  void vertexAttrib4fv(int indx, Float32List values) native;
+  void vertexAttrib4fv(int indx, values) native;
 
   @DomName('WebGLRenderingContext.vertexAttribPointer')
   @DocsEditable()
@@ -3276,6 +3153,2824 @@
 
 
 @DocsEditable()
+@DomName('WebGL2RenderingContext')
+@Experimental() // untriaged
+@Native("WebGL2RenderingContext")
+class RenderingContext2 extends Interceptor implements _WebGL2RenderingContextBase, _WebGLRenderingContextBase {
+  // To suppress missing implicit constructor warnings.
+  factory RenderingContext2._() { throw new UnsupportedError("Not supported"); }
+
+  @DomName('WebGL2RenderingContext.ACTIVE_ATTRIBUTES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_ATTRIBUTES = 0x8B89;
+
+  @DomName('WebGL2RenderingContext.ACTIVE_TEXTURE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_TEXTURE = 0x84E0;
+
+  @DomName('WebGL2RenderingContext.ACTIVE_UNIFORMS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_UNIFORMS = 0x8B86;
+
+  @DomName('WebGL2RenderingContext.ALIASED_LINE_WIDTH_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
+
+  @DomName('WebGL2RenderingContext.ALIASED_POINT_SIZE_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
+
+  @DomName('WebGL2RenderingContext.ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALPHA = 0x1906;
+
+  @DomName('WebGL2RenderingContext.ALPHA_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALPHA_BITS = 0x0D55;
+
+  @DomName('WebGL2RenderingContext.ALWAYS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALWAYS = 0x0207;
+
+  @DomName('WebGL2RenderingContext.ARRAY_BUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ARRAY_BUFFER = 0x8892;
+
+  @DomName('WebGL2RenderingContext.ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ARRAY_BUFFER_BINDING = 0x8894;
+
+  @DomName('WebGL2RenderingContext.ATTACHED_SHADERS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ATTACHED_SHADERS = 0x8B85;
+
+  @DomName('WebGL2RenderingContext.BACK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BACK = 0x0405;
+
+  @DomName('WebGL2RenderingContext.BLEND')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND = 0x0BE2;
+
+  @DomName('WebGL2RenderingContext.BLEND_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_COLOR = 0x8005;
+
+  @DomName('WebGL2RenderingContext.BLEND_DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_DST_ALPHA = 0x80CA;
+
+  @DomName('WebGL2RenderingContext.BLEND_DST_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_DST_RGB = 0x80C8;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION = 0x8009;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION_ALPHA = 0x883D;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION_RGB = 0x8009;
+
+  @DomName('WebGL2RenderingContext.BLEND_SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_SRC_ALPHA = 0x80CB;
+
+  @DomName('WebGL2RenderingContext.BLEND_SRC_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_SRC_RGB = 0x80C9;
+
+  @DomName('WebGL2RenderingContext.BLUE_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLUE_BITS = 0x0D54;
+
+  @DomName('WebGL2RenderingContext.BOOL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL = 0x8B56;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC2 = 0x8B57;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC3 = 0x8B58;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC4 = 0x8B59;
+
+  @DomName('WebGL2RenderingContext.BROWSER_DEFAULT_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BROWSER_DEFAULT_WEBGL = 0x9244;
+
+  @DomName('WebGL2RenderingContext.BUFFER_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BUFFER_SIZE = 0x8764;
+
+  @DomName('WebGL2RenderingContext.BUFFER_USAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BUFFER_USAGE = 0x8765;
+
+  @DomName('WebGL2RenderingContext.BYTE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BYTE = 0x1400;
+
+  @DomName('WebGL2RenderingContext.CCW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CCW = 0x0901;
+
+  @DomName('WebGL2RenderingContext.CLAMP_TO_EDGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CLAMP_TO_EDGE = 0x812F;
+
+  @DomName('WebGL2RenderingContext.COLOR_ATTACHMENT0')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_ATTACHMENT0 = 0x8CE0;
+
+  @DomName('WebGL2RenderingContext.COLOR_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_BUFFER_BIT = 0x00004000;
+
+  @DomName('WebGL2RenderingContext.COLOR_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_CLEAR_VALUE = 0x0C22;
+
+  @DomName('WebGL2RenderingContext.COLOR_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_WRITEMASK = 0x0C23;
+
+  @DomName('WebGL2RenderingContext.COMPILE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COMPILE_STATUS = 0x8B81;
+
+  @DomName('WebGL2RenderingContext.COMPRESSED_TEXTURE_FORMATS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
+
+  @DomName('WebGL2RenderingContext.CONSTANT_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONSTANT_ALPHA = 0x8003;
+
+  @DomName('WebGL2RenderingContext.CONSTANT_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONSTANT_COLOR = 0x8001;
+
+  @DomName('WebGL2RenderingContext.CONTEXT_LOST_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONTEXT_LOST_WEBGL = 0x9242;
+
+  @DomName('WebGL2RenderingContext.CULL_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CULL_FACE = 0x0B44;
+
+  @DomName('WebGL2RenderingContext.CULL_FACE_MODE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CULL_FACE_MODE = 0x0B45;
+
+  @DomName('WebGL2RenderingContext.CURRENT_PROGRAM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CURRENT_PROGRAM = 0x8B8D;
+
+  @DomName('WebGL2RenderingContext.CURRENT_VERTEX_ATTRIB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CURRENT_VERTEX_ATTRIB = 0x8626;
+
+  @DomName('WebGL2RenderingContext.CW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CW = 0x0900;
+
+  @DomName('WebGL2RenderingContext.DECR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DECR = 0x1E03;
+
+  @DomName('WebGL2RenderingContext.DECR_WRAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DECR_WRAP = 0x8508;
+
+  @DomName('WebGL2RenderingContext.DELETE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DELETE_STATUS = 0x8B80;
+
+  @DomName('WebGL2RenderingContext.DEPTH_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_ATTACHMENT = 0x8D00;
+
+  @DomName('WebGL2RenderingContext.DEPTH_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_BITS = 0x0D56;
+
+  @DomName('WebGL2RenderingContext.DEPTH_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_BUFFER_BIT = 0x00000100;
+
+  @DomName('WebGL2RenderingContext.DEPTH_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_CLEAR_VALUE = 0x0B73;
+
+  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_COMPONENT = 0x1902;
+
+  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT16')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_COMPONENT16 = 0x81A5;
+
+  @DomName('WebGL2RenderingContext.DEPTH_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_FUNC = 0x0B74;
+
+  @DomName('WebGL2RenderingContext.DEPTH_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_RANGE = 0x0B70;
+
+  @DomName('WebGL2RenderingContext.DEPTH_STENCIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_STENCIL = 0x84F9;
+
+  @DomName('WebGL2RenderingContext.DEPTH_STENCIL_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
+
+  @DomName('WebGL2RenderingContext.DEPTH_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_TEST = 0x0B71;
+
+  @DomName('WebGL2RenderingContext.DEPTH_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_WRITEMASK = 0x0B72;
+
+  @DomName('WebGL2RenderingContext.DITHER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DITHER = 0x0BD0;
+
+  @DomName('WebGL2RenderingContext.DONT_CARE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DONT_CARE = 0x1100;
+
+  @DomName('WebGL2RenderingContext.DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DST_ALPHA = 0x0304;
+
+  @DomName('WebGL2RenderingContext.DST_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DST_COLOR = 0x0306;
+
+  @DomName('WebGL2RenderingContext.DYNAMIC_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DYNAMIC_DRAW = 0x88E8;
+
+  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ELEMENT_ARRAY_BUFFER = 0x8893;
+
+  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
+
+  @DomName('WebGL2RenderingContext.EQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int EQUAL = 0x0202;
+
+  @DomName('WebGL2RenderingContext.FASTEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FASTEST = 0x1101;
+
+  @DomName('WebGL2RenderingContext.FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT = 0x1406;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT2 = 0x8B5A;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT3 = 0x8B5B;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT4 = 0x8B5C;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC2 = 0x8B50;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC3 = 0x8B51;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC4 = 0x8B52;
+
+  @DomName('WebGL2RenderingContext.FRAGMENT_SHADER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAGMENT_SHADER = 0x8B30;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER = 0x8D40;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_BINDING = 0x8CA6;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_COMPLETE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_UNSUPPORTED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
+
+  @DomName('WebGL2RenderingContext.FRONT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT = 0x0404;
+
+  @DomName('WebGL2RenderingContext.FRONT_AND_BACK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT_AND_BACK = 0x0408;
+
+  @DomName('WebGL2RenderingContext.FRONT_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT_FACE = 0x0B46;
+
+  @DomName('WebGL2RenderingContext.FUNC_ADD')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_ADD = 0x8006;
+
+  @DomName('WebGL2RenderingContext.FUNC_REVERSE_SUBTRACT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_REVERSE_SUBTRACT = 0x800B;
+
+  @DomName('WebGL2RenderingContext.FUNC_SUBTRACT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_SUBTRACT = 0x800A;
+
+  @DomName('WebGL2RenderingContext.GENERATE_MIPMAP_HINT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GENERATE_MIPMAP_HINT = 0x8192;
+
+  @DomName('WebGL2RenderingContext.GEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GEQUAL = 0x0206;
+
+  @DomName('WebGL2RenderingContext.GREATER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GREATER = 0x0204;
+
+  @DomName('WebGL2RenderingContext.GREEN_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GREEN_BITS = 0x0D53;
+
+  @DomName('WebGL2RenderingContext.HIGH_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int HIGH_FLOAT = 0x8DF2;
+
+  @DomName('WebGL2RenderingContext.HIGH_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int HIGH_INT = 0x8DF5;
+
+  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
+
+  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
+
+  @DomName('WebGL2RenderingContext.INCR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INCR = 0x1E02;
+
+  @DomName('WebGL2RenderingContext.INCR_WRAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INCR_WRAP = 0x8507;
+
+  @DomName('WebGL2RenderingContext.INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT = 0x1404;
+
+  @DomName('WebGL2RenderingContext.INT_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC2 = 0x8B53;
+
+  @DomName('WebGL2RenderingContext.INT_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC3 = 0x8B54;
+
+  @DomName('WebGL2RenderingContext.INT_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC4 = 0x8B55;
+
+  @DomName('WebGL2RenderingContext.INVALID_ENUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_ENUM = 0x0500;
+
+  @DomName('WebGL2RenderingContext.INVALID_FRAMEBUFFER_OPERATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
+
+  @DomName('WebGL2RenderingContext.INVALID_OPERATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_OPERATION = 0x0502;
+
+  @DomName('WebGL2RenderingContext.INVALID_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_VALUE = 0x0501;
+
+  @DomName('WebGL2RenderingContext.INVERT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVERT = 0x150A;
+
+  @DomName('WebGL2RenderingContext.KEEP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int KEEP = 0x1E00;
+
+  @DomName('WebGL2RenderingContext.LEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LEQUAL = 0x0203;
+
+  @DomName('WebGL2RenderingContext.LESS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LESS = 0x0201;
+
+  @DomName('WebGL2RenderingContext.LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR = 0x2601;
+
+  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR_MIPMAP_LINEAR = 0x2703;
+
+  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR_MIPMAP_NEAREST = 0x2701;
+
+  @DomName('WebGL2RenderingContext.LINES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINES = 0x0001;
+
+  @DomName('WebGL2RenderingContext.LINE_LOOP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_LOOP = 0x0002;
+
+  @DomName('WebGL2RenderingContext.LINE_STRIP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_STRIP = 0x0003;
+
+  @DomName('WebGL2RenderingContext.LINE_WIDTH')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_WIDTH = 0x0B21;
+
+  @DomName('WebGL2RenderingContext.LINK_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINK_STATUS = 0x8B82;
+
+  @DomName('WebGL2RenderingContext.LOW_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LOW_FLOAT = 0x8DF0;
+
+  @DomName('WebGL2RenderingContext.LOW_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LOW_INT = 0x8DF3;
+
+  @DomName('WebGL2RenderingContext.LUMINANCE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LUMINANCE = 0x1909;
+
+  @DomName('WebGL2RenderingContext.LUMINANCE_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LUMINANCE_ALPHA = 0x190A;
+
+  @DomName('WebGL2RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
+
+  @DomName('WebGL2RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
+
+  @DomName('WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
+
+  @DomName('WebGL2RenderingContext.MAX_RENDERBUFFER_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
+
+  @DomName('WebGL2RenderingContext.MAX_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
+
+  @DomName('WebGL2RenderingContext.MAX_TEXTURE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_TEXTURE_SIZE = 0x0D33;
+
+  @DomName('WebGL2RenderingContext.MAX_VARYING_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VARYING_VECTORS = 0x8DFC;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_ATTRIBS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_ATTRIBS = 0x8869;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
+
+  @DomName('WebGL2RenderingContext.MAX_VIEWPORT_DIMS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VIEWPORT_DIMS = 0x0D3A;
+
+  @DomName('WebGL2RenderingContext.MEDIUM_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MEDIUM_FLOAT = 0x8DF1;
+
+  @DomName('WebGL2RenderingContext.MEDIUM_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MEDIUM_INT = 0x8DF4;
+
+  @DomName('WebGL2RenderingContext.MIRRORED_REPEAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MIRRORED_REPEAT = 0x8370;
+
+  @DomName('WebGL2RenderingContext.NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST = 0x2600;
+
+  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST_MIPMAP_LINEAR = 0x2702;
+
+  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST_MIPMAP_NEAREST = 0x2700;
+
+  @DomName('WebGL2RenderingContext.NEVER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEVER = 0x0200;
+
+  @DomName('WebGL2RenderingContext.NICEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NICEST = 0x1102;
+
+  @DomName('WebGL2RenderingContext.NONE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NONE = 0;
+
+  @DomName('WebGL2RenderingContext.NOTEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NOTEQUAL = 0x0205;
+
+  @DomName('WebGL2RenderingContext.NO_ERROR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NO_ERROR = 0;
+
+  @DomName('WebGL2RenderingContext.ONE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE = 1;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_DST_ALPHA = 0x0305;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_DST_COLOR = 0x0307;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_SRC_ALPHA = 0x0303;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_SRC_COLOR = 0x0301;
+
+  @DomName('WebGL2RenderingContext.OUT_OF_MEMORY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int OUT_OF_MEMORY = 0x0505;
+
+  @DomName('WebGL2RenderingContext.PACK_ALIGNMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int PACK_ALIGNMENT = 0x0D05;
+
+  @DomName('WebGL2RenderingContext.POINTS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POINTS = 0x0000;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FACTOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_FACTOR = 0x8038;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FILL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_FILL = 0x8037;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_UNITS = 0x2A00;
+
+  @DomName('WebGL2RenderingContext.RED_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RED_BITS = 0x0D52;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER = 0x8D41;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_ALPHA_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_BINDING = 0x8CA7;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_BLUE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_DEPTH_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_GREEN_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_HEIGHT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_HEIGHT = 0x8D43;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_RED_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_RED_SIZE = 0x8D50;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_STENCIL_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_WIDTH')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_WIDTH = 0x8D42;
+
+  @DomName('WebGL2RenderingContext.RENDERER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERER = 0x1F01;
+
+  @DomName('WebGL2RenderingContext.REPEAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int REPEAT = 0x2901;
+
+  @DomName('WebGL2RenderingContext.REPLACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int REPLACE = 0x1E01;
+
+  @DomName('WebGL2RenderingContext.RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB = 0x1907;
+
+  @DomName('WebGL2RenderingContext.RGB565')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB565 = 0x8D62;
+
+  @DomName('WebGL2RenderingContext.RGB5_A1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB5_A1 = 0x8057;
+
+  @DomName('WebGL2RenderingContext.RGBA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGBA = 0x1908;
+
+  @DomName('WebGL2RenderingContext.RGBA4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGBA4 = 0x8056;
+
+  @DomName('WebGL2RenderingContext.SAMPLER_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLER_2D = 0x8B5E;
+
+  @DomName('WebGL2RenderingContext.SAMPLER_CUBE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLER_CUBE = 0x8B60;
+
+  @DomName('WebGL2RenderingContext.SAMPLES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLES = 0x80A9;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_BUFFERS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_BUFFERS = 0x80A8;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE = 0x80A0;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_INVERT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
+
+  @DomName('WebGL2RenderingContext.SCISSOR_BOX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SCISSOR_BOX = 0x0C10;
+
+  @DomName('WebGL2RenderingContext.SCISSOR_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SCISSOR_TEST = 0x0C11;
+
+  @DomName('WebGL2RenderingContext.SHADER_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHADER_TYPE = 0x8B4F;
+
+  @DomName('WebGL2RenderingContext.SHADING_LANGUAGE_VERSION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
+
+  @DomName('WebGL2RenderingContext.SHORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHORT = 0x1402;
+
+  @DomName('WebGL2RenderingContext.SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_ALPHA = 0x0302;
+
+  @DomName('WebGL2RenderingContext.SRC_ALPHA_SATURATE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_ALPHA_SATURATE = 0x0308;
+
+  @DomName('WebGL2RenderingContext.SRC_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_COLOR = 0x0300;
+
+  @DomName('WebGL2RenderingContext.STATIC_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STATIC_DRAW = 0x88E4;
+
+  @DomName('WebGL2RenderingContext.STENCIL_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_ATTACHMENT = 0x8D20;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_FAIL = 0x8801;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_FUNC = 0x8800;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_REF')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_REF = 0x8CA3;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_VALUE_MASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BITS = 0x0D57;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BUFFER_BIT = 0x00000400;
+
+  @DomName('WebGL2RenderingContext.STENCIL_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_CLEAR_VALUE = 0x0B91;
+
+  @DomName('WebGL2RenderingContext.STENCIL_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_FAIL = 0x0B94;
+
+  @DomName('WebGL2RenderingContext.STENCIL_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_FUNC = 0x0B92;
+
+  @DomName('WebGL2RenderingContext.STENCIL_INDEX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_INDEX = 0x1901;
+
+  @DomName('WebGL2RenderingContext.STENCIL_INDEX8')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_INDEX8 = 0x8D48;
+
+  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+
+  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_PASS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
+
+  @DomName('WebGL2RenderingContext.STENCIL_REF')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_REF = 0x0B97;
+
+  @DomName('WebGL2RenderingContext.STENCIL_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_TEST = 0x0B90;
+
+  @DomName('WebGL2RenderingContext.STENCIL_VALUE_MASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_VALUE_MASK = 0x0B93;
+
+  @DomName('WebGL2RenderingContext.STENCIL_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_WRITEMASK = 0x0B98;
+
+  @DomName('WebGL2RenderingContext.STREAM_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STREAM_DRAW = 0x88E0;
+
+  @DomName('WebGL2RenderingContext.SUBPIXEL_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SUBPIXEL_BITS = 0x0D50;
+
+  @DomName('WebGL2RenderingContext.TEXTURE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE = 0x1702;
+
+  @DomName('WebGL2RenderingContext.TEXTURE0')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE0 = 0x84C0;
+
+  @DomName('WebGL2RenderingContext.TEXTURE1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE1 = 0x84C1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE10')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE10 = 0x84CA;
+
+  @DomName('WebGL2RenderingContext.TEXTURE11')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE11 = 0x84CB;
+
+  @DomName('WebGL2RenderingContext.TEXTURE12')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE12 = 0x84CC;
+
+  @DomName('WebGL2RenderingContext.TEXTURE13')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE13 = 0x84CD;
+
+  @DomName('WebGL2RenderingContext.TEXTURE14')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE14 = 0x84CE;
+
+  @DomName('WebGL2RenderingContext.TEXTURE15')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE15 = 0x84CF;
+
+  @DomName('WebGL2RenderingContext.TEXTURE16')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE16 = 0x84D0;
+
+  @DomName('WebGL2RenderingContext.TEXTURE17')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE17 = 0x84D1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE18')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE18 = 0x84D2;
+
+  @DomName('WebGL2RenderingContext.TEXTURE19')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE19 = 0x84D3;
+
+  @DomName('WebGL2RenderingContext.TEXTURE2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE2 = 0x84C2;
+
+  @DomName('WebGL2RenderingContext.TEXTURE20')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE20 = 0x84D4;
+
+  @DomName('WebGL2RenderingContext.TEXTURE21')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE21 = 0x84D5;
+
+  @DomName('WebGL2RenderingContext.TEXTURE22')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE22 = 0x84D6;
+
+  @DomName('WebGL2RenderingContext.TEXTURE23')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE23 = 0x84D7;
+
+  @DomName('WebGL2RenderingContext.TEXTURE24')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE24 = 0x84D8;
+
+  @DomName('WebGL2RenderingContext.TEXTURE25')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE25 = 0x84D9;
+
+  @DomName('WebGL2RenderingContext.TEXTURE26')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE26 = 0x84DA;
+
+  @DomName('WebGL2RenderingContext.TEXTURE27')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE27 = 0x84DB;
+
+  @DomName('WebGL2RenderingContext.TEXTURE28')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE28 = 0x84DC;
+
+  @DomName('WebGL2RenderingContext.TEXTURE29')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE29 = 0x84DD;
+
+  @DomName('WebGL2RenderingContext.TEXTURE3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE3 = 0x84C3;
+
+  @DomName('WebGL2RenderingContext.TEXTURE30')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE30 = 0x84DE;
+
+  @DomName('WebGL2RenderingContext.TEXTURE31')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE31 = 0x84DF;
+
+  @DomName('WebGL2RenderingContext.TEXTURE4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE4 = 0x84C4;
+
+  @DomName('WebGL2RenderingContext.TEXTURE5')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE5 = 0x84C5;
+
+  @DomName('WebGL2RenderingContext.TEXTURE6')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE6 = 0x84C6;
+
+  @DomName('WebGL2RenderingContext.TEXTURE7')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE7 = 0x84C7;
+
+  @DomName('WebGL2RenderingContext.TEXTURE8')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE8 = 0x84C8;
+
+  @DomName('WebGL2RenderingContext.TEXTURE9')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE9 = 0x84C9;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_2D = 0x0DE1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_BINDING_2D = 0x8069;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_CUBE_MAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP = 0x8513;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_MAG_FILTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_MAG_FILTER = 0x2800;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_MIN_FILTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_MIN_FILTER = 0x2801;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_S')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_WRAP_S = 0x2802;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_T')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_WRAP_T = 0x2803;
+
+  @DomName('WebGL2RenderingContext.TRIANGLES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLES = 0x0004;
+
+  @DomName('WebGL2RenderingContext.TRIANGLE_FAN')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLE_FAN = 0x0006;
+
+  @DomName('WebGL2RenderingContext.TRIANGLE_STRIP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLE_STRIP = 0x0005;
+
+  @DomName('WebGL2RenderingContext.UNPACK_ALIGNMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_ALIGNMENT = 0x0CF5;
+
+  @DomName('WebGL2RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
+
+  @DomName('WebGL2RenderingContext.UNPACK_FLIP_Y_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
+
+  @DomName('WebGL2RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_BYTE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_BYTE = 0x1401;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_INT = 0x1405;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT = 0x1403;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_4_4_4_4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_5_5_1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_6_5')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
+
+  @DomName('WebGL2RenderingContext.VALIDATE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VALIDATE_STATUS = 0x8B83;
+
+  @DomName('WebGL2RenderingContext.VENDOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VENDOR = 0x1F00;
+
+  @DomName('WebGL2RenderingContext.VERSION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERSION = 0x1F02;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
+
+  @DomName('WebGL2RenderingContext.VERTEX_SHADER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_SHADER = 0x8B31;
+
+  @DomName('WebGL2RenderingContext.VIEWPORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VIEWPORT = 0x0BA2;
+
+  @DomName('WebGL2RenderingContext.ZERO')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ZERO = 0;
+
+  // From WebGL2RenderingContextBase
+
+  @DomName('WebGL2RenderingContext.beginQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void beginQuery(int target, Query query) native;
+
+  @DomName('WebGL2RenderingContext.beginTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void beginTransformFeedback(int primitiveMode) native;
+
+  @DomName('WebGL2RenderingContext.bindBufferBase')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBufferBase(int target, int index, Buffer buffer) native;
+
+  @DomName('WebGL2RenderingContext.bindBufferRange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBufferRange(int target, int index, Buffer buffer, int offset, int size) native;
+
+  @DomName('WebGL2RenderingContext.bindSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindSampler(int unit, Sampler sampler) native;
+
+  @DomName('WebGL2RenderingContext.bindTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindTransformFeedback(int target, TransformFeedback feedback) native;
+
+  @DomName('WebGL2RenderingContext.bindVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindVertexArray(VertexArrayObject vertexArray) native;
+
+  @DomName('WebGL2RenderingContext.blitFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter) native;
+
+  @DomName('WebGL2RenderingContext.clearBufferfi')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearBufferfi(int buffer, int drawbuffer, num depth, int stencil) native;
+
+  @DomName('WebGL2RenderingContext.clearBufferfv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearBufferfv(int buffer, int drawbuffer, value) native;
+
+  @DomName('WebGL2RenderingContext.clearBufferiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearBufferiv(int buffer, int drawbuffer, value) native;
+
+  @DomName('WebGL2RenderingContext.clearBufferuiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearBufferuiv(int buffer, int drawbuffer, value) native;
+
+  @DomName('WebGL2RenderingContext.clientWaitSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int clientWaitSync(Sync sync, int flags, int timeout) native;
+
+  @DomName('WebGL2RenderingContext.compressedTexImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, TypedData data) native;
+
+  @DomName('WebGL2RenderingContext.compressedTexSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, TypedData data) native;
+
+  @DomName('WebGL2RenderingContext.copyBufferSubData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyBufferSubData(int readTarget, int writeTarget, int readOffset, int writeOffset, int size) native;
+
+  @DomName('WebGL2RenderingContext.copyTexSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.createQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Query createQuery() native;
+
+  @DomName('WebGL2RenderingContext.createSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Sampler createSampler() native;
+
+  @DomName('WebGL2RenderingContext.createTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TransformFeedback createTransformFeedback() native;
+
+  @DomName('WebGL2RenderingContext.createVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VertexArrayObject createVertexArray() native;
+
+  @DomName('WebGL2RenderingContext.deleteQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteQuery(Query query) native;
+
+  @DomName('WebGL2RenderingContext.deleteSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteSampler(Sampler sampler) native;
+
+  @DomName('WebGL2RenderingContext.deleteSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteSync(Sync sync) native;
+
+  @DomName('WebGL2RenderingContext.deleteTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteTransformFeedback(TransformFeedback feedback) native;
+
+  @DomName('WebGL2RenderingContext.deleteVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteVertexArray(VertexArrayObject vertexArray) native;
+
+  @DomName('WebGL2RenderingContext.drawArraysInstanced')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawArraysInstanced(int mode, int first, int count, int instanceCount) native;
+
+  @DomName('WebGL2RenderingContext.drawBuffers')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawBuffers(List<int> buffers) native;
+
+  @DomName('WebGL2RenderingContext.drawElementsInstanced')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawElementsInstanced(int mode, int count, int type, int offset, int instanceCount) native;
+
+  @DomName('WebGL2RenderingContext.drawRangeElements')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawRangeElements(int mode, int start, int end, int count, int type, int offset) native;
+
+  @DomName('WebGL2RenderingContext.endQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void endQuery(int target) native;
+
+  @DomName('WebGL2RenderingContext.endTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void endTransformFeedback() native;
+
+  @DomName('WebGL2RenderingContext.fenceSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Sync fenceSync(int condition, int flags) native;
+
+  @DomName('WebGL2RenderingContext.framebufferTextureLayer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferTextureLayer(int target, int attachment, Texture texture, int level, int layer) native;
+
+  @DomName('WebGL2RenderingContext.getActiveUniformBlockName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getActiveUniformBlockName(Program program, int uniformBlockIndex) native;
+
+  @DomName('WebGL2RenderingContext.getActiveUniformBlockParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getActiveUniformBlockParameter(Program program, int uniformBlockIndex, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getActiveUniforms')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> getActiveUniforms(Program program, List<int> uniformIndices, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getBufferSubData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void getBufferSubData(int target, int offset, ByteBuffer returnedData) native;
+
+  @DomName('WebGL2RenderingContext.getFragDataLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getFragDataLocation(Program program, String name) native;
+
+  @DomName('WebGL2RenderingContext.getIndexedParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getIndexedParameter(int target, int index) native;
+
+  @DomName('WebGL2RenderingContext.getInternalformatParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getInternalformatParameter(int target, int internalformat, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Query getQuery(int target, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getQueryParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getQueryParameter(Query query, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getSamplerParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getSamplerParameter(Sampler sampler, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getSyncParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getSyncParameter(Sync sync, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getTransformFeedbackVarying')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getTransformFeedbackVarying(Program program, int index) native;
+
+  @DomName('WebGL2RenderingContext.getUniformBlockIndex')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getUniformBlockIndex(Program program, String uniformBlockName) native;
+
+  @DomName('WebGL2RenderingContext.getUniformIndices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> getUniformIndices(Program program, List<String> uniformNames) {
+    List uniformNames_1 = convertDartToNative_StringArray(uniformNames);
+    return _getUniformIndices_1(program, uniformNames_1);
+  }
+  @JSName('getUniformIndices')
+  @DomName('WebGL2RenderingContext.getUniformIndices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> _getUniformIndices_1(Program program, List uniformNames) native;
+
+  @DomName('WebGL2RenderingContext.invalidateFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void invalidateFramebuffer(int target, List<int> attachments) native;
+
+  @DomName('WebGL2RenderingContext.invalidateSubFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void invalidateSubFramebuffer(int target, List<int> attachments, int x, int y, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.isQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isQuery(Query query) native;
+
+  @DomName('WebGL2RenderingContext.isSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isSampler(Sampler sampler) native;
+
+  @DomName('WebGL2RenderingContext.isSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isSync(Sync sync) native;
+
+  @DomName('WebGL2RenderingContext.isTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isTransformFeedback(TransformFeedback feedback) native;
+
+  @DomName('WebGL2RenderingContext.isVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isVertexArray(VertexArrayObject vertexArray) native;
+
+  @DomName('WebGL2RenderingContext.pauseTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void pauseTransformFeedback() native;
+
+  @DomName('WebGL2RenderingContext.readBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void readBuffer(int mode) native;
+
+  @DomName('WebGL2RenderingContext.renderbufferStorageMultisample')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void renderbufferStorageMultisample(int target, int samples, int internalformat, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.resumeTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void resumeTransformFeedback() native;
+
+  @DomName('WebGL2RenderingContext.samplerParameterf')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void samplerParameterf(Sampler sampler, int pname, num param) native;
+
+  @DomName('WebGL2RenderingContext.samplerParameteri')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void samplerParameteri(Sampler sampler, int pname, int param) native;
+
+  @DomName('WebGL2RenderingContext.texImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, TypedData pixels) native;
+
+  @DomName('WebGL2RenderingContext.texStorage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texStorage2D(int target, int levels, int internalformat, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.texStorage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texStorage3D(int target, int levels, int internalformat, int width, int height, int depth) native;
+
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int format_OR_width, int height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video, [int format, int type, TypedData pixels]) {
+    if (pixels != null && type != null && format != null && (canvas_OR_data_OR_depth_OR_image_OR_video is int)) {
+      _texSubImage3D_1(target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video, format, type, pixels);
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is ImageData || canvas_OR_data_OR_depth_OR_image_OR_video == null) && format == null && type == null && pixels == null) {
+      var data_1 = convertDartToNative_ImageData(canvas_OR_data_OR_depth_OR_image_OR_video);
+      _texSubImage3D_2(target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, data_1);
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is ImageElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && format == null && type == null && pixels == null) {
+      _texSubImage3D_3(target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video);
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is CanvasElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && format == null && type == null && pixels == null) {
+      _texSubImage3D_4(target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video);
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is VideoElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && format == null && type == null && pixels == null) {
+      _texSubImage3D_5(target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('texSubImage3D')
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage3D_1(target, level, xoffset, yoffset, zoffset, width, height, int depth, format, type, TypedData pixels) native;
+  @JSName('texSubImage3D')
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage3D_2(target, level, xoffset, yoffset, zoffset, format, type, data) native;
+  @JSName('texSubImage3D')
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage3D_3(target, level, xoffset, yoffset, zoffset, format, type, ImageElement image) native;
+  @JSName('texSubImage3D')
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage3D_4(target, level, xoffset, yoffset, zoffset, format, type, CanvasElement canvas) native;
+  @JSName('texSubImage3D')
+  @DomName('WebGL2RenderingContext.texSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage3D_5(target, level, xoffset, yoffset, zoffset, format, type, VideoElement video) native;
+
+  @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void transformFeedbackVaryings(Program program, List<String> varyings, int bufferMode) {
+    List varyings_1 = convertDartToNative_StringArray(varyings);
+    _transformFeedbackVaryings_1(program, varyings_1, bufferMode);
+    return;
+  }
+  @JSName('transformFeedbackVaryings')
+  @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _transformFeedbackVaryings_1(Program program, List varyings, bufferMode) native;
+
+  @DomName('WebGL2RenderingContext.uniform1ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1ui(UniformLocation location, int v0) native;
+
+  @DomName('WebGL2RenderingContext.uniform1uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1uiv(UniformLocation location, List<int> value) native;
+
+  @DomName('WebGL2RenderingContext.uniform2ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2ui(UniformLocation location, int v0, int v1) native;
+
+  @DomName('WebGL2RenderingContext.uniform2uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2uiv(UniformLocation location, List<int> value) native;
+
+  @DomName('WebGL2RenderingContext.uniform3ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3ui(UniformLocation location, int v0, int v1, int v2) native;
+
+  @DomName('WebGL2RenderingContext.uniform3uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3uiv(UniformLocation location, List<int> value) native;
+
+  @DomName('WebGL2RenderingContext.uniform4ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4ui(UniformLocation location, int v0, int v1, int v2, int v3) native;
+
+  @DomName('WebGL2RenderingContext.uniform4uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4uiv(UniformLocation location, List<int> value) native;
+
+  @DomName('WebGL2RenderingContext.uniformBlockBinding')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformBlockBinding(Program program, int uniformBlockIndex, int uniformBlockBinding) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix2x3fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix2x3fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix2x4fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix2x4fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix3x2fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix3x2fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix3x4fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix3x4fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix4x2fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix4x2fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix4x3fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix4x3fv(UniformLocation location, bool transpose, value) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribDivisor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribDivisor(int index, int divisor) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribI4i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4i(int index, int x, int y, int z, int w) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribI4iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4iv(int index, List<int> v) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribI4ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4ui(int index, int x, int y, int z, int w) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribI4uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4uiv(int index, List<int> v) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribIPointer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribIPointer(int index, int size, int type, int stride, int offset) native;
+
+  @DomName('WebGL2RenderingContext.waitSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void waitSync(Sync sync, int flags, int timeout) native;
+
+  // From WebGLRenderingContextBase
+
+  @DomName('WebGL2RenderingContext.canvas')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final CanvasElement canvas;
+
+  @DomName('WebGL2RenderingContext.drawingBufferHeight')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int drawingBufferHeight;
+
+  @DomName('WebGL2RenderingContext.drawingBufferWidth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  final int drawingBufferWidth;
+
+  @DomName('WebGL2RenderingContext.activeTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void activeTexture(int texture) native;
+
+  @DomName('WebGL2RenderingContext.attachShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void attachShader(Program program, Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.bindAttribLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindAttribLocation(Program program, int index, String name) native;
+
+  @DomName('WebGL2RenderingContext.bindBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBuffer(int target, Buffer buffer) native;
+
+  @DomName('WebGL2RenderingContext.bindFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindFramebuffer(int target, Framebuffer framebuffer) native;
+
+  @DomName('WebGL2RenderingContext.bindRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindRenderbuffer(int target, Renderbuffer renderbuffer) native;
+
+  @DomName('WebGL2RenderingContext.bindTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindTexture(int target, Texture texture) native;
+
+  @DomName('WebGL2RenderingContext.blendColor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendColor(num red, num green, num blue, num alpha) native;
+
+  @DomName('WebGL2RenderingContext.blendEquation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendEquation(int mode) native;
+
+  @DomName('WebGL2RenderingContext.blendEquationSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendEquationSeparate(int modeRGB, int modeAlpha) native;
+
+  @DomName('WebGL2RenderingContext.blendFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendFunc(int sfactor, int dfactor) native;
+
+  @DomName('WebGL2RenderingContext.blendFuncSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) native;
+
+  @DomName('WebGL2RenderingContext.bufferData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bufferData(int target, data_OR_size, int usage) native;
+
+  @DomName('WebGL2RenderingContext.bufferSubData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bufferSubData(int target, int offset, data) native;
+
+  @DomName('WebGL2RenderingContext.checkFramebufferStatus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int checkFramebufferStatus(int target) native;
+
+  @DomName('WebGL2RenderingContext.clear')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clear(int mask) native;
+
+  @DomName('WebGL2RenderingContext.clearColor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearColor(num red, num green, num blue, num alpha) native;
+
+  @DomName('WebGL2RenderingContext.clearDepth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearDepth(num depth) native;
+
+  @DomName('WebGL2RenderingContext.clearStencil')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearStencil(int s) native;
+
+  @DomName('WebGL2RenderingContext.colorMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void colorMask(bool red, bool green, bool blue, bool alpha) native;
+
+  @DomName('WebGL2RenderingContext.compileShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compileShader(Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.compressedTexImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, TypedData data) native;
+
+  @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, TypedData data) native;
+
+  @DomName('WebGL2RenderingContext.copyTexImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border) native;
+
+  @DomName('WebGL2RenderingContext.copyTexSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.createBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Buffer createBuffer() native;
+
+  @DomName('WebGL2RenderingContext.createFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Framebuffer createFramebuffer() native;
+
+  @DomName('WebGL2RenderingContext.createProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Program createProgram() native;
+
+  @DomName('WebGL2RenderingContext.createRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Renderbuffer createRenderbuffer() native;
+
+  @DomName('WebGL2RenderingContext.createShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Shader createShader(int type) native;
+
+  @DomName('WebGL2RenderingContext.createTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Texture createTexture() native;
+
+  @DomName('WebGL2RenderingContext.cullFace')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void cullFace(int mode) native;
+
+  @DomName('WebGL2RenderingContext.deleteBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteBuffer(Buffer buffer) native;
+
+  @DomName('WebGL2RenderingContext.deleteFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteFramebuffer(Framebuffer framebuffer) native;
+
+  @DomName('WebGL2RenderingContext.deleteProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteProgram(Program program) native;
+
+  @DomName('WebGL2RenderingContext.deleteRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteRenderbuffer(Renderbuffer renderbuffer) native;
+
+  @DomName('WebGL2RenderingContext.deleteShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteShader(Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.deleteTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteTexture(Texture texture) native;
+
+  @DomName('WebGL2RenderingContext.depthFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthFunc(int func) native;
+
+  @DomName('WebGL2RenderingContext.depthMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthMask(bool flag) native;
+
+  @DomName('WebGL2RenderingContext.depthRange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthRange(num zNear, num zFar) native;
+
+  @DomName('WebGL2RenderingContext.detachShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void detachShader(Program program, Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.disable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disable(int cap) native;
+
+  @DomName('WebGL2RenderingContext.disableVertexAttribArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disableVertexAttribArray(int index) native;
+
+  @DomName('WebGL2RenderingContext.drawArrays')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawArrays(int mode, int first, int count) native;
+
+  @DomName('WebGL2RenderingContext.drawElements')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawElements(int mode, int count, int type, int offset) native;
+
+  @DomName('WebGL2RenderingContext.enable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void enable(int cap) native;
+
+  @DomName('WebGL2RenderingContext.enableVertexAttribArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void enableVertexAttribArray(int index) native;
+
+  @DomName('WebGL2RenderingContext.finish')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void finish() native;
+
+  @DomName('WebGL2RenderingContext.flush')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void flush() native;
+
+  @DomName('WebGL2RenderingContext.framebufferRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferRenderbuffer(int target, int attachment, int renderbuffertarget, Renderbuffer renderbuffer) native;
+
+  @DomName('WebGL2RenderingContext.framebufferTexture2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferTexture2D(int target, int attachment, int textarget, Texture texture, int level) native;
+
+  @DomName('WebGL2RenderingContext.frontFace')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void frontFace(int mode) native;
+
+  @DomName('WebGL2RenderingContext.generateMipmap')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void generateMipmap(int target) native;
+
+  @DomName('WebGL2RenderingContext.getActiveAttrib')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getActiveAttrib(Program program, int index) native;
+
+  @DomName('WebGL2RenderingContext.getActiveUniform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getActiveUniform(Program program, int index) native;
+
+  @DomName('WebGL2RenderingContext.getAttachedShaders')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Shader> getAttachedShaders(Program program) native;
+
+  @DomName('WebGL2RenderingContext.getAttribLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getAttribLocation(Program program, String name) native;
+
+  @DomName('WebGL2RenderingContext.getBufferParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getBufferParameter(int target, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getContextAttributes')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Map getContextAttributes() {
+    return convertNativeToDart_Dictionary(_getContextAttributes_1());
+  }
+  @JSName('getContextAttributes')
+  @DomName('WebGL2RenderingContext.getContextAttributes')
+  @DocsEditable()
+  @Experimental() // untriaged
+  _getContextAttributes_1() native;
+
+  @DomName('WebGL2RenderingContext.getError')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getError() native;
+
+  @DomName('WebGL2RenderingContext.getExtension')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getExtension(String name) native;
+
+  @DomName('WebGL2RenderingContext.getFramebufferAttachmentParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getFramebufferAttachmentParameter(int target, int attachment, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getParameter(int pname) native;
+
+  @DomName('WebGL2RenderingContext.getProgramInfoLog')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getProgramInfoLog(Program program) native;
+
+  @DomName('WebGL2RenderingContext.getProgramParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getProgramParameter(Program program, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getRenderbufferParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getRenderbufferParameter(int target, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getShaderInfoLog')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getShaderInfoLog(Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.getShaderParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getShaderParameter(Shader shader, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getShaderPrecisionFormat')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ShaderPrecisionFormat getShaderPrecisionFormat(int shadertype, int precisiontype) native;
+
+  @DomName('WebGL2RenderingContext.getShaderSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getShaderSource(Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.getSupportedExtensions')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<String> getSupportedExtensions() native;
+
+  @DomName('WebGL2RenderingContext.getTexParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getTexParameter(int target, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getUniform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getUniform(Program program, UniformLocation location) native;
+
+  @DomName('WebGL2RenderingContext.getUniformLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  UniformLocation getUniformLocation(Program program, String name) native;
+
+  @DomName('WebGL2RenderingContext.getVertexAttrib')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getVertexAttrib(int index, int pname) native;
+
+  @DomName('WebGL2RenderingContext.getVertexAttribOffset')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getVertexAttribOffset(int index, int pname) native;
+
+  @DomName('WebGL2RenderingContext.hint')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void hint(int target, int mode) native;
+
+  @DomName('WebGL2RenderingContext.isBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isBuffer(Buffer buffer) native;
+
+  @DomName('WebGL2RenderingContext.isContextLost')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isContextLost() native;
+
+  @DomName('WebGL2RenderingContext.isEnabled')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isEnabled(int cap) native;
+
+  @DomName('WebGL2RenderingContext.isFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isFramebuffer(Framebuffer framebuffer) native;
+
+  @DomName('WebGL2RenderingContext.isProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isProgram(Program program) native;
+
+  @DomName('WebGL2RenderingContext.isRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isRenderbuffer(Renderbuffer renderbuffer) native;
+
+  @DomName('WebGL2RenderingContext.isShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isShader(Shader shader) native;
+
+  @DomName('WebGL2RenderingContext.isTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isTexture(Texture texture) native;
+
+  @DomName('WebGL2RenderingContext.lineWidth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void lineWidth(num width) native;
+
+  @DomName('WebGL2RenderingContext.linkProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void linkProgram(Program program) native;
+
+  @DomName('WebGL2RenderingContext.pixelStorei')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void pixelStorei(int pname, int param) native;
+
+  @DomName('WebGL2RenderingContext.polygonOffset')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void polygonOffset(num factor, num units) native;
+
+  @DomName('WebGL2RenderingContext.readPixels')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void readPixels(int x, int y, int width, int height, int format, int type, TypedData pixels) native;
+
+  @DomName('WebGL2RenderingContext.renderbufferStorage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void renderbufferStorage(int target, int internalformat, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.sampleCoverage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void sampleCoverage(num value, bool invert) native;
+
+  @DomName('WebGL2RenderingContext.scissor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void scissor(int x, int y, int width, int height) native;
+
+  @DomName('WebGL2RenderingContext.shaderSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void shaderSource(Shader shader, String string) native;
+
+  @DomName('WebGL2RenderingContext.stencilFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilFunc(int func, int ref, int mask) native;
+
+  @DomName('WebGL2RenderingContext.stencilFuncSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilFuncSeparate(int face, int func, int ref, int mask) native;
+
+  @DomName('WebGL2RenderingContext.stencilMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilMask(int mask) native;
+
+  @DomName('WebGL2RenderingContext.stencilMaskSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilMaskSeparate(int face, int mask) native;
+
+  @DomName('WebGL2RenderingContext.stencilOp')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilOp(int fail, int zfail, int zpass) native;
+
+  @DomName('WebGL2RenderingContext.stencilOpSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilOpSeparate(int face, int fail, int zfail, int zpass) native;
+
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texImage2D(int target, int level, int internalformat, int format_OR_width, int height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, [int format, int type, TypedData pixels]) {
+    if (pixels != null && type != null && format != null && (border_OR_canvas_OR_image_OR_pixels_OR_video is int)) {
+      _texImage2D_1(target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && format == null && type == null && pixels == null) {
+      var pixels_1 = convertDartToNative_ImageData(border_OR_canvas_OR_image_OR_pixels_OR_video);
+      _texImage2D_2(target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is ImageElement) && format == null && type == null && pixels == null) {
+      _texImage2D_3(target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is CanvasElement) && format == null && type == null && pixels == null) {
+      _texImage2D_4(target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is VideoElement) && format == null && type == null && pixels == null) {
+      _texImage2D_5(target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('texImage2D')
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texImage2D_1(target, level, internalformat, width, height, int border, format, type, TypedData pixels) native;
+  @JSName('texImage2D')
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texImage2D_2(target, level, internalformat, format, type, pixels) native;
+  @JSName('texImage2D')
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texImage2D_3(target, level, internalformat, format, type, ImageElement image) native;
+  @JSName('texImage2D')
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texImage2D_4(target, level, internalformat, format, type, CanvasElement canvas) native;
+  @JSName('texImage2D')
+  @DomName('WebGL2RenderingContext.texImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texImage2D_5(target, level, internalformat, format, type, VideoElement video) native;
+
+  @DomName('WebGL2RenderingContext.texParameterf')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texParameterf(int target, int pname, num param) native;
+
+  @DomName('WebGL2RenderingContext.texParameteri')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texParameteri(int target, int pname, int param) native;
+
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texSubImage2D(int target, int level, int xoffset, int yoffset, int format_OR_width, int height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, [int type, TypedData pixels]) {
+    if (pixels != null && type != null && (canvas_OR_format_OR_image_OR_pixels_OR_video is int)) {
+      _texSubImage2D_1(target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && type == null && pixels == null) {
+      var pixels_1 = convertDartToNative_ImageData(canvas_OR_format_OR_image_OR_pixels_OR_video);
+      _texSubImage2D_2(target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is ImageElement) && type == null && pixels == null) {
+      _texSubImage2D_3(target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is CanvasElement) && type == null && pixels == null) {
+      _texSubImage2D_4(target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is VideoElement) && type == null && pixels == null) {
+      _texSubImage2D_5(target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+  @JSName('texSubImage2D')
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage2D_1(target, level, xoffset, yoffset, width, height, int format, type, TypedData pixels) native;
+  @JSName('texSubImage2D')
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage2D_2(target, level, xoffset, yoffset, format, type, pixels) native;
+  @JSName('texSubImage2D')
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage2D_3(target, level, xoffset, yoffset, format, type, ImageElement image) native;
+  @JSName('texSubImage2D')
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage2D_4(target, level, xoffset, yoffset, format, type, CanvasElement canvas) native;
+  @JSName('texSubImage2D')
+  @DomName('WebGL2RenderingContext.texSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void _texSubImage2D_5(target, level, xoffset, yoffset, format, type, VideoElement video) native;
+
+  @DomName('WebGL2RenderingContext.uniform1f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1f(UniformLocation location, num x) native;
+
+  @DomName('WebGL2RenderingContext.uniform1fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1fv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform1i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1i(UniformLocation location, int x) native;
+
+  @DomName('WebGL2RenderingContext.uniform1iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1iv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform2f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2f(UniformLocation location, num x, num y) native;
+
+  @DomName('WebGL2RenderingContext.uniform2fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2fv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform2i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2i(UniformLocation location, int x, int y) native;
+
+  @DomName('WebGL2RenderingContext.uniform2iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2iv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform3f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3f(UniformLocation location, num x, num y, num z) native;
+
+  @DomName('WebGL2RenderingContext.uniform3fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3fv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform3i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3i(UniformLocation location, int x, int y, int z) native;
+
+  @DomName('WebGL2RenderingContext.uniform3iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3iv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform4f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4f(UniformLocation location, num x, num y, num z, num w) native;
+
+  @DomName('WebGL2RenderingContext.uniform4fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4fv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniform4i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4i(UniformLocation location, int x, int y, int z, int w) native;
+
+  @DomName('WebGL2RenderingContext.uniform4iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4iv(UniformLocation location, v) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix2fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix3fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
+
+  @DomName('WebGL2RenderingContext.uniformMatrix4fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
+
+  @DomName('WebGL2RenderingContext.useProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void useProgram(Program program) native;
+
+  @DomName('WebGL2RenderingContext.validateProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void validateProgram(Program program) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib1f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib1f(int indx, num x) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib1fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib1fv(int indx, values) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib2f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib2f(int indx, num x, num y) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib2fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib2fv(int indx, values) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib3f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib3f(int indx, num x, num y, num z) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib3fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib3fv(int indx, values) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib4f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib4f(int indx, num x, num y, num z, num w) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttrib4fv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib4fv(int indx, values) native;
+
+  @DomName('WebGL2RenderingContext.vertexAttribPointer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribPointer(int indx, int size, int type, bool normalized, int stride, int offset) native;
+
+  @DomName('WebGL2RenderingContext.viewport')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void viewport(int x, int y, int width, int height) native;
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('WebGLSampler')
+@Experimental() // untriaged
+@Native("WebGLSampler")
+class Sampler extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Sampler._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLShader')
 @Native("WebGLShader")
 class Shader extends Interceptor {
@@ -3312,6 +6007,19 @@
 
 
 @DocsEditable()
+@DomName('WebGLSync')
+@Experimental() // untriaged
+@Native("WebGLSync")
+class Sync extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory Sync._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLTexture')
 @Native("WebGLTexture")
 class Texture extends Interceptor {
@@ -3324,6 +6032,19 @@
 
 
 @DocsEditable()
+@DomName('WebGLTransformFeedback')
+@Experimental() // untriaged
+@Native("WebGLTransformFeedback")
+class TransformFeedback extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory TransformFeedback._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLUniformLocation')
 @Native("WebGLUniformLocation")
 class UniformLocation extends Interceptor {
@@ -3336,13 +6057,41 @@
 
 
 @DocsEditable()
+@DomName('WebGLVertexArrayObject')
+@Experimental() // untriaged
+@Native("WebGLVertexArrayObject")
+class VertexArrayObject extends Interceptor {
+  // To suppress missing implicit constructor warnings.
+  factory VertexArrayObject._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
 @DomName('WebGLVertexArrayObjectOES')
 // http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
 @Experimental() // experimental
 @Native("WebGLVertexArrayObjectOES")
-class VertexArrayObject extends Interceptor {
+class VertexArrayObjectOes extends Interceptor {
   // To suppress missing implicit constructor warnings.
-  factory VertexArrayObject._() { throw new UnsupportedError("Not supported"); }
+  factory VertexArrayObjectOes._() { throw new UnsupportedError("Not supported"); }
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+
+@DocsEditable()
+@DomName('WebGL2RenderingContextBase')
+@Experimental() // untriaged
+@Native("WebGL2RenderingContextBase")
+abstract class _WebGL2RenderingContextBase extends Interceptor implements _WebGLRenderingContextBase {
+  // To suppress missing implicit constructor warnings.
+  factory _WebGL2RenderingContextBase._() { throw new UnsupportedError("Not supported"); }
+
+  // From WebGLRenderingContextBase
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
diff --git a/sdk/lib/web_gl/dartium/web_gl_dartium.dart b/sdk/lib/web_gl/dartium/web_gl_dartium.dart
index 707af2d..ede152f 100644
--- a/sdk/lib/web_gl/dartium/web_gl_dartium.dart
+++ b/sdk/lib/web_gl/dartium/web_gl_dartium.dart
@@ -23,10 +23,12 @@
 @Deprecated("Internal Use Only")
 final web_glBlinkMap = {
   'ANGLEInstancedArrays': () => AngleInstancedArrays,
+  'CHROMIUMSubscribeUniform': () => ChromiumSubscribeUniform,
   'EXTBlendMinMax': () => ExtBlendMinMax,
   'EXTFragDepth': () => ExtFragDepth,
   'EXTShaderTextureLOD': () => ExtShaderTextureLod,
   'EXTTextureFilterAnisotropic': () => ExtTextureFilterAnisotropic,
+  'EXTsRGB': () => EXTsRgb,
   'OESElementIndexUint': () => OesElementIndexUint,
   'OESStandardDerivatives': () => OesStandardDerivatives,
   'OESTextureFloat': () => OesTextureFloat,
@@ -34,13 +36,14 @@
   'OESTextureHalfFloat': () => OesTextureHalfFloat,
   'OESTextureHalfFloatLinear': () => OesTextureHalfFloatLinear,
   'OESVertexArrayObject': () => OesVertexArrayObject,
+  'WebGL2RenderingContext': () => RenderingContext2,
+  'WebGL2RenderingContextBase': () => _WebGL2RenderingContextBase,
   'WebGLActiveInfo': () => ActiveInfo,
   'WebGLBuffer': () => Buffer,
   'WebGLCompressedTextureATC': () => CompressedTextureAtc,
   'WebGLCompressedTextureETC1': () => CompressedTextureETC1,
   'WebGLCompressedTexturePVRTC': () => CompressedTexturePvrtc,
   'WebGLCompressedTextureS3TC': () => CompressedTextureS3TC,
-  'WebGLContextAttributes': () => ContextAttributes,
   'WebGLContextEvent': () => ContextEvent,
   'WebGLDebugRendererInfo': () => DebugRendererInfo,
   'WebGLDebugShaders': () => DebugShaders,
@@ -49,14 +52,19 @@
   'WebGLFramebuffer': () => Framebuffer,
   'WebGLLoseContext': () => LoseContext,
   'WebGLProgram': () => Program,
+  'WebGLQuery': () => Query,
   'WebGLRenderbuffer': () => Renderbuffer,
   'WebGLRenderingContext': () => RenderingContext,
   'WebGLRenderingContextBase': () => _WebGLRenderingContextBase,
+  'WebGLSampler': () => Sampler,
   'WebGLShader': () => Shader,
   'WebGLShaderPrecisionFormat': () => ShaderPrecisionFormat,
+  'WebGLSync': () => Sync,
   'WebGLTexture': () => Texture,
+  'WebGLTransformFeedback': () => TransformFeedback,
   'WebGLUniformLocation': () => UniformLocation,
-  'WebGLVertexArrayObjectOES': () => VertexArrayObject,
+  'WebGLVertexArrayObject': () => VertexArrayObject,
+  'WebGLVertexArrayObjectOES': () => VertexArrayObjectOes,
 
 };
 
@@ -64,10 +72,12 @@
 @Deprecated("Internal Use Only")
 final web_glBlinkFunctionMap = {
   'ANGLEInstancedArrays': () => AngleInstancedArrays.internalCreateAngleInstancedArrays,
+  'CHROMIUMSubscribeUniform': () => ChromiumSubscribeUniform.internalCreateChromiumSubscribeUniform,
   'EXTBlendMinMax': () => ExtBlendMinMax.internalCreateExtBlendMinMax,
   'EXTFragDepth': () => ExtFragDepth.internalCreateExtFragDepth,
   'EXTShaderTextureLOD': () => ExtShaderTextureLod.internalCreateExtShaderTextureLod,
   'EXTTextureFilterAnisotropic': () => ExtTextureFilterAnisotropic.internalCreateExtTextureFilterAnisotropic,
+  'EXTsRGB': () => EXTsRgb.internalCreateEXTsRgb,
   'OESElementIndexUint': () => OesElementIndexUint.internalCreateOesElementIndexUint,
   'OESStandardDerivatives': () => OesStandardDerivatives.internalCreateOesStandardDerivatives,
   'OESTextureFloat': () => OesTextureFloat.internalCreateOesTextureFloat,
@@ -75,13 +85,14 @@
   'OESTextureHalfFloat': () => OesTextureHalfFloat.internalCreateOesTextureHalfFloat,
   'OESTextureHalfFloatLinear': () => OesTextureHalfFloatLinear.internalCreateOesTextureHalfFloatLinear,
   'OESVertexArrayObject': () => OesVertexArrayObject.internalCreateOesVertexArrayObject,
+  'WebGL2RenderingContext': () => RenderingContext2.internalCreateRenderingContext2,
+  'WebGL2RenderingContextBase': () => _WebGL2RenderingContextBase.internalCreate_WebGL2RenderingContextBase,
   'WebGLActiveInfo': () => ActiveInfo.internalCreateActiveInfo,
   'WebGLBuffer': () => Buffer.internalCreateBuffer,
   'WebGLCompressedTextureATC': () => CompressedTextureAtc.internalCreateCompressedTextureAtc,
   'WebGLCompressedTextureETC1': () => CompressedTextureETC1.internalCreateCompressedTextureETC1,
   'WebGLCompressedTexturePVRTC': () => CompressedTexturePvrtc.internalCreateCompressedTexturePvrtc,
   'WebGLCompressedTextureS3TC': () => CompressedTextureS3TC.internalCreateCompressedTextureS3TC,
-  'WebGLContextAttributes': () => ContextAttributes.internalCreateContextAttributes,
   'WebGLContextEvent': () => ContextEvent.internalCreateContextEvent,
   'WebGLDebugRendererInfo': () => DebugRendererInfo.internalCreateDebugRendererInfo,
   'WebGLDebugShaders': () => DebugShaders.internalCreateDebugShaders,
@@ -90,13 +101,18 @@
   'WebGLFramebuffer': () => Framebuffer.internalCreateFramebuffer,
   'WebGLLoseContext': () => LoseContext.internalCreateLoseContext,
   'WebGLProgram': () => Program.internalCreateProgram,
+  'WebGLQuery': () => Query.internalCreateQuery,
   'WebGLRenderbuffer': () => Renderbuffer.internalCreateRenderbuffer,
   'WebGLRenderingContext': () => RenderingContext.internalCreateRenderingContext,
+  'WebGLSampler': () => Sampler.internalCreateSampler,
   'WebGLShader': () => Shader.internalCreateShader,
   'WebGLShaderPrecisionFormat': () => ShaderPrecisionFormat.internalCreateShaderPrecisionFormat,
+  'WebGLSync': () => Sync.internalCreateSync,
   'WebGLTexture': () => Texture.internalCreateTexture,
+  'WebGLTransformFeedback': () => TransformFeedback.internalCreateTransformFeedback,
   'WebGLUniformLocation': () => UniformLocation.internalCreateUniformLocation,
-  'WebGLVertexArrayObjectOES': () => VertexArrayObject.internalCreateVertexArrayObject,
+  'WebGLVertexArrayObject': () => VertexArrayObject.internalCreateVertexArrayObject,
+  'WebGLVertexArrayObjectOES': () => VertexArrayObjectOes.internalCreateVertexArrayObjectOes,
 
 };
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
@@ -530,6 +546,81 @@
 
 
 @DocsEditable()
+@DomName('CHROMIUMSubscribeUniform')
+@Experimental() // untriaged
+class ChromiumSubscribeUniform extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory ChromiumSubscribeUniform._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static ChromiumSubscribeUniform internalCreateChromiumSubscribeUniform() {
+    return new ChromiumSubscribeUniform._internalWrap();
+  }
+
+  factory ChromiumSubscribeUniform._internalWrap() {
+    return new ChromiumSubscribeUniform.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  ChromiumSubscribeUniform.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('CHROMIUMSubscribeUniform.MOUSE_POSITION_CHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MOUSE_POSITION_CHROMIUM = 0x924C;
+
+  @DomName('CHROMIUMSubscribeUniform.SUBSCRIBED_VALUES_BUFFER_CHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SUBSCRIBED_VALUES_BUFFER_CHROMIUM = 0x924B;
+
+  @DomName('CHROMIUMSubscribeUniform.bindValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindValuebufferChromium(int target, ChromiumValuebuffer buffer) => _blink.BlinkCHROMIUMSubscribeUniform.instance.bindValuebufferCHROMIUM_Callback_2_(unwrap_jso(this), target, unwrap_jso(buffer));
+  
+  @DomName('CHROMIUMSubscribeUniform.createValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ChromiumValuebuffer createValuebufferChromium() => wrap_jso(_blink.BlinkCHROMIUMSubscribeUniform.instance.createValuebufferCHROMIUM_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('CHROMIUMSubscribeUniform.deleteValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteValuebufferChromium(ChromiumValuebuffer buffer) => _blink.BlinkCHROMIUMSubscribeUniform.instance.deleteValuebufferCHROMIUM_Callback_1_(unwrap_jso(this), unwrap_jso(buffer));
+  
+  @DomName('CHROMIUMSubscribeUniform.isValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isValuebufferChromium(ChromiumValuebuffer buffer) => _blink.BlinkCHROMIUMSubscribeUniform.instance.isValuebufferCHROMIUM_Callback_1_(unwrap_jso(this), unwrap_jso(buffer));
+  
+  @DomName('CHROMIUMSubscribeUniform.populateSubscribedValuesCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void populateSubscribedValuesChromium(int target) => _blink.BlinkCHROMIUMSubscribeUniform.instance.populateSubscribedValuesCHROMIUM_Callback_1_(unwrap_jso(this), target);
+  
+  @DomName('CHROMIUMSubscribeUniform.subscribeValueCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void subscribeValueChromium(int target, int subscriptions) => _blink.BlinkCHROMIUMSubscribeUniform.instance.subscribeValueCHROMIUM_Callback_2_(unwrap_jso(this), target, subscriptions);
+  
+  @DomName('CHROMIUMSubscribeUniform.uniformValuebufferCHROMIUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformValuebufferChromium(UniformLocation location, int target, int subscription) => _blink.BlinkCHROMIUMSubscribeUniform.instance.uniformValuebufferCHROMIUM_Callback_3_(unwrap_jso(this), unwrap_jso(location), target, subscription);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLCompressedTextureATC')
 // http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_atc/
 @Experimental()
@@ -702,122 +793,22 @@
 
 
 @DocsEditable()
-/**
- * The properties of a WebGL rendering context.
- *
- * If [alpha] is `true`, then the context has an alpha channel.
- *
- * If [antialias] is `true`, then antialiasing is performed by the browser, but
- * only if the browser's implementation of WebGL supports antialiasing.
- *
- * If [depth] is `true`, then the context has a depth buffer of at least 16
- * bits.
- *
- * If [premultipliedAlpha] is `true`, then the context's colors are assumed to
- * be premultiplied. This means that color values are assumed to have  been
- * multiplied by their alpha values. If [alpha] is `false`, then this flag is
- * ignored.
- *
- * If [preserveDrawingBuffer] is `false`, then all contents of the context are
- * cleared. If `true`, then all values will remain until changed or cleared.
- *
- * If [stencil] is `true`, then the context has a stencil buffer of at least 8
- * bits.
- */
-@DomName('WebGLContextAttributes')
-@Unstable()
-class ContextAttributes extends DartHtmlDomObject {
-  // To suppress missing implicit constructor warnings.
-  factory ContextAttributes._() { throw new UnsupportedError("Not supported"); }
-
-  @Deprecated("Internal Use Only")
-  static ContextAttributes internalCreateContextAttributes() {
-    return new ContextAttributes._internalWrap();
-  }
-
-  factory ContextAttributes._internalWrap() {
-    return new ContextAttributes.internal_();
-  }
-
-  @Deprecated("Internal Use Only")
-  ContextAttributes.internal_() { }
-
-  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
-  int get hashCode => unwrap_jso(this).hashCode;
-
-  @DomName('WebGLContextAttributes.alpha')
-  @DocsEditable()
-  bool get alpha => _blink.BlinkWebGLContextAttributes.instance.alpha_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.alpha')
-  @DocsEditable()
-  set alpha(bool value) => _blink.BlinkWebGLContextAttributes.instance.alpha_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.antialias')
-  @DocsEditable()
-  bool get antialias => _blink.BlinkWebGLContextAttributes.instance.antialias_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.antialias')
-  @DocsEditable()
-  set antialias(bool value) => _blink.BlinkWebGLContextAttributes.instance.antialias_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.depth')
-  @DocsEditable()
-  bool get depth => _blink.BlinkWebGLContextAttributes.instance.depth_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.depth')
-  @DocsEditable()
-  set depth(bool value) => _blink.BlinkWebGLContextAttributes.instance.depth_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.failIfMajorPerformanceCaveat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  bool get failIfMajorPerformanceCaveat => _blink.BlinkWebGLContextAttributes.instance.failIfMajorPerformanceCaveat_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.failIfMajorPerformanceCaveat')
-  @DocsEditable()
-  @Experimental() // untriaged
-  set failIfMajorPerformanceCaveat(bool value) => _blink.BlinkWebGLContextAttributes.instance.failIfMajorPerformanceCaveat_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.premultipliedAlpha')
-  @DocsEditable()
-  bool get premultipliedAlpha => _blink.BlinkWebGLContextAttributes.instance.premultipliedAlpha_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.premultipliedAlpha')
-  @DocsEditable()
-  set premultipliedAlpha(bool value) => _blink.BlinkWebGLContextAttributes.instance.premultipliedAlpha_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.preserveDrawingBuffer')
-  @DocsEditable()
-  bool get preserveDrawingBuffer => _blink.BlinkWebGLContextAttributes.instance.preserveDrawingBuffer_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.preserveDrawingBuffer')
-  @DocsEditable()
-  set preserveDrawingBuffer(bool value) => _blink.BlinkWebGLContextAttributes.instance.preserveDrawingBuffer_Setter_(unwrap_jso(this), value);
-  
-  @DomName('WebGLContextAttributes.stencil')
-  @DocsEditable()
-  bool get stencil => _blink.BlinkWebGLContextAttributes.instance.stencil_Getter_(unwrap_jso(this));
-  
-  @DomName('WebGLContextAttributes.stencil')
-  @DocsEditable()
-  set stencil(bool value) => _blink.BlinkWebGLContextAttributes.instance.stencil_Setter_(unwrap_jso(this), value);
-  
-}
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable()
 @DomName('WebGLContextEvent')
 @Unstable()
 class ContextEvent extends Event {
   // To suppress missing implicit constructor warnings.
   factory ContextEvent._() { throw new UnsupportedError("Not supported"); }
 
+  @DomName('WebGLContextEvent.WebGLContextEvent')
+  @DocsEditable()
+  factory ContextEvent(String type, [Map eventInit]) {
+    if (eventInit != null) {
+      var eventInit_1 = convertDartToNative_Dictionary(eventInit);
+      return wrap_jso(_blink.BlinkWebGLContextEvent.instance.constructorCallback_2_(type, eventInit_1));
+    }
+    return wrap_jso(_blink.BlinkWebGLContextEvent.instance.constructorCallback_1_(type));
+  }
+
 
   @Deprecated("Internal Use Only")
   static ContextEvent internalCreateContextEvent() {
@@ -1123,6 +1114,56 @@
 
 
 @DocsEditable()
+@DomName('EXTsRGB')
+@Experimental() // untriaged
+class EXTsRgb extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory EXTsRgb._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static EXTsRgb internalCreateEXTsRgb() {
+    return new EXTsRgb._internalWrap();
+  }
+
+  factory EXTsRgb._internalWrap() {
+    return new EXTsRgb.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  EXTsRgb.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('EXTsRGB.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
+
+  @DomName('EXTsRGB.SRGB8_ALPHA8_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB8_ALPHA8_EXT = 0x8C43;
+
+  @DomName('EXTsRGB.SRGB_ALPHA_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB_ALPHA_EXT = 0x8C42;
+
+  @DomName('EXTsRGB.SRGB_EXT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRGB_EXT = 0x8C40;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('EXTBlendMinMax')
 @Experimental() // untriaged
 class ExtBlendMinMax extends DartHtmlDomObject {
@@ -1554,19 +1595,19 @@
 
   @DomName('OESVertexArrayObject.bindVertexArrayOES')
   @DocsEditable()
-  void bindVertexArray(VertexArrayObject arrayObject) => _blink.BlinkOESVertexArrayObject.instance.bindVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
+  void bindVertexArray(VertexArrayObjectOes arrayObject) => _blink.BlinkOESVertexArrayObject.instance.bindVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
   
   @DomName('OESVertexArrayObject.createVertexArrayOES')
   @DocsEditable()
-  VertexArrayObject createVertexArray() => wrap_jso(_blink.BlinkOESVertexArrayObject.instance.createVertexArrayOES_Callback_0_(unwrap_jso(this)));
+  VertexArrayObjectOes createVertexArray() => wrap_jso(_blink.BlinkOESVertexArrayObject.instance.createVertexArrayOES_Callback_0_(unwrap_jso(this)));
   
   @DomName('OESVertexArrayObject.deleteVertexArrayOES')
   @DocsEditable()
-  void deleteVertexArray(VertexArrayObject arrayObject) => _blink.BlinkOESVertexArrayObject.instance.deleteVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
+  void deleteVertexArray(VertexArrayObjectOes arrayObject) => _blink.BlinkOESVertexArrayObject.instance.deleteVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
   
   @DomName('OESVertexArrayObject.isVertexArrayOES')
   @DocsEditable()
-  bool isVertexArray(VertexArrayObject arrayObject) => _blink.BlinkOESVertexArrayObject.instance.isVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
+  bool isVertexArray(VertexArrayObjectOes arrayObject) => _blink.BlinkOESVertexArrayObject.instance.isVertexArrayOES_Callback_1_(unwrap_jso(this), unwrap_jso(arrayObject));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -1607,6 +1648,36 @@
 
 
 @DocsEditable()
+@DomName('WebGLQuery')
+@Experimental() // untriaged
+class Query extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Query._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Query internalCreateQuery() {
+    return new Query._internalWrap();
+  }
+
+  factory Query._internalWrap() {
+    return new Query.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Query.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLRenderbuffer')
 @Unstable()
 class Renderbuffer extends DartHtmlDomObject {
@@ -2912,10 +2983,6 @@
   @DocsEditable()
   void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) => _blink.BlinkWebGLRenderingContext.instance.blendFuncSeparate_Callback_4_(unwrap_jso(this), srcRGB, dstRGB, srcAlpha, dstAlpha);
   
-  @DomName('WebGLRenderingContext.bufferByteData')
-  @DocsEditable()
-  void bufferByteData(int target, ByteBuffer data, int usage) => _blink.BlinkWebGLRenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, data, usage);
-  
   void bufferData(int target, data_OR_size, int usage) {
     if ((usage is int) && (data_OR_size is int) && (target is int)) {
       _blink.BlinkWebGLRenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, unwrap_jso(data_OR_size), usage);
@@ -2932,14 +2999,6 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('WebGLRenderingContext.bufferDataTyped')
-  @DocsEditable()
-  void bufferDataTyped(int target, TypedData data, int usage) => _blink.BlinkWebGLRenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, unwrap_jso(data), usage);
-  
-  @DomName('WebGLRenderingContext.bufferSubByteData')
-  @DocsEditable()
-  void bufferSubByteData(int target, int offset, ByteBuffer data) => _blink.BlinkWebGLRenderingContext.instance.bufferSubData_Callback_3_(unwrap_jso(this), target, offset, data);
-  
   void bufferSubData(int target, int offset, data) {
     if ((data is TypedData) && (offset is int) && (target is int)) {
       _blink.BlinkWebGLRenderingContext.instance.bufferSubData_Callback_3_(unwrap_jso(this), target, offset, unwrap_jso(data));
@@ -2952,10 +3011,6 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('WebGLRenderingContext.bufferSubDataTyped')
-  @DocsEditable()
-  void bufferSubDataTyped(int target, int offset, TypedData data) => _blink.BlinkWebGLRenderingContext.instance.bufferSubData_Callback_3_(unwrap_jso(this), target, offset, unwrap_jso(data));
-  
   @DomName('WebGLRenderingContext.checkFramebufferStatus')
   @DocsEditable()
   int checkFramebufferStatus(int target) => _blink.BlinkWebGLRenderingContext.instance.checkFramebufferStatus_Callback_1_(unwrap_jso(this), target);
@@ -3138,7 +3193,7 @@
   
   @DomName('WebGLRenderingContext.getContextAttributes')
   @DocsEditable()
-  ContextAttributes getContextAttributes() => wrap_jso(_blink.BlinkWebGLRenderingContext.instance.getContextAttributes_Callback_0_(unwrap_jso(this)));
+   getContextAttributes() => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkWebGLRenderingContext.instance.getContextAttributes_Callback_0_(unwrap_jso(this))));
   
   @DomName('WebGLRenderingContext.getError')
   @DocsEditable()
@@ -3328,22 +3383,6 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('WebGLRenderingContext.texImage2DCanvas')
-  @DocsEditable()
-  void texImage2DCanvas(int target, int level, int internalformat, int format, int type, CanvasElement canvas) => _blink.BlinkWebGLRenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format, type, unwrap_jso(canvas));
-  
-  @DomName('WebGLRenderingContext.texImage2DImage')
-  @DocsEditable()
-  void texImage2DImage(int target, int level, int internalformat, int format, int type, ImageElement image) => _blink.BlinkWebGLRenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format, type, unwrap_jso(image));
-  
-  @DomName('WebGLRenderingContext.texImage2DImageData')
-  @DocsEditable()
-  void texImage2DImageData(int target, int level, int internalformat, int format, int type, ImageData pixels) => _blink.BlinkWebGLRenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format, type, unwrap_jso(pixels));
-  
-  @DomName('WebGLRenderingContext.texImage2DVideo')
-  @DocsEditable()
-  void texImage2DVideo(int target, int level, int internalformat, int format, int type, VideoElement video) => _blink.BlinkWebGLRenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format, type, unwrap_jso(video));
-  
   @DomName('WebGLRenderingContext.texParameterf')
   @DocsEditable()
   void texParameterf(int target, int pname, num param) => _blink.BlinkWebGLRenderingContext.instance.texParameterf_Callback_3_(unwrap_jso(this), target, pname, param);
@@ -3376,98 +3415,170 @@
     throw new ArgumentError("Incorrect number or type of arguments");
   }
 
-  @DomName('WebGLRenderingContext.texSubImage2DCanvas')
-  @DocsEditable()
-  void texSubImage2DCanvas(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas) => _blink.BlinkWebGLRenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format, type, unwrap_jso(canvas));
-  
-  @DomName('WebGLRenderingContext.texSubImage2DImage')
-  @DocsEditable()
-  void texSubImage2DImage(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image) => _blink.BlinkWebGLRenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format, type, unwrap_jso(image));
-  
-  @DomName('WebGLRenderingContext.texSubImage2DImageData')
-  @DocsEditable()
-  void texSubImage2DImageData(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels) => _blink.BlinkWebGLRenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format, type, unwrap_jso(pixels));
-  
-  @DomName('WebGLRenderingContext.texSubImage2DVideo')
-  @DocsEditable()
-  void texSubImage2DVideo(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video) => _blink.BlinkWebGLRenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format, type, unwrap_jso(video));
-  
   @DomName('WebGLRenderingContext.uniform1f')
   @DocsEditable()
   void uniform1f(UniformLocation location, num x) => _blink.BlinkWebGLRenderingContext.instance.uniform1f_Callback_2_(unwrap_jso(this), unwrap_jso(location), x);
   
-  @DomName('WebGLRenderingContext.uniform1fv')
-  @DocsEditable()
-  void uniform1fv(UniformLocation location, Float32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform1fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform1fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform1fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform1fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform1i')
   @DocsEditable()
   void uniform1i(UniformLocation location, int x) => _blink.BlinkWebGLRenderingContext.instance.uniform1i_Callback_2_(unwrap_jso(this), unwrap_jso(location), x);
   
-  @DomName('WebGLRenderingContext.uniform1iv')
-  @DocsEditable()
-  void uniform1iv(UniformLocation location, Int32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform1iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform1iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform1iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform1iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform2f')
   @DocsEditable()
   void uniform2f(UniformLocation location, num x, num y) => _blink.BlinkWebGLRenderingContext.instance.uniform2f_Callback_3_(unwrap_jso(this), unwrap_jso(location), x, y);
   
-  @DomName('WebGLRenderingContext.uniform2fv')
-  @DocsEditable()
-  void uniform2fv(UniformLocation location, Float32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform2fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform2fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform2fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform2fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform2i')
   @DocsEditable()
   void uniform2i(UniformLocation location, int x, int y) => _blink.BlinkWebGLRenderingContext.instance.uniform2i_Callback_3_(unwrap_jso(this), unwrap_jso(location), x, y);
   
-  @DomName('WebGLRenderingContext.uniform2iv')
-  @DocsEditable()
-  void uniform2iv(UniformLocation location, Int32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform2iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform2iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform2iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform2iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform3f')
   @DocsEditable()
   void uniform3f(UniformLocation location, num x, num y, num z) => _blink.BlinkWebGLRenderingContext.instance.uniform3f_Callback_4_(unwrap_jso(this), unwrap_jso(location), x, y, z);
   
-  @DomName('WebGLRenderingContext.uniform3fv')
-  @DocsEditable()
-  void uniform3fv(UniformLocation location, Float32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform3fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform3fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform3fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform3fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform3i')
   @DocsEditable()
   void uniform3i(UniformLocation location, int x, int y, int z) => _blink.BlinkWebGLRenderingContext.instance.uniform3i_Callback_4_(unwrap_jso(this), unwrap_jso(location), x, y, z);
   
-  @DomName('WebGLRenderingContext.uniform3iv')
-  @DocsEditable()
-  void uniform3iv(UniformLocation location, Int32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform3iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform3iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform3iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform3iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform4f')
   @DocsEditable()
   void uniform4f(UniformLocation location, num x, num y, num z, num w) => _blink.BlinkWebGLRenderingContext.instance.uniform4f_Callback_5_(unwrap_jso(this), unwrap_jso(location), x, y, z, w);
   
-  @DomName('WebGLRenderingContext.uniform4fv')
-  @DocsEditable()
-  void uniform4fv(UniformLocation location, Float32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform4fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
+  void uniform4fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform4fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform4fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.uniform4i')
   @DocsEditable()
   void uniform4i(UniformLocation location, int x, int y, int z, int w) => _blink.BlinkWebGLRenderingContext.instance.uniform4i_Callback_5_(unwrap_jso(this), unwrap_jso(location), x, y, z, w);
   
-  @DomName('WebGLRenderingContext.uniform4iv')
-  @DocsEditable()
-  void uniform4iv(UniformLocation location, Int32List v) => _blink.BlinkWebGLRenderingContext.instance.uniform4iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), v);
-  
-  @DomName('WebGLRenderingContext.uniformMatrix2fv')
-  @DocsEditable()
-  void uniformMatrix2fv(UniformLocation location, bool transpose, Float32List array) => _blink.BlinkWebGLRenderingContext.instance.uniformMatrix2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, array);
-  
-  @DomName('WebGLRenderingContext.uniformMatrix3fv')
-  @DocsEditable()
-  void uniformMatrix3fv(UniformLocation location, bool transpose, Float32List array) => _blink.BlinkWebGLRenderingContext.instance.uniformMatrix3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, array);
-  
-  @DomName('WebGLRenderingContext.uniformMatrix4fv')
-  @DocsEditable()
-  void uniformMatrix4fv(UniformLocation location, bool transpose, Float32List array) => _blink.BlinkWebGLRenderingContext.instance.uniformMatrix4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, array);
-  
+  void uniform4iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform4iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniform4iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix2fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix3fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix4fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGLRenderingContext.instance.uniformMatrix4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.useProgram')
   @DocsEditable()
   void useProgram(Program program) => _blink.BlinkWebGLRenderingContext.instance.useProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
@@ -3480,34 +3591,66 @@
   @DocsEditable()
   void vertexAttrib1f(int indx, num x) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib1f_Callback_2_(unwrap_jso(this), indx, x);
   
-  @DomName('WebGLRenderingContext.vertexAttrib1fv')
-  @DocsEditable()
-  void vertexAttrib1fv(int indx, Float32List values) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib1fv_Callback_2_(unwrap_jso(this), indx, values);
-  
+  void vertexAttrib1fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib1fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib1fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.vertexAttrib2f')
   @DocsEditable()
   void vertexAttrib2f(int indx, num x, num y) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib2f_Callback_3_(unwrap_jso(this), indx, x, y);
   
-  @DomName('WebGLRenderingContext.vertexAttrib2fv')
-  @DocsEditable()
-  void vertexAttrib2fv(int indx, Float32List values) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib2fv_Callback_2_(unwrap_jso(this), indx, values);
-  
+  void vertexAttrib2fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib2fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib2fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.vertexAttrib3f')
   @DocsEditable()
   void vertexAttrib3f(int indx, num x, num y, num z) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib3f_Callback_4_(unwrap_jso(this), indx, x, y, z);
   
-  @DomName('WebGLRenderingContext.vertexAttrib3fv')
-  @DocsEditable()
-  void vertexAttrib3fv(int indx, Float32List values) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib3fv_Callback_2_(unwrap_jso(this), indx, values);
-  
+  void vertexAttrib3fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib3fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib3fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.vertexAttrib4f')
   @DocsEditable()
   void vertexAttrib4f(int indx, num x, num y, num z, num w) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib4f_Callback_5_(unwrap_jso(this), indx, x, y, z, w);
   
-  @DomName('WebGLRenderingContext.vertexAttrib4fv')
-  @DocsEditable()
-  void vertexAttrib4fv(int indx, Float32List values) => _blink.BlinkWebGLRenderingContext.instance.vertexAttrib4fv_Callback_2_(unwrap_jso(this), indx, values);
-  
+  void vertexAttrib4fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib4fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGLRenderingContext.instance.vertexAttrib4fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
   @DomName('WebGLRenderingContext.vertexAttribPointer')
   @DocsEditable()
   void vertexAttribPointer(int indx, int size, int type, bool normalized, int stride, int offset) => _blink.BlinkWebGLRenderingContext.instance.vertexAttribPointer_Callback_6_(unwrap_jso(this), indx, size, type, normalized, stride, offset);
@@ -3585,6 +3728,2929 @@
 
 
 @DocsEditable()
+@DomName('WebGL2RenderingContext')
+@Experimental() // untriaged
+class RenderingContext2 extends DartHtmlDomObject implements _WebGL2RenderingContextBase, _WebGLRenderingContextBase {
+  // To suppress missing implicit constructor warnings.
+  factory RenderingContext2._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static RenderingContext2 internalCreateRenderingContext2() {
+    return new RenderingContext2._internalWrap();
+  }
+
+  factory RenderingContext2._internalWrap() {
+    return new RenderingContext2.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  RenderingContext2.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+  @DomName('WebGL2RenderingContext.ACTIVE_ATTRIBUTES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_ATTRIBUTES = 0x8B89;
+
+  @DomName('WebGL2RenderingContext.ACTIVE_TEXTURE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_TEXTURE = 0x84E0;
+
+  @DomName('WebGL2RenderingContext.ACTIVE_UNIFORMS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ACTIVE_UNIFORMS = 0x8B86;
+
+  @DomName('WebGL2RenderingContext.ALIASED_LINE_WIDTH_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
+
+  @DomName('WebGL2RenderingContext.ALIASED_POINT_SIZE_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
+
+  @DomName('WebGL2RenderingContext.ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALPHA = 0x1906;
+
+  @DomName('WebGL2RenderingContext.ALPHA_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALPHA_BITS = 0x0D55;
+
+  @DomName('WebGL2RenderingContext.ALWAYS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ALWAYS = 0x0207;
+
+  @DomName('WebGL2RenderingContext.ARRAY_BUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ARRAY_BUFFER = 0x8892;
+
+  @DomName('WebGL2RenderingContext.ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ARRAY_BUFFER_BINDING = 0x8894;
+
+  @DomName('WebGL2RenderingContext.ATTACHED_SHADERS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ATTACHED_SHADERS = 0x8B85;
+
+  @DomName('WebGL2RenderingContext.BACK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BACK = 0x0405;
+
+  @DomName('WebGL2RenderingContext.BLEND')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND = 0x0BE2;
+
+  @DomName('WebGL2RenderingContext.BLEND_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_COLOR = 0x8005;
+
+  @DomName('WebGL2RenderingContext.BLEND_DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_DST_ALPHA = 0x80CA;
+
+  @DomName('WebGL2RenderingContext.BLEND_DST_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_DST_RGB = 0x80C8;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION = 0x8009;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION_ALPHA = 0x883D;
+
+  @DomName('WebGL2RenderingContext.BLEND_EQUATION_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_EQUATION_RGB = 0x8009;
+
+  @DomName('WebGL2RenderingContext.BLEND_SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_SRC_ALPHA = 0x80CB;
+
+  @DomName('WebGL2RenderingContext.BLEND_SRC_RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLEND_SRC_RGB = 0x80C9;
+
+  @DomName('WebGL2RenderingContext.BLUE_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BLUE_BITS = 0x0D54;
+
+  @DomName('WebGL2RenderingContext.BOOL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL = 0x8B56;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC2 = 0x8B57;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC3 = 0x8B58;
+
+  @DomName('WebGL2RenderingContext.BOOL_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BOOL_VEC4 = 0x8B59;
+
+  @DomName('WebGL2RenderingContext.BROWSER_DEFAULT_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BROWSER_DEFAULT_WEBGL = 0x9244;
+
+  @DomName('WebGL2RenderingContext.BUFFER_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BUFFER_SIZE = 0x8764;
+
+  @DomName('WebGL2RenderingContext.BUFFER_USAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BUFFER_USAGE = 0x8765;
+
+  @DomName('WebGL2RenderingContext.BYTE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int BYTE = 0x1400;
+
+  @DomName('WebGL2RenderingContext.CCW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CCW = 0x0901;
+
+  @DomName('WebGL2RenderingContext.CLAMP_TO_EDGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CLAMP_TO_EDGE = 0x812F;
+
+  @DomName('WebGL2RenderingContext.COLOR_ATTACHMENT0')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_ATTACHMENT0 = 0x8CE0;
+
+  @DomName('WebGL2RenderingContext.COLOR_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_BUFFER_BIT = 0x00004000;
+
+  @DomName('WebGL2RenderingContext.COLOR_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_CLEAR_VALUE = 0x0C22;
+
+  @DomName('WebGL2RenderingContext.COLOR_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COLOR_WRITEMASK = 0x0C23;
+
+  @DomName('WebGL2RenderingContext.COMPILE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COMPILE_STATUS = 0x8B81;
+
+  @DomName('WebGL2RenderingContext.COMPRESSED_TEXTURE_FORMATS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
+
+  @DomName('WebGL2RenderingContext.CONSTANT_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONSTANT_ALPHA = 0x8003;
+
+  @DomName('WebGL2RenderingContext.CONSTANT_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONSTANT_COLOR = 0x8001;
+
+  @DomName('WebGL2RenderingContext.CONTEXT_LOST_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CONTEXT_LOST_WEBGL = 0x9242;
+
+  @DomName('WebGL2RenderingContext.CULL_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CULL_FACE = 0x0B44;
+
+  @DomName('WebGL2RenderingContext.CULL_FACE_MODE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CULL_FACE_MODE = 0x0B45;
+
+  @DomName('WebGL2RenderingContext.CURRENT_PROGRAM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CURRENT_PROGRAM = 0x8B8D;
+
+  @DomName('WebGL2RenderingContext.CURRENT_VERTEX_ATTRIB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CURRENT_VERTEX_ATTRIB = 0x8626;
+
+  @DomName('WebGL2RenderingContext.CW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int CW = 0x0900;
+
+  @DomName('WebGL2RenderingContext.DECR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DECR = 0x1E03;
+
+  @DomName('WebGL2RenderingContext.DECR_WRAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DECR_WRAP = 0x8508;
+
+  @DomName('WebGL2RenderingContext.DELETE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DELETE_STATUS = 0x8B80;
+
+  @DomName('WebGL2RenderingContext.DEPTH_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_ATTACHMENT = 0x8D00;
+
+  @DomName('WebGL2RenderingContext.DEPTH_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_BITS = 0x0D56;
+
+  @DomName('WebGL2RenderingContext.DEPTH_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_BUFFER_BIT = 0x00000100;
+
+  @DomName('WebGL2RenderingContext.DEPTH_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_CLEAR_VALUE = 0x0B73;
+
+  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_COMPONENT = 0x1902;
+
+  @DomName('WebGL2RenderingContext.DEPTH_COMPONENT16')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_COMPONENT16 = 0x81A5;
+
+  @DomName('WebGL2RenderingContext.DEPTH_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_FUNC = 0x0B74;
+
+  @DomName('WebGL2RenderingContext.DEPTH_RANGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_RANGE = 0x0B70;
+
+  @DomName('WebGL2RenderingContext.DEPTH_STENCIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_STENCIL = 0x84F9;
+
+  @DomName('WebGL2RenderingContext.DEPTH_STENCIL_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
+
+  @DomName('WebGL2RenderingContext.DEPTH_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_TEST = 0x0B71;
+
+  @DomName('WebGL2RenderingContext.DEPTH_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DEPTH_WRITEMASK = 0x0B72;
+
+  @DomName('WebGL2RenderingContext.DITHER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DITHER = 0x0BD0;
+
+  @DomName('WebGL2RenderingContext.DONT_CARE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DONT_CARE = 0x1100;
+
+  @DomName('WebGL2RenderingContext.DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DST_ALPHA = 0x0304;
+
+  @DomName('WebGL2RenderingContext.DST_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DST_COLOR = 0x0306;
+
+  @DomName('WebGL2RenderingContext.DYNAMIC_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int DYNAMIC_DRAW = 0x88E8;
+
+  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ELEMENT_ARRAY_BUFFER = 0x8893;
+
+  @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
+
+  @DomName('WebGL2RenderingContext.EQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int EQUAL = 0x0202;
+
+  @DomName('WebGL2RenderingContext.FASTEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FASTEST = 0x1101;
+
+  @DomName('WebGL2RenderingContext.FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT = 0x1406;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT2 = 0x8B5A;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT3 = 0x8B5B;
+
+  @DomName('WebGL2RenderingContext.FLOAT_MAT4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_MAT4 = 0x8B5C;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC2 = 0x8B50;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC3 = 0x8B51;
+
+  @DomName('WebGL2RenderingContext.FLOAT_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FLOAT_VEC4 = 0x8B52;
+
+  @DomName('WebGL2RenderingContext.FRAGMENT_SHADER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAGMENT_SHADER = 0x8B30;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER = 0x8D40;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_BINDING = 0x8CA6;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_COMPLETE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
+
+  @DomName('WebGL2RenderingContext.FRAMEBUFFER_UNSUPPORTED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
+
+  @DomName('WebGL2RenderingContext.FRONT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT = 0x0404;
+
+  @DomName('WebGL2RenderingContext.FRONT_AND_BACK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT_AND_BACK = 0x0408;
+
+  @DomName('WebGL2RenderingContext.FRONT_FACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FRONT_FACE = 0x0B46;
+
+  @DomName('WebGL2RenderingContext.FUNC_ADD')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_ADD = 0x8006;
+
+  @DomName('WebGL2RenderingContext.FUNC_REVERSE_SUBTRACT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_REVERSE_SUBTRACT = 0x800B;
+
+  @DomName('WebGL2RenderingContext.FUNC_SUBTRACT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int FUNC_SUBTRACT = 0x800A;
+
+  @DomName('WebGL2RenderingContext.GENERATE_MIPMAP_HINT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GENERATE_MIPMAP_HINT = 0x8192;
+
+  @DomName('WebGL2RenderingContext.GEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GEQUAL = 0x0206;
+
+  @DomName('WebGL2RenderingContext.GREATER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GREATER = 0x0204;
+
+  @DomName('WebGL2RenderingContext.GREEN_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int GREEN_BITS = 0x0D53;
+
+  @DomName('WebGL2RenderingContext.HIGH_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int HIGH_FLOAT = 0x8DF2;
+
+  @DomName('WebGL2RenderingContext.HIGH_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int HIGH_INT = 0x8DF5;
+
+  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
+
+  @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
+
+  @DomName('WebGL2RenderingContext.INCR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INCR = 0x1E02;
+
+  @DomName('WebGL2RenderingContext.INCR_WRAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INCR_WRAP = 0x8507;
+
+  @DomName('WebGL2RenderingContext.INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT = 0x1404;
+
+  @DomName('WebGL2RenderingContext.INT_VEC2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC2 = 0x8B53;
+
+  @DomName('WebGL2RenderingContext.INT_VEC3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC3 = 0x8B54;
+
+  @DomName('WebGL2RenderingContext.INT_VEC4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INT_VEC4 = 0x8B55;
+
+  @DomName('WebGL2RenderingContext.INVALID_ENUM')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_ENUM = 0x0500;
+
+  @DomName('WebGL2RenderingContext.INVALID_FRAMEBUFFER_OPERATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
+
+  @DomName('WebGL2RenderingContext.INVALID_OPERATION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_OPERATION = 0x0502;
+
+  @DomName('WebGL2RenderingContext.INVALID_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVALID_VALUE = 0x0501;
+
+  @DomName('WebGL2RenderingContext.INVERT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int INVERT = 0x150A;
+
+  @DomName('WebGL2RenderingContext.KEEP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int KEEP = 0x1E00;
+
+  @DomName('WebGL2RenderingContext.LEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LEQUAL = 0x0203;
+
+  @DomName('WebGL2RenderingContext.LESS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LESS = 0x0201;
+
+  @DomName('WebGL2RenderingContext.LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR = 0x2601;
+
+  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR_MIPMAP_LINEAR = 0x2703;
+
+  @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINEAR_MIPMAP_NEAREST = 0x2701;
+
+  @DomName('WebGL2RenderingContext.LINES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINES = 0x0001;
+
+  @DomName('WebGL2RenderingContext.LINE_LOOP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_LOOP = 0x0002;
+
+  @DomName('WebGL2RenderingContext.LINE_STRIP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_STRIP = 0x0003;
+
+  @DomName('WebGL2RenderingContext.LINE_WIDTH')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINE_WIDTH = 0x0B21;
+
+  @DomName('WebGL2RenderingContext.LINK_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LINK_STATUS = 0x8B82;
+
+  @DomName('WebGL2RenderingContext.LOW_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LOW_FLOAT = 0x8DF0;
+
+  @DomName('WebGL2RenderingContext.LOW_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LOW_INT = 0x8DF3;
+
+  @DomName('WebGL2RenderingContext.LUMINANCE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LUMINANCE = 0x1909;
+
+  @DomName('WebGL2RenderingContext.LUMINANCE_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int LUMINANCE_ALPHA = 0x190A;
+
+  @DomName('WebGL2RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
+
+  @DomName('WebGL2RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
+
+  @DomName('WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
+
+  @DomName('WebGL2RenderingContext.MAX_RENDERBUFFER_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
+
+  @DomName('WebGL2RenderingContext.MAX_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
+
+  @DomName('WebGL2RenderingContext.MAX_TEXTURE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_TEXTURE_SIZE = 0x0D33;
+
+  @DomName('WebGL2RenderingContext.MAX_VARYING_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VARYING_VECTORS = 0x8DFC;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_ATTRIBS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_ATTRIBS = 0x8869;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
+
+  @DomName('WebGL2RenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
+
+  @DomName('WebGL2RenderingContext.MAX_VIEWPORT_DIMS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MAX_VIEWPORT_DIMS = 0x0D3A;
+
+  @DomName('WebGL2RenderingContext.MEDIUM_FLOAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MEDIUM_FLOAT = 0x8DF1;
+
+  @DomName('WebGL2RenderingContext.MEDIUM_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MEDIUM_INT = 0x8DF4;
+
+  @DomName('WebGL2RenderingContext.MIRRORED_REPEAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int MIRRORED_REPEAT = 0x8370;
+
+  @DomName('WebGL2RenderingContext.NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST = 0x2600;
+
+  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_LINEAR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST_MIPMAP_LINEAR = 0x2702;
+
+  @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_NEAREST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEAREST_MIPMAP_NEAREST = 0x2700;
+
+  @DomName('WebGL2RenderingContext.NEVER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NEVER = 0x0200;
+
+  @DomName('WebGL2RenderingContext.NICEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NICEST = 0x1102;
+
+  @DomName('WebGL2RenderingContext.NONE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NONE = 0;
+
+  @DomName('WebGL2RenderingContext.NOTEQUAL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NOTEQUAL = 0x0205;
+
+  @DomName('WebGL2RenderingContext.NO_ERROR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int NO_ERROR = 0;
+
+  @DomName('WebGL2RenderingContext.ONE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE = 1;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_DST_ALPHA = 0x0305;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_DST_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_DST_COLOR = 0x0307;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_SRC_ALPHA = 0x0303;
+
+  @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ONE_MINUS_SRC_COLOR = 0x0301;
+
+  @DomName('WebGL2RenderingContext.OUT_OF_MEMORY')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int OUT_OF_MEMORY = 0x0505;
+
+  @DomName('WebGL2RenderingContext.PACK_ALIGNMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int PACK_ALIGNMENT = 0x0D05;
+
+  @DomName('WebGL2RenderingContext.POINTS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POINTS = 0x0000;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FACTOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_FACTOR = 0x8038;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FILL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_FILL = 0x8037;
+
+  @DomName('WebGL2RenderingContext.POLYGON_OFFSET_UNITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int POLYGON_OFFSET_UNITS = 0x2A00;
+
+  @DomName('WebGL2RenderingContext.RED_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RED_BITS = 0x0D52;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER = 0x8D41;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_ALPHA_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_BINDING = 0x8CA7;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_BLUE_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_DEPTH_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_GREEN_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_HEIGHT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_HEIGHT = 0x8D43;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_RED_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_RED_SIZE = 0x8D50;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_STENCIL_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
+
+  @DomName('WebGL2RenderingContext.RENDERBUFFER_WIDTH')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERBUFFER_WIDTH = 0x8D42;
+
+  @DomName('WebGL2RenderingContext.RENDERER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RENDERER = 0x1F01;
+
+  @DomName('WebGL2RenderingContext.REPEAT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int REPEAT = 0x2901;
+
+  @DomName('WebGL2RenderingContext.REPLACE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int REPLACE = 0x1E01;
+
+  @DomName('WebGL2RenderingContext.RGB')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB = 0x1907;
+
+  @DomName('WebGL2RenderingContext.RGB565')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB565 = 0x8D62;
+
+  @DomName('WebGL2RenderingContext.RGB5_A1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGB5_A1 = 0x8057;
+
+  @DomName('WebGL2RenderingContext.RGBA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGBA = 0x1908;
+
+  @DomName('WebGL2RenderingContext.RGBA4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int RGBA4 = 0x8056;
+
+  @DomName('WebGL2RenderingContext.SAMPLER_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLER_2D = 0x8B5E;
+
+  @DomName('WebGL2RenderingContext.SAMPLER_CUBE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLER_CUBE = 0x8B60;
+
+  @DomName('WebGL2RenderingContext.SAMPLES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLES = 0x80A9;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_BUFFERS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_BUFFERS = 0x80A8;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE = 0x80A0;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_INVERT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
+
+  @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
+
+  @DomName('WebGL2RenderingContext.SCISSOR_BOX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SCISSOR_BOX = 0x0C10;
+
+  @DomName('WebGL2RenderingContext.SCISSOR_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SCISSOR_TEST = 0x0C11;
+
+  @DomName('WebGL2RenderingContext.SHADER_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHADER_TYPE = 0x8B4F;
+
+  @DomName('WebGL2RenderingContext.SHADING_LANGUAGE_VERSION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
+
+  @DomName('WebGL2RenderingContext.SHORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SHORT = 0x1402;
+
+  @DomName('WebGL2RenderingContext.SRC_ALPHA')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_ALPHA = 0x0302;
+
+  @DomName('WebGL2RenderingContext.SRC_ALPHA_SATURATE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_ALPHA_SATURATE = 0x0308;
+
+  @DomName('WebGL2RenderingContext.SRC_COLOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SRC_COLOR = 0x0300;
+
+  @DomName('WebGL2RenderingContext.STATIC_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STATIC_DRAW = 0x88E4;
+
+  @DomName('WebGL2RenderingContext.STENCIL_ATTACHMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_ATTACHMENT = 0x8D20;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_FAIL = 0x8801;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_FUNC = 0x8800;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_REF')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_REF = 0x8CA3;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_VALUE_MASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BACK_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BITS = 0x0D57;
+
+  @DomName('WebGL2RenderingContext.STENCIL_BUFFER_BIT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_BUFFER_BIT = 0x00000400;
+
+  @DomName('WebGL2RenderingContext.STENCIL_CLEAR_VALUE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_CLEAR_VALUE = 0x0B91;
+
+  @DomName('WebGL2RenderingContext.STENCIL_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_FAIL = 0x0B94;
+
+  @DomName('WebGL2RenderingContext.STENCIL_FUNC')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_FUNC = 0x0B92;
+
+  @DomName('WebGL2RenderingContext.STENCIL_INDEX')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_INDEX = 0x1901;
+
+  @DomName('WebGL2RenderingContext.STENCIL_INDEX8')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_INDEX8 = 0x8D48;
+
+  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_FAIL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+
+  @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_PASS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
+
+  @DomName('WebGL2RenderingContext.STENCIL_REF')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_REF = 0x0B97;
+
+  @DomName('WebGL2RenderingContext.STENCIL_TEST')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_TEST = 0x0B90;
+
+  @DomName('WebGL2RenderingContext.STENCIL_VALUE_MASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_VALUE_MASK = 0x0B93;
+
+  @DomName('WebGL2RenderingContext.STENCIL_WRITEMASK')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STENCIL_WRITEMASK = 0x0B98;
+
+  @DomName('WebGL2RenderingContext.STREAM_DRAW')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int STREAM_DRAW = 0x88E0;
+
+  @DomName('WebGL2RenderingContext.SUBPIXEL_BITS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int SUBPIXEL_BITS = 0x0D50;
+
+  @DomName('WebGL2RenderingContext.TEXTURE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE = 0x1702;
+
+  @DomName('WebGL2RenderingContext.TEXTURE0')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE0 = 0x84C0;
+
+  @DomName('WebGL2RenderingContext.TEXTURE1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE1 = 0x84C1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE10')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE10 = 0x84CA;
+
+  @DomName('WebGL2RenderingContext.TEXTURE11')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE11 = 0x84CB;
+
+  @DomName('WebGL2RenderingContext.TEXTURE12')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE12 = 0x84CC;
+
+  @DomName('WebGL2RenderingContext.TEXTURE13')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE13 = 0x84CD;
+
+  @DomName('WebGL2RenderingContext.TEXTURE14')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE14 = 0x84CE;
+
+  @DomName('WebGL2RenderingContext.TEXTURE15')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE15 = 0x84CF;
+
+  @DomName('WebGL2RenderingContext.TEXTURE16')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE16 = 0x84D0;
+
+  @DomName('WebGL2RenderingContext.TEXTURE17')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE17 = 0x84D1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE18')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE18 = 0x84D2;
+
+  @DomName('WebGL2RenderingContext.TEXTURE19')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE19 = 0x84D3;
+
+  @DomName('WebGL2RenderingContext.TEXTURE2')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE2 = 0x84C2;
+
+  @DomName('WebGL2RenderingContext.TEXTURE20')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE20 = 0x84D4;
+
+  @DomName('WebGL2RenderingContext.TEXTURE21')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE21 = 0x84D5;
+
+  @DomName('WebGL2RenderingContext.TEXTURE22')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE22 = 0x84D6;
+
+  @DomName('WebGL2RenderingContext.TEXTURE23')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE23 = 0x84D7;
+
+  @DomName('WebGL2RenderingContext.TEXTURE24')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE24 = 0x84D8;
+
+  @DomName('WebGL2RenderingContext.TEXTURE25')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE25 = 0x84D9;
+
+  @DomName('WebGL2RenderingContext.TEXTURE26')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE26 = 0x84DA;
+
+  @DomName('WebGL2RenderingContext.TEXTURE27')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE27 = 0x84DB;
+
+  @DomName('WebGL2RenderingContext.TEXTURE28')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE28 = 0x84DC;
+
+  @DomName('WebGL2RenderingContext.TEXTURE29')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE29 = 0x84DD;
+
+  @DomName('WebGL2RenderingContext.TEXTURE3')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE3 = 0x84C3;
+
+  @DomName('WebGL2RenderingContext.TEXTURE30')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE30 = 0x84DE;
+
+  @DomName('WebGL2RenderingContext.TEXTURE31')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE31 = 0x84DF;
+
+  @DomName('WebGL2RenderingContext.TEXTURE4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE4 = 0x84C4;
+
+  @DomName('WebGL2RenderingContext.TEXTURE5')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE5 = 0x84C5;
+
+  @DomName('WebGL2RenderingContext.TEXTURE6')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE6 = 0x84C6;
+
+  @DomName('WebGL2RenderingContext.TEXTURE7')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE7 = 0x84C7;
+
+  @DomName('WebGL2RenderingContext.TEXTURE8')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE8 = 0x84C8;
+
+  @DomName('WebGL2RenderingContext.TEXTURE9')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE9 = 0x84C9;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_2D = 0x0DE1;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_BINDING_2D = 0x8069;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_BINDING_CUBE_MAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP = 0x8513;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_MAG_FILTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_MAG_FILTER = 0x2800;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_MIN_FILTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_MIN_FILTER = 0x2801;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_S')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_WRAP_S = 0x2802;
+
+  @DomName('WebGL2RenderingContext.TEXTURE_WRAP_T')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TEXTURE_WRAP_T = 0x2803;
+
+  @DomName('WebGL2RenderingContext.TRIANGLES')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLES = 0x0004;
+
+  @DomName('WebGL2RenderingContext.TRIANGLE_FAN')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLE_FAN = 0x0006;
+
+  @DomName('WebGL2RenderingContext.TRIANGLE_STRIP')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int TRIANGLE_STRIP = 0x0005;
+
+  @DomName('WebGL2RenderingContext.UNPACK_ALIGNMENT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_ALIGNMENT = 0x0CF5;
+
+  @DomName('WebGL2RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
+
+  @DomName('WebGL2RenderingContext.UNPACK_FLIP_Y_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
+
+  @DomName('WebGL2RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_BYTE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_BYTE = 0x1401;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_INT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_INT = 0x1405;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT = 0x1403;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_4_4_4_4')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_5_5_1')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+
+  @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_6_5')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
+
+  @DomName('WebGL2RenderingContext.VALIDATE_STATUS')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VALIDATE_STATUS = 0x8B83;
+
+  @DomName('WebGL2RenderingContext.VENDOR')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VENDOR = 0x1F00;
+
+  @DomName('WebGL2RenderingContext.VERSION')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERSION = 0x1F02;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
+
+  @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
+
+  @DomName('WebGL2RenderingContext.VERTEX_SHADER')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VERTEX_SHADER = 0x8B31;
+
+  @DomName('WebGL2RenderingContext.VIEWPORT')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int VIEWPORT = 0x0BA2;
+
+  @DomName('WebGL2RenderingContext.ZERO')
+  @DocsEditable()
+  @Experimental() // untriaged
+  static const int ZERO = 0;
+
+  @DomName('WebGL2RenderingContext.beginQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void beginQuery(int target, Query query) => _blink.BlinkWebGL2RenderingContext.instance.beginQuery_Callback_2_(unwrap_jso(this), target, unwrap_jso(query));
+  
+  @DomName('WebGL2RenderingContext.beginTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void beginTransformFeedback(int primitiveMode) => _blink.BlinkWebGL2RenderingContext.instance.beginTransformFeedback_Callback_1_(unwrap_jso(this), primitiveMode);
+  
+  @DomName('WebGL2RenderingContext.bindBufferBase')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBufferBase(int target, int index, Buffer buffer) => _blink.BlinkWebGL2RenderingContext.instance.bindBufferBase_Callback_3_(unwrap_jso(this), target, index, unwrap_jso(buffer));
+  
+  @DomName('WebGL2RenderingContext.bindBufferRange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBufferRange(int target, int index, Buffer buffer, int offset, int size) => _blink.BlinkWebGL2RenderingContext.instance.bindBufferRange_Callback_5_(unwrap_jso(this), target, index, unwrap_jso(buffer), offset, size);
+  
+  @DomName('WebGL2RenderingContext.bindSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindSampler(int unit, Sampler sampler) => _blink.BlinkWebGL2RenderingContext.instance.bindSampler_Callback_2_(unwrap_jso(this), unit, unwrap_jso(sampler));
+  
+  @DomName('WebGL2RenderingContext.bindTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindTransformFeedback(int target, TransformFeedback feedback) => _blink.BlinkWebGL2RenderingContext.instance.bindTransformFeedback_Callback_2_(unwrap_jso(this), target, unwrap_jso(feedback));
+  
+  @DomName('WebGL2RenderingContext.bindVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindVertexArray(VertexArrayObject vertexArray) => _blink.BlinkWebGL2RenderingContext.instance.bindVertexArray_Callback_1_(unwrap_jso(this), unwrap_jso(vertexArray));
+  
+  @DomName('WebGL2RenderingContext.blitFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter) => _blink.BlinkWebGL2RenderingContext.instance.blitFramebuffer_Callback_10_(unwrap_jso(this), srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+  
+  @DomName('WebGL2RenderingContext.clearBufferfi')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearBufferfi(int buffer, int drawbuffer, num depth, int stencil) => _blink.BlinkWebGL2RenderingContext.instance.clearBufferfi_Callback_4_(unwrap_jso(this), buffer, drawbuffer, depth, stencil);
+  
+  void clearBufferfv(int buffer, int drawbuffer, value) {
+    if ((value is Float32List) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferfv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferfv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void clearBufferiv(int buffer, int drawbuffer, value) {
+    if ((value is Int32List) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferiv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<int>) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferiv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void clearBufferuiv(int buffer, int drawbuffer, value) {
+    if ((value is Uint32List) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferuiv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<int>) && (drawbuffer is int) && (buffer is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.clearBufferuiv_Callback_3_(unwrap_jso(this), buffer, drawbuffer, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.clientWaitSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int clientWaitSync(Sync sync, int flags, int timeout) => _blink.BlinkWebGL2RenderingContext.instance.clientWaitSync_Callback_3_(unwrap_jso(this), unwrap_jso(sync), flags, timeout);
+  
+  @DomName('WebGL2RenderingContext.compressedTexImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, TypedData data) => _blink.BlinkWebGL2RenderingContext.instance.compressedTexImage3D_Callback_8_(unwrap_jso(this), target, level, internalformat, width, height, depth, border, unwrap_jso(data));
+  
+  @DomName('WebGL2RenderingContext.compressedTexSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, TypedData data) => _blink.BlinkWebGL2RenderingContext.instance.compressedTexSubImage3D_Callback_10_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, width, height, depth, format, unwrap_jso(data));
+  
+  @DomName('WebGL2RenderingContext.copyBufferSubData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyBufferSubData(int readTarget, int writeTarget, int readOffset, int writeOffset, int size) => _blink.BlinkWebGL2RenderingContext.instance.copyBufferSubData_Callback_5_(unwrap_jso(this), readTarget, writeTarget, readOffset, writeOffset, size);
+  
+  @DomName('WebGL2RenderingContext.copyTexSubImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.copyTexSubImage3D_Callback_9_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, x, y, width, height);
+  
+  @DomName('WebGL2RenderingContext.createQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Query createQuery() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createQuery_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Sampler createSampler() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createSampler_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  TransformFeedback createTransformFeedback() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createTransformFeedback_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  VertexArrayObject createVertexArray() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createVertexArray_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.deleteQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteQuery(Query query) => _blink.BlinkWebGL2RenderingContext.instance.deleteQuery_Callback_1_(unwrap_jso(this), unwrap_jso(query));
+  
+  @DomName('WebGL2RenderingContext.deleteSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteSampler(Sampler sampler) => _blink.BlinkWebGL2RenderingContext.instance.deleteSampler_Callback_1_(unwrap_jso(this), unwrap_jso(sampler));
+  
+  @DomName('WebGL2RenderingContext.deleteSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteSync(Sync sync) => _blink.BlinkWebGL2RenderingContext.instance.deleteSync_Callback_1_(unwrap_jso(this), unwrap_jso(sync));
+  
+  @DomName('WebGL2RenderingContext.deleteTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteTransformFeedback(TransformFeedback feedback) => _blink.BlinkWebGL2RenderingContext.instance.deleteTransformFeedback_Callback_1_(unwrap_jso(this), unwrap_jso(feedback));
+  
+  @DomName('WebGL2RenderingContext.deleteVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteVertexArray(VertexArrayObject vertexArray) => _blink.BlinkWebGL2RenderingContext.instance.deleteVertexArray_Callback_1_(unwrap_jso(this), unwrap_jso(vertexArray));
+  
+  @DomName('WebGL2RenderingContext.drawArraysInstanced')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawArraysInstanced(int mode, int first, int count, int instanceCount) => _blink.BlinkWebGL2RenderingContext.instance.drawArraysInstanced_Callback_4_(unwrap_jso(this), mode, first, count, instanceCount);
+  
+  @DomName('WebGL2RenderingContext.drawBuffers')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawBuffers(List<int> buffers) => _blink.BlinkWebGL2RenderingContext.instance.drawBuffers_Callback_1_(unwrap_jso(this), buffers);
+  
+  @DomName('WebGL2RenderingContext.drawElementsInstanced')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawElementsInstanced(int mode, int count, int type, int offset, int instanceCount) => _blink.BlinkWebGL2RenderingContext.instance.drawElementsInstanced_Callback_5_(unwrap_jso(this), mode, count, type, offset, instanceCount);
+  
+  @DomName('WebGL2RenderingContext.drawRangeElements')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawRangeElements(int mode, int start, int end, int count, int type, int offset) => _blink.BlinkWebGL2RenderingContext.instance.drawRangeElements_Callback_6_(unwrap_jso(this), mode, start, end, count, type, offset);
+  
+  @DomName('WebGL2RenderingContext.endQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void endQuery(int target) => _blink.BlinkWebGL2RenderingContext.instance.endQuery_Callback_1_(unwrap_jso(this), target);
+  
+  @DomName('WebGL2RenderingContext.endTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void endTransformFeedback() => _blink.BlinkWebGL2RenderingContext.instance.endTransformFeedback_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.fenceSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Sync fenceSync(int condition, int flags) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.fenceSync_Callback_2_(unwrap_jso(this), condition, flags));
+  
+  @DomName('WebGL2RenderingContext.framebufferTextureLayer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferTextureLayer(int target, int attachment, Texture texture, int level, int layer) => _blink.BlinkWebGL2RenderingContext.instance.framebufferTextureLayer_Callback_5_(unwrap_jso(this), target, attachment, unwrap_jso(texture), level, layer);
+  
+  @DomName('WebGL2RenderingContext.getActiveUniformBlockName')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getActiveUniformBlockName(Program program, int uniformBlockIndex) => _blink.BlinkWebGL2RenderingContext.instance.getActiveUniformBlockName_Callback_2_(unwrap_jso(this), unwrap_jso(program), uniformBlockIndex);
+  
+  @DomName('WebGL2RenderingContext.getActiveUniformBlockParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getActiveUniformBlockParameter(Program program, int uniformBlockIndex, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getActiveUniformBlockParameter_Callback_3_(unwrap_jso(this), unwrap_jso(program), uniformBlockIndex, pname));
+  
+  @DomName('WebGL2RenderingContext.getActiveUniforms')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> getActiveUniforms(Program program, List<int> uniformIndices, int pname) => _blink.BlinkWebGL2RenderingContext.instance.getActiveUniforms_Callback_3_(unwrap_jso(this), unwrap_jso(program), uniformIndices, pname);
+  
+  @DomName('WebGL2RenderingContext.getBufferSubData')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void getBufferSubData(int target, int offset, ByteBuffer returnedData) => _blink.BlinkWebGL2RenderingContext.instance.getBufferSubData_Callback_3_(unwrap_jso(this), target, offset, unwrap_jso(returnedData));
+  
+  @DomName('WebGL2RenderingContext.getFragDataLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getFragDataLocation(Program program, String name) => _blink.BlinkWebGL2RenderingContext.instance.getFragDataLocation_Callback_2_(unwrap_jso(this), unwrap_jso(program), name);
+  
+  @DomName('WebGL2RenderingContext.getIndexedParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getIndexedParameter(int target, int index) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getIndexedParameter_Callback_2_(unwrap_jso(this), target, index));
+  
+  @DomName('WebGL2RenderingContext.getInternalformatParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getInternalformatParameter(int target, int internalformat, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getInternalformatParameter_Callback_3_(unwrap_jso(this), target, internalformat, pname));
+  
+  @DomName('WebGL2RenderingContext.getQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Query getQuery(int target, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getQuery_Callback_2_(unwrap_jso(this), target, pname));
+  
+  @DomName('WebGL2RenderingContext.getQueryParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getQueryParameter(Query query, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getQueryParameter_Callback_2_(unwrap_jso(this), unwrap_jso(query), pname));
+  
+  @DomName('WebGL2RenderingContext.getSamplerParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getSamplerParameter(Sampler sampler, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getSamplerParameter_Callback_2_(unwrap_jso(this), unwrap_jso(sampler), pname));
+  
+  @DomName('WebGL2RenderingContext.getSyncParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getSyncParameter(Sync sync, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getSyncParameter_Callback_2_(unwrap_jso(this), unwrap_jso(sync), pname));
+  
+  @DomName('WebGL2RenderingContext.getTransformFeedbackVarying')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getTransformFeedbackVarying(Program program, int index) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getTransformFeedbackVarying_Callback_2_(unwrap_jso(this), unwrap_jso(program), index));
+  
+  @DomName('WebGL2RenderingContext.getUniformBlockIndex')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getUniformBlockIndex(Program program, String uniformBlockName) => _blink.BlinkWebGL2RenderingContext.instance.getUniformBlockIndex_Callback_2_(unwrap_jso(this), unwrap_jso(program), uniformBlockName);
+  
+  @DomName('WebGL2RenderingContext.getUniformIndices')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<int> getUniformIndices(Program program, List<String> uniformNames) => _blink.BlinkWebGL2RenderingContext.instance.getUniformIndices_Callback_2_(unwrap_jso(this), unwrap_jso(program), uniformNames);
+  
+  @DomName('WebGL2RenderingContext.invalidateFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void invalidateFramebuffer(int target, List<int> attachments) => _blink.BlinkWebGL2RenderingContext.instance.invalidateFramebuffer_Callback_2_(unwrap_jso(this), target, attachments);
+  
+  @DomName('WebGL2RenderingContext.invalidateSubFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void invalidateSubFramebuffer(int target, List<int> attachments, int x, int y, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.invalidateSubFramebuffer_Callback_6_(unwrap_jso(this), target, attachments, x, y, width, height);
+  
+  @DomName('WebGL2RenderingContext.isQuery')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isQuery(Query query) => _blink.BlinkWebGL2RenderingContext.instance.isQuery_Callback_1_(unwrap_jso(this), unwrap_jso(query));
+  
+  @DomName('WebGL2RenderingContext.isSampler')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isSampler(Sampler sampler) => _blink.BlinkWebGL2RenderingContext.instance.isSampler_Callback_1_(unwrap_jso(this), unwrap_jso(sampler));
+  
+  @DomName('WebGL2RenderingContext.isSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isSync(Sync sync) => _blink.BlinkWebGL2RenderingContext.instance.isSync_Callback_1_(unwrap_jso(this), unwrap_jso(sync));
+  
+  @DomName('WebGL2RenderingContext.isTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isTransformFeedback(TransformFeedback feedback) => _blink.BlinkWebGL2RenderingContext.instance.isTransformFeedback_Callback_1_(unwrap_jso(this), unwrap_jso(feedback));
+  
+  @DomName('WebGL2RenderingContext.isVertexArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isVertexArray(VertexArrayObject vertexArray) => _blink.BlinkWebGL2RenderingContext.instance.isVertexArray_Callback_1_(unwrap_jso(this), unwrap_jso(vertexArray));
+  
+  @DomName('WebGL2RenderingContext.pauseTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void pauseTransformFeedback() => _blink.BlinkWebGL2RenderingContext.instance.pauseTransformFeedback_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.readBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void readBuffer(int mode) => _blink.BlinkWebGL2RenderingContext.instance.readBuffer_Callback_1_(unwrap_jso(this), mode);
+  
+  @DomName('WebGL2RenderingContext.renderbufferStorageMultisample')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void renderbufferStorageMultisample(int target, int samples, int internalformat, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.renderbufferStorageMultisample_Callback_5_(unwrap_jso(this), target, samples, internalformat, width, height);
+  
+  @DomName('WebGL2RenderingContext.resumeTransformFeedback')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void resumeTransformFeedback() => _blink.BlinkWebGL2RenderingContext.instance.resumeTransformFeedback_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.samplerParameterf')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void samplerParameterf(Sampler sampler, int pname, num param) => _blink.BlinkWebGL2RenderingContext.instance.samplerParameterf_Callback_3_(unwrap_jso(this), unwrap_jso(sampler), pname, param);
+  
+  @DomName('WebGL2RenderingContext.samplerParameteri')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void samplerParameteri(Sampler sampler, int pname, int param) => _blink.BlinkWebGL2RenderingContext.instance.samplerParameteri_Callback_3_(unwrap_jso(this), unwrap_jso(sampler), pname, param);
+  
+  @DomName('WebGL2RenderingContext.texImage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, TypedData pixels) => _blink.BlinkWebGL2RenderingContext.instance.texImage3D_Callback_10_(unwrap_jso(this), target, level, internalformat, width, height, depth, border, format, type, unwrap_jso(pixels));
+  
+  @DomName('WebGL2RenderingContext.texStorage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texStorage2D(int target, int levels, int internalformat, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.texStorage2D_Callback_5_(unwrap_jso(this), target, levels, internalformat, width, height);
+  
+  @DomName('WebGL2RenderingContext.texStorage3D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texStorage3D(int target, int levels, int internalformat, int width, int height, int depth) => _blink.BlinkWebGL2RenderingContext.instance.texStorage3D_Callback_6_(unwrap_jso(this), target, levels, internalformat, width, height, depth);
+  
+  void texSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int format_OR_width, int height_OR_type, canvas_OR_data_OR_depth_OR_image_OR_video, [int format, int type, TypedData pixels]) {
+    if ((pixels is TypedData || pixels == null) && (type is int) && (format is int) && (canvas_OR_data_OR_depth_OR_image_OR_video is int) && (height_OR_type is int) && (format_OR_width is int) && (zoffset is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage3D_Callback_11_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_data_OR_depth_OR_image_OR_video), format, type, unwrap_jso(pixels));
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is ImageData || canvas_OR_data_OR_depth_OR_image_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (zoffset is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage3D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_data_OR_depth_OR_image_OR_video));
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is ImageElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (zoffset is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage3D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_data_OR_depth_OR_image_OR_video));
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is CanvasElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (zoffset is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage3D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_data_OR_depth_OR_image_OR_video));
+      return;
+    }
+    if ((canvas_OR_data_OR_depth_OR_image_OR_video is VideoElement || canvas_OR_data_OR_depth_OR_image_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (zoffset is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage3D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, zoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_data_OR_depth_OR_image_OR_video));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void transformFeedbackVaryings(Program program, List<String> varyings, int bufferMode) => _blink.BlinkWebGL2RenderingContext.instance.transformFeedbackVaryings_Callback_3_(unwrap_jso(this), unwrap_jso(program), varyings, bufferMode);
+  
+  @DomName('WebGL2RenderingContext.uniform1ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1ui(UniformLocation location, int v0) => _blink.BlinkWebGL2RenderingContext.instance.uniform1ui_Callback_2_(unwrap_jso(this), unwrap_jso(location), v0);
+  
+  @DomName('WebGL2RenderingContext.uniform1uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1uiv(UniformLocation location, List<int> value) => _blink.BlinkWebGL2RenderingContext.instance.uniform1uiv_Callback_2_(unwrap_jso(this), unwrap_jso(location), value);
+  
+  @DomName('WebGL2RenderingContext.uniform2ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2ui(UniformLocation location, int v0, int v1) => _blink.BlinkWebGL2RenderingContext.instance.uniform2ui_Callback_3_(unwrap_jso(this), unwrap_jso(location), v0, v1);
+  
+  @DomName('WebGL2RenderingContext.uniform2uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2uiv(UniformLocation location, List<int> value) => _blink.BlinkWebGL2RenderingContext.instance.uniform2uiv_Callback_2_(unwrap_jso(this), unwrap_jso(location), value);
+  
+  @DomName('WebGL2RenderingContext.uniform3ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3ui(UniformLocation location, int v0, int v1, int v2) => _blink.BlinkWebGL2RenderingContext.instance.uniform3ui_Callback_4_(unwrap_jso(this), unwrap_jso(location), v0, v1, v2);
+  
+  @DomName('WebGL2RenderingContext.uniform3uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3uiv(UniformLocation location, List<int> value) => _blink.BlinkWebGL2RenderingContext.instance.uniform3uiv_Callback_2_(unwrap_jso(this), unwrap_jso(location), value);
+  
+  @DomName('WebGL2RenderingContext.uniform4ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4ui(UniformLocation location, int v0, int v1, int v2, int v3) => _blink.BlinkWebGL2RenderingContext.instance.uniform4ui_Callback_5_(unwrap_jso(this), unwrap_jso(location), v0, v1, v2, v3);
+  
+  @DomName('WebGL2RenderingContext.uniform4uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4uiv(UniformLocation location, List<int> value) => _blink.BlinkWebGL2RenderingContext.instance.uniform4uiv_Callback_2_(unwrap_jso(this), unwrap_jso(location), value);
+  
+  @DomName('WebGL2RenderingContext.uniformBlockBinding')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniformBlockBinding(Program program, int uniformBlockIndex, int uniformBlockBinding) => _blink.BlinkWebGL2RenderingContext.instance.uniformBlockBinding_Callback_3_(unwrap_jso(this), unwrap_jso(program), uniformBlockIndex, uniformBlockBinding);
+  
+  void uniformMatrix2x3fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2x3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2x3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix2x4fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2x4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2x4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix3x2fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3x2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3x2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix3x4fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3x4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3x4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix4x2fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4x2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4x2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix4x3fv(UniformLocation location, bool transpose, value) {
+    if ((value is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4x3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    if ((value is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4x3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(value));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.vertexAttribDivisor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribDivisor(int index, int divisor) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribDivisor_Callback_2_(unwrap_jso(this), index, divisor);
+  
+  @DomName('WebGL2RenderingContext.vertexAttribI4i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4i(int index, int x, int y, int z, int w) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribI4i_Callback_5_(unwrap_jso(this), index, x, y, z, w);
+  
+  @DomName('WebGL2RenderingContext.vertexAttribI4iv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4iv(int index, List<int> v) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribI4iv_Callback_2_(unwrap_jso(this), index, v);
+  
+  @DomName('WebGL2RenderingContext.vertexAttribI4ui')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4ui(int index, int x, int y, int z, int w) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribI4ui_Callback_5_(unwrap_jso(this), index, x, y, z, w);
+  
+  @DomName('WebGL2RenderingContext.vertexAttribI4uiv')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribI4uiv(int index, List<int> v) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribI4uiv_Callback_2_(unwrap_jso(this), index, v);
+  
+  @DomName('WebGL2RenderingContext.vertexAttribIPointer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribIPointer(int index, int size, int type, int stride, int offset) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribIPointer_Callback_5_(unwrap_jso(this), index, size, type, stride, offset);
+  
+  @DomName('WebGL2RenderingContext.waitSync')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void waitSync(Sync sync, int flags, int timeout) => _blink.BlinkWebGL2RenderingContext.instance.waitSync_Callback_3_(unwrap_jso(this), unwrap_jso(sync), flags, timeout);
+  
+  @DomName('WebGL2RenderingContext.canvas')
+  @DocsEditable()
+  @Experimental() // untriaged
+  CanvasElement get canvas => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.canvas_Getter_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.drawingBufferHeight')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get drawingBufferHeight => _blink.BlinkWebGL2RenderingContext.instance.drawingBufferHeight_Getter_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.drawingBufferWidth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int get drawingBufferWidth => _blink.BlinkWebGL2RenderingContext.instance.drawingBufferWidth_Getter_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.activeTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void activeTexture(int texture) => _blink.BlinkWebGL2RenderingContext.instance.activeTexture_Callback_1_(unwrap_jso(this), texture);
+  
+  @DomName('WebGL2RenderingContext.attachShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void attachShader(Program program, Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.attachShader_Callback_2_(unwrap_jso(this), unwrap_jso(program), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.bindAttribLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindAttribLocation(Program program, int index, String name) => _blink.BlinkWebGL2RenderingContext.instance.bindAttribLocation_Callback_3_(unwrap_jso(this), unwrap_jso(program), index, name);
+  
+  @DomName('WebGL2RenderingContext.bindBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindBuffer(int target, Buffer buffer) => _blink.BlinkWebGL2RenderingContext.instance.bindBuffer_Callback_2_(unwrap_jso(this), target, unwrap_jso(buffer));
+  
+  @DomName('WebGL2RenderingContext.bindFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindFramebuffer(int target, Framebuffer framebuffer) => _blink.BlinkWebGL2RenderingContext.instance.bindFramebuffer_Callback_2_(unwrap_jso(this), target, unwrap_jso(framebuffer));
+  
+  @DomName('WebGL2RenderingContext.bindRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindRenderbuffer(int target, Renderbuffer renderbuffer) => _blink.BlinkWebGL2RenderingContext.instance.bindRenderbuffer_Callback_2_(unwrap_jso(this), target, unwrap_jso(renderbuffer));
+  
+  @DomName('WebGL2RenderingContext.bindTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void bindTexture(int target, Texture texture) => _blink.BlinkWebGL2RenderingContext.instance.bindTexture_Callback_2_(unwrap_jso(this), target, unwrap_jso(texture));
+  
+  @DomName('WebGL2RenderingContext.blendColor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendColor(num red, num green, num blue, num alpha) => _blink.BlinkWebGL2RenderingContext.instance.blendColor_Callback_4_(unwrap_jso(this), red, green, blue, alpha);
+  
+  @DomName('WebGL2RenderingContext.blendEquation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendEquation(int mode) => _blink.BlinkWebGL2RenderingContext.instance.blendEquation_Callback_1_(unwrap_jso(this), mode);
+  
+  @DomName('WebGL2RenderingContext.blendEquationSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendEquationSeparate(int modeRGB, int modeAlpha) => _blink.BlinkWebGL2RenderingContext.instance.blendEquationSeparate_Callback_2_(unwrap_jso(this), modeRGB, modeAlpha);
+  
+  @DomName('WebGL2RenderingContext.blendFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendFunc(int sfactor, int dfactor) => _blink.BlinkWebGL2RenderingContext.instance.blendFunc_Callback_2_(unwrap_jso(this), sfactor, dfactor);
+  
+  @DomName('WebGL2RenderingContext.blendFuncSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) => _blink.BlinkWebGL2RenderingContext.instance.blendFuncSeparate_Callback_4_(unwrap_jso(this), srcRGB, dstRGB, srcAlpha, dstAlpha);
+  
+  void bufferData(int target, data_OR_size, int usage) {
+    if ((usage is int) && (data_OR_size is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, unwrap_jso(data_OR_size), usage);
+      return;
+    }
+    if ((usage is int) && (data_OR_size is TypedData) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, unwrap_jso(data_OR_size), usage);
+      return;
+    }
+    if ((usage is int) && (data_OR_size is ByteBuffer || data_OR_size == null) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.bufferData_Callback_3_(unwrap_jso(this), target, unwrap_jso(data_OR_size), usage);
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void bufferSubData(int target, int offset, data) {
+    if ((data is TypedData) && (offset is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.bufferSubData_Callback_3_(unwrap_jso(this), target, offset, unwrap_jso(data));
+      return;
+    }
+    if ((data is ByteBuffer || data == null) && (offset is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.bufferSubData_Callback_3_(unwrap_jso(this), target, offset, unwrap_jso(data));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.checkFramebufferStatus')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int checkFramebufferStatus(int target) => _blink.BlinkWebGL2RenderingContext.instance.checkFramebufferStatus_Callback_1_(unwrap_jso(this), target);
+  
+  @DomName('WebGL2RenderingContext.clear')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clear(int mask) => _blink.BlinkWebGL2RenderingContext.instance.clear_Callback_1_(unwrap_jso(this), mask);
+  
+  @DomName('WebGL2RenderingContext.clearColor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearColor(num red, num green, num blue, num alpha) => _blink.BlinkWebGL2RenderingContext.instance.clearColor_Callback_4_(unwrap_jso(this), red, green, blue, alpha);
+  
+  @DomName('WebGL2RenderingContext.clearDepth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearDepth(num depth) => _blink.BlinkWebGL2RenderingContext.instance.clearDepth_Callback_1_(unwrap_jso(this), depth);
+  
+  @DomName('WebGL2RenderingContext.clearStencil')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void clearStencil(int s) => _blink.BlinkWebGL2RenderingContext.instance.clearStencil_Callback_1_(unwrap_jso(this), s);
+  
+  @DomName('WebGL2RenderingContext.colorMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void colorMask(bool red, bool green, bool blue, bool alpha) => _blink.BlinkWebGL2RenderingContext.instance.colorMask_Callback_4_(unwrap_jso(this), red, green, blue, alpha);
+  
+  @DomName('WebGL2RenderingContext.compileShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compileShader(Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.compileShader_Callback_1_(unwrap_jso(this), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.compressedTexImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, TypedData data) => _blink.BlinkWebGL2RenderingContext.instance.compressedTexImage2D_Callback_7_(unwrap_jso(this), target, level, internalformat, width, height, border, unwrap_jso(data));
+  
+  @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, TypedData data) => _blink.BlinkWebGL2RenderingContext.instance.compressedTexSubImage2D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, width, height, format, unwrap_jso(data));
+  
+  @DomName('WebGL2RenderingContext.copyTexImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border) => _blink.BlinkWebGL2RenderingContext.instance.copyTexImage2D_Callback_8_(unwrap_jso(this), target, level, internalformat, x, y, width, height, border);
+  
+  @DomName('WebGL2RenderingContext.copyTexSubImage2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.copyTexSubImage2D_Callback_8_(unwrap_jso(this), target, level, xoffset, yoffset, x, y, width, height);
+  
+  @DomName('WebGL2RenderingContext.createBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Buffer createBuffer() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createBuffer_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Framebuffer createFramebuffer() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createFramebuffer_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Program createProgram() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createProgram_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Renderbuffer createRenderbuffer() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createRenderbuffer_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.createShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Shader createShader(int type) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createShader_Callback_1_(unwrap_jso(this), type));
+  
+  @DomName('WebGL2RenderingContext.createTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Texture createTexture() => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.createTexture_Callback_0_(unwrap_jso(this)));
+  
+  @DomName('WebGL2RenderingContext.cullFace')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void cullFace(int mode) => _blink.BlinkWebGL2RenderingContext.instance.cullFace_Callback_1_(unwrap_jso(this), mode);
+  
+  @DomName('WebGL2RenderingContext.deleteBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteBuffer(Buffer buffer) => _blink.BlinkWebGL2RenderingContext.instance.deleteBuffer_Callback_1_(unwrap_jso(this), unwrap_jso(buffer));
+  
+  @DomName('WebGL2RenderingContext.deleteFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteFramebuffer(Framebuffer framebuffer) => _blink.BlinkWebGL2RenderingContext.instance.deleteFramebuffer_Callback_1_(unwrap_jso(this), unwrap_jso(framebuffer));
+  
+  @DomName('WebGL2RenderingContext.deleteProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteProgram(Program program) => _blink.BlinkWebGL2RenderingContext.instance.deleteProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.deleteRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteRenderbuffer(Renderbuffer renderbuffer) => _blink.BlinkWebGL2RenderingContext.instance.deleteRenderbuffer_Callback_1_(unwrap_jso(this), unwrap_jso(renderbuffer));
+  
+  @DomName('WebGL2RenderingContext.deleteShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteShader(Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.deleteShader_Callback_1_(unwrap_jso(this), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.deleteTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void deleteTexture(Texture texture) => _blink.BlinkWebGL2RenderingContext.instance.deleteTexture_Callback_1_(unwrap_jso(this), unwrap_jso(texture));
+  
+  @DomName('WebGL2RenderingContext.depthFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthFunc(int func) => _blink.BlinkWebGL2RenderingContext.instance.depthFunc_Callback_1_(unwrap_jso(this), func);
+  
+  @DomName('WebGL2RenderingContext.depthMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthMask(bool flag) => _blink.BlinkWebGL2RenderingContext.instance.depthMask_Callback_1_(unwrap_jso(this), flag);
+  
+  @DomName('WebGL2RenderingContext.depthRange')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void depthRange(num zNear, num zFar) => _blink.BlinkWebGL2RenderingContext.instance.depthRange_Callback_2_(unwrap_jso(this), zNear, zFar);
+  
+  @DomName('WebGL2RenderingContext.detachShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void detachShader(Program program, Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.detachShader_Callback_2_(unwrap_jso(this), unwrap_jso(program), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.disable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disable(int cap) => _blink.BlinkWebGL2RenderingContext.instance.disable_Callback_1_(unwrap_jso(this), cap);
+  
+  @DomName('WebGL2RenderingContext.disableVertexAttribArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void disableVertexAttribArray(int index) => _blink.BlinkWebGL2RenderingContext.instance.disableVertexAttribArray_Callback_1_(unwrap_jso(this), index);
+  
+  @DomName('WebGL2RenderingContext.drawArrays')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawArrays(int mode, int first, int count) => _blink.BlinkWebGL2RenderingContext.instance.drawArrays_Callback_3_(unwrap_jso(this), mode, first, count);
+  
+  @DomName('WebGL2RenderingContext.drawElements')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void drawElements(int mode, int count, int type, int offset) => _blink.BlinkWebGL2RenderingContext.instance.drawElements_Callback_4_(unwrap_jso(this), mode, count, type, offset);
+  
+  @DomName('WebGL2RenderingContext.enable')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void enable(int cap) => _blink.BlinkWebGL2RenderingContext.instance.enable_Callback_1_(unwrap_jso(this), cap);
+  
+  @DomName('WebGL2RenderingContext.enableVertexAttribArray')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void enableVertexAttribArray(int index) => _blink.BlinkWebGL2RenderingContext.instance.enableVertexAttribArray_Callback_1_(unwrap_jso(this), index);
+  
+  @DomName('WebGL2RenderingContext.finish')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void finish() => _blink.BlinkWebGL2RenderingContext.instance.finish_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.flush')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void flush() => _blink.BlinkWebGL2RenderingContext.instance.flush_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.framebufferRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferRenderbuffer(int target, int attachment, int renderbuffertarget, Renderbuffer renderbuffer) => _blink.BlinkWebGL2RenderingContext.instance.framebufferRenderbuffer_Callback_4_(unwrap_jso(this), target, attachment, renderbuffertarget, unwrap_jso(renderbuffer));
+  
+  @DomName('WebGL2RenderingContext.framebufferTexture2D')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void framebufferTexture2D(int target, int attachment, int textarget, Texture texture, int level) => _blink.BlinkWebGL2RenderingContext.instance.framebufferTexture2D_Callback_5_(unwrap_jso(this), target, attachment, textarget, unwrap_jso(texture), level);
+  
+  @DomName('WebGL2RenderingContext.frontFace')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void frontFace(int mode) => _blink.BlinkWebGL2RenderingContext.instance.frontFace_Callback_1_(unwrap_jso(this), mode);
+  
+  @DomName('WebGL2RenderingContext.generateMipmap')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void generateMipmap(int target) => _blink.BlinkWebGL2RenderingContext.instance.generateMipmap_Callback_1_(unwrap_jso(this), target);
+  
+  @DomName('WebGL2RenderingContext.getActiveAttrib')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getActiveAttrib(Program program, int index) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getActiveAttrib_Callback_2_(unwrap_jso(this), unwrap_jso(program), index));
+  
+  @DomName('WebGL2RenderingContext.getActiveUniform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ActiveInfo getActiveUniform(Program program, int index) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getActiveUniform_Callback_2_(unwrap_jso(this), unwrap_jso(program), index));
+  
+  @DomName('WebGL2RenderingContext.getAttachedShaders')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<Shader> getAttachedShaders(Program program) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getAttachedShaders_Callback_1_(unwrap_jso(this), unwrap_jso(program)));
+  
+  @DomName('WebGL2RenderingContext.getAttribLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getAttribLocation(Program program, String name) => _blink.BlinkWebGL2RenderingContext.instance.getAttribLocation_Callback_2_(unwrap_jso(this), unwrap_jso(program), name);
+  
+  @DomName('WebGL2RenderingContext.getBufferParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getBufferParameter(int target, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getBufferParameter_Callback_2_(unwrap_jso(this), target, pname));
+  
+  @DomName('WebGL2RenderingContext.getContextAttributes')
+  @DocsEditable()
+  @Experimental() // untriaged
+   getContextAttributes() => convertNativeDictionaryToDartDictionary(wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getContextAttributes_Callback_0_(unwrap_jso(this))));
+  
+  @DomName('WebGL2RenderingContext.getError')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getError() => _blink.BlinkWebGL2RenderingContext.instance.getError_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.getExtension')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getExtension(String name) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getExtension_Callback_1_(unwrap_jso(this), name));
+  
+  @DomName('WebGL2RenderingContext.getFramebufferAttachmentParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getFramebufferAttachmentParameter(int target, int attachment, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getFramebufferAttachmentParameter_Callback_3_(unwrap_jso(this), target, attachment, pname));
+  
+  @DomName('WebGL2RenderingContext.getParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getParameter(int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getParameter_Callback_1_(unwrap_jso(this), pname));
+  
+  @DomName('WebGL2RenderingContext.getProgramInfoLog')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getProgramInfoLog(Program program) => _blink.BlinkWebGL2RenderingContext.instance.getProgramInfoLog_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.getProgramParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getProgramParameter(Program program, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getProgramParameter_Callback_2_(unwrap_jso(this), unwrap_jso(program), pname));
+  
+  @DomName('WebGL2RenderingContext.getRenderbufferParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getRenderbufferParameter(int target, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getRenderbufferParameter_Callback_2_(unwrap_jso(this), target, pname));
+  
+  @DomName('WebGL2RenderingContext.getShaderInfoLog')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getShaderInfoLog(Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.getShaderInfoLog_Callback_1_(unwrap_jso(this), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.getShaderParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getShaderParameter(Shader shader, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getShaderParameter_Callback_2_(unwrap_jso(this), unwrap_jso(shader), pname));
+  
+  @DomName('WebGL2RenderingContext.getShaderPrecisionFormat')
+  @DocsEditable()
+  @Experimental() // untriaged
+  ShaderPrecisionFormat getShaderPrecisionFormat(int shadertype, int precisiontype) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getShaderPrecisionFormat_Callback_2_(unwrap_jso(this), shadertype, precisiontype));
+  
+  @DomName('WebGL2RenderingContext.getShaderSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  String getShaderSource(Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.getShaderSource_Callback_1_(unwrap_jso(this), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.getSupportedExtensions')
+  @DocsEditable()
+  @Experimental() // untriaged
+  List<String> getSupportedExtensions() => _blink.BlinkWebGL2RenderingContext.instance.getSupportedExtensions_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.getTexParameter')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getTexParameter(int target, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getTexParameter_Callback_2_(unwrap_jso(this), target, pname));
+  
+  @DomName('WebGL2RenderingContext.getUniform')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getUniform(Program program, UniformLocation location) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getUniform_Callback_2_(unwrap_jso(this), unwrap_jso(program), unwrap_jso(location)));
+  
+  @DomName('WebGL2RenderingContext.getUniformLocation')
+  @DocsEditable()
+  @Experimental() // untriaged
+  UniformLocation getUniformLocation(Program program, String name) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getUniformLocation_Callback_2_(unwrap_jso(this), unwrap_jso(program), name));
+  
+  @DomName('WebGL2RenderingContext.getVertexAttrib')
+  @DocsEditable()
+  @Experimental() // untriaged
+  Object getVertexAttrib(int index, int pname) => wrap_jso(_blink.BlinkWebGL2RenderingContext.instance.getVertexAttrib_Callback_2_(unwrap_jso(this), index, pname));
+  
+  @DomName('WebGL2RenderingContext.getVertexAttribOffset')
+  @DocsEditable()
+  @Experimental() // untriaged
+  int getVertexAttribOffset(int index, int pname) => _blink.BlinkWebGL2RenderingContext.instance.getVertexAttribOffset_Callback_2_(unwrap_jso(this), index, pname);
+  
+  @DomName('WebGL2RenderingContext.hint')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void hint(int target, int mode) => _blink.BlinkWebGL2RenderingContext.instance.hint_Callback_2_(unwrap_jso(this), target, mode);
+  
+  @DomName('WebGL2RenderingContext.isBuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isBuffer(Buffer buffer) => _blink.BlinkWebGL2RenderingContext.instance.isBuffer_Callback_1_(unwrap_jso(this), unwrap_jso(buffer));
+  
+  @DomName('WebGL2RenderingContext.isContextLost')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isContextLost() => _blink.BlinkWebGL2RenderingContext.instance.isContextLost_Callback_0_(unwrap_jso(this));
+  
+  @DomName('WebGL2RenderingContext.isEnabled')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isEnabled(int cap) => _blink.BlinkWebGL2RenderingContext.instance.isEnabled_Callback_1_(unwrap_jso(this), cap);
+  
+  @DomName('WebGL2RenderingContext.isFramebuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isFramebuffer(Framebuffer framebuffer) => _blink.BlinkWebGL2RenderingContext.instance.isFramebuffer_Callback_1_(unwrap_jso(this), unwrap_jso(framebuffer));
+  
+  @DomName('WebGL2RenderingContext.isProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isProgram(Program program) => _blink.BlinkWebGL2RenderingContext.instance.isProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.isRenderbuffer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isRenderbuffer(Renderbuffer renderbuffer) => _blink.BlinkWebGL2RenderingContext.instance.isRenderbuffer_Callback_1_(unwrap_jso(this), unwrap_jso(renderbuffer));
+  
+  @DomName('WebGL2RenderingContext.isShader')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isShader(Shader shader) => _blink.BlinkWebGL2RenderingContext.instance.isShader_Callback_1_(unwrap_jso(this), unwrap_jso(shader));
+  
+  @DomName('WebGL2RenderingContext.isTexture')
+  @DocsEditable()
+  @Experimental() // untriaged
+  bool isTexture(Texture texture) => _blink.BlinkWebGL2RenderingContext.instance.isTexture_Callback_1_(unwrap_jso(this), unwrap_jso(texture));
+  
+  @DomName('WebGL2RenderingContext.lineWidth')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void lineWidth(num width) => _blink.BlinkWebGL2RenderingContext.instance.lineWidth_Callback_1_(unwrap_jso(this), width);
+  
+  @DomName('WebGL2RenderingContext.linkProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void linkProgram(Program program) => _blink.BlinkWebGL2RenderingContext.instance.linkProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.pixelStorei')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void pixelStorei(int pname, int param) => _blink.BlinkWebGL2RenderingContext.instance.pixelStorei_Callback_2_(unwrap_jso(this), pname, param);
+  
+  @DomName('WebGL2RenderingContext.polygonOffset')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void polygonOffset(num factor, num units) => _blink.BlinkWebGL2RenderingContext.instance.polygonOffset_Callback_2_(unwrap_jso(this), factor, units);
+  
+  @DomName('WebGL2RenderingContext.readPixels')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void readPixels(int x, int y, int width, int height, int format, int type, TypedData pixels) => _blink.BlinkWebGL2RenderingContext.instance.readPixels_Callback_7_(unwrap_jso(this), x, y, width, height, format, type, unwrap_jso(pixels));
+  
+  @DomName('WebGL2RenderingContext.renderbufferStorage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void renderbufferStorage(int target, int internalformat, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.renderbufferStorage_Callback_4_(unwrap_jso(this), target, internalformat, width, height);
+  
+  @DomName('WebGL2RenderingContext.sampleCoverage')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void sampleCoverage(num value, bool invert) => _blink.BlinkWebGL2RenderingContext.instance.sampleCoverage_Callback_2_(unwrap_jso(this), value, invert);
+  
+  @DomName('WebGL2RenderingContext.scissor')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void scissor(int x, int y, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.scissor_Callback_4_(unwrap_jso(this), x, y, width, height);
+  
+  @DomName('WebGL2RenderingContext.shaderSource')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void shaderSource(Shader shader, String string) => _blink.BlinkWebGL2RenderingContext.instance.shaderSource_Callback_2_(unwrap_jso(this), unwrap_jso(shader), string);
+  
+  @DomName('WebGL2RenderingContext.stencilFunc')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilFunc(int func, int ref, int mask) => _blink.BlinkWebGL2RenderingContext.instance.stencilFunc_Callback_3_(unwrap_jso(this), func, ref, mask);
+  
+  @DomName('WebGL2RenderingContext.stencilFuncSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilFuncSeparate(int face, int func, int ref, int mask) => _blink.BlinkWebGL2RenderingContext.instance.stencilFuncSeparate_Callback_4_(unwrap_jso(this), face, func, ref, mask);
+  
+  @DomName('WebGL2RenderingContext.stencilMask')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilMask(int mask) => _blink.BlinkWebGL2RenderingContext.instance.stencilMask_Callback_1_(unwrap_jso(this), mask);
+  
+  @DomName('WebGL2RenderingContext.stencilMaskSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilMaskSeparate(int face, int mask) => _blink.BlinkWebGL2RenderingContext.instance.stencilMaskSeparate_Callback_2_(unwrap_jso(this), face, mask);
+  
+  @DomName('WebGL2RenderingContext.stencilOp')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilOp(int fail, int zfail, int zpass) => _blink.BlinkWebGL2RenderingContext.instance.stencilOp_Callback_3_(unwrap_jso(this), fail, zfail, zpass);
+  
+  @DomName('WebGL2RenderingContext.stencilOpSeparate')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void stencilOpSeparate(int face, int fail, int zfail, int zpass) => _blink.BlinkWebGL2RenderingContext.instance.stencilOpSeparate_Callback_4_(unwrap_jso(this), face, fail, zfail, zpass);
+  
+  void texImage2D(int target, int level, int internalformat, int format_OR_width, int height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, [int format, int type, TypedData pixels]) {
+    if ((pixels is TypedData || pixels == null) && (type is int) && (format is int) && (border_OR_canvas_OR_image_OR_pixels_OR_video is int) && (height_OR_type is int) && (format_OR_width is int) && (internalformat is int) && (level is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.texImage2D_Callback_9_(unwrap_jso(this), target, level, internalformat, format_OR_width, height_OR_type, unwrap_jso(border_OR_canvas_OR_image_OR_pixels_OR_video), format, type, unwrap_jso(pixels));
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (internalformat is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format_OR_width, height_OR_type, unwrap_jso(border_OR_canvas_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is ImageElement) && (height_OR_type is int) && (format_OR_width is int) && (internalformat is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format_OR_width, height_OR_type, unwrap_jso(border_OR_canvas_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is CanvasElement) && (height_OR_type is int) && (format_OR_width is int) && (internalformat is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format_OR_width, height_OR_type, unwrap_jso(border_OR_canvas_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((border_OR_canvas_OR_image_OR_pixels_OR_video is VideoElement) && (height_OR_type is int) && (format_OR_width is int) && (internalformat is int) && (level is int) && (target is int) && format == null && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texImage2D_Callback_6_(unwrap_jso(this), target, level, internalformat, format_OR_width, height_OR_type, unwrap_jso(border_OR_canvas_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.texParameterf')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texParameterf(int target, int pname, num param) => _blink.BlinkWebGL2RenderingContext.instance.texParameterf_Callback_3_(unwrap_jso(this), target, pname, param);
+  
+  @DomName('WebGL2RenderingContext.texParameteri')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void texParameteri(int target, int pname, int param) => _blink.BlinkWebGL2RenderingContext.instance.texParameteri_Callback_3_(unwrap_jso(this), target, pname, param);
+  
+  void texSubImage2D(int target, int level, int xoffset, int yoffset, int format_OR_width, int height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, [int type, TypedData pixels]) {
+    if ((pixels is TypedData || pixels == null) && (type is int) && (canvas_OR_format_OR_image_OR_pixels_OR_video is int) && (height_OR_type is int) && (format_OR_width is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage2D_Callback_9_(unwrap_jso(this), target, level, xoffset, yoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_format_OR_image_OR_pixels_OR_video), type, unwrap_jso(pixels));
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && (height_OR_type is int) && (format_OR_width is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_format_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is ImageElement) && (height_OR_type is int) && (format_OR_width is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_format_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is CanvasElement) && (height_OR_type is int) && (format_OR_width is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_format_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    if ((canvas_OR_format_OR_image_OR_pixels_OR_video is VideoElement) && (height_OR_type is int) && (format_OR_width is int) && (yoffset is int) && (xoffset is int) && (level is int) && (target is int) && type == null && pixels == null) {
+      _blink.BlinkWebGL2RenderingContext.instance.texSubImage2D_Callback_7_(unwrap_jso(this), target, level, xoffset, yoffset, format_OR_width, height_OR_type, unwrap_jso(canvas_OR_format_OR_image_OR_pixels_OR_video));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform1f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1f(UniformLocation location, num x) => _blink.BlinkWebGL2RenderingContext.instance.uniform1f_Callback_2_(unwrap_jso(this), unwrap_jso(location), x);
+  
+  void uniform1fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform1fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform1fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform1i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform1i(UniformLocation location, int x) => _blink.BlinkWebGL2RenderingContext.instance.uniform1i_Callback_2_(unwrap_jso(this), unwrap_jso(location), x);
+  
+  void uniform1iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform1iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform1iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform2f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2f(UniformLocation location, num x, num y) => _blink.BlinkWebGL2RenderingContext.instance.uniform2f_Callback_3_(unwrap_jso(this), unwrap_jso(location), x, y);
+  
+  void uniform2fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform2fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform2fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform2i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform2i(UniformLocation location, int x, int y) => _blink.BlinkWebGL2RenderingContext.instance.uniform2i_Callback_3_(unwrap_jso(this), unwrap_jso(location), x, y);
+  
+  void uniform2iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform2iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform2iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform3f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3f(UniformLocation location, num x, num y, num z) => _blink.BlinkWebGL2RenderingContext.instance.uniform3f_Callback_4_(unwrap_jso(this), unwrap_jso(location), x, y, z);
+  
+  void uniform3fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform3fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform3fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform3i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform3i(UniformLocation location, int x, int y, int z) => _blink.BlinkWebGL2RenderingContext.instance.uniform3i_Callback_4_(unwrap_jso(this), unwrap_jso(location), x, y, z);
+  
+  void uniform3iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform3iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform3iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform4f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4f(UniformLocation location, num x, num y, num z, num w) => _blink.BlinkWebGL2RenderingContext.instance.uniform4f_Callback_5_(unwrap_jso(this), unwrap_jso(location), x, y, z, w);
+  
+  void uniform4fv(UniformLocation location, v) {
+    if ((v is Float32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform4fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<num>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform4fv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.uniform4i')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void uniform4i(UniformLocation location, int x, int y, int z, int w) => _blink.BlinkWebGL2RenderingContext.instance.uniform4i_Callback_5_(unwrap_jso(this), unwrap_jso(location), x, y, z, w);
+  
+  void uniform4iv(UniformLocation location, v) {
+    if ((v is Int32List) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform4iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    if ((v is List<int>) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniform4iv_Callback_2_(unwrap_jso(this), unwrap_jso(location), unwrap_jso(v));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix2fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix2fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix3fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix3fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  void uniformMatrix4fv(UniformLocation location, bool transpose, array) {
+    if ((array is Float32List) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    if ((array is List<num>) && (transpose is bool) && (location is UniformLocation || location == null)) {
+      _blink.BlinkWebGL2RenderingContext.instance.uniformMatrix4fv_Callback_3_(unwrap_jso(this), unwrap_jso(location), transpose, unwrap_jso(array));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.useProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void useProgram(Program program) => _blink.BlinkWebGL2RenderingContext.instance.useProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.validateProgram')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void validateProgram(Program program) => _blink.BlinkWebGL2RenderingContext.instance.validateProgram_Callback_1_(unwrap_jso(this), unwrap_jso(program));
+  
+  @DomName('WebGL2RenderingContext.vertexAttrib1f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib1f(int indx, num x) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib1f_Callback_2_(unwrap_jso(this), indx, x);
+  
+  void vertexAttrib1fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib1fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib1fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.vertexAttrib2f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib2f(int indx, num x, num y) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib2f_Callback_3_(unwrap_jso(this), indx, x, y);
+  
+  void vertexAttrib2fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib2fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib2fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.vertexAttrib3f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib3f(int indx, num x, num y, num z) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib3f_Callback_4_(unwrap_jso(this), indx, x, y, z);
+  
+  void vertexAttrib3fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib3fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib3fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.vertexAttrib4f')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttrib4f(int indx, num x, num y, num z, num w) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib4f_Callback_5_(unwrap_jso(this), indx, x, y, z, w);
+  
+  void vertexAttrib4fv(int indx, values) {
+    if ((values is Float32List) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib4fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    if ((values is List<num>) && (indx is int)) {
+      _blink.BlinkWebGL2RenderingContext.instance.vertexAttrib4fv_Callback_2_(unwrap_jso(this), indx, unwrap_jso(values));
+      return;
+    }
+    throw new ArgumentError("Incorrect number or type of arguments");
+  }
+
+  @DomName('WebGL2RenderingContext.vertexAttribPointer')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void vertexAttribPointer(int indx, int size, int type, bool normalized, int stride, int offset) => _blink.BlinkWebGL2RenderingContext.instance.vertexAttribPointer_Callback_6_(unwrap_jso(this), indx, size, type, normalized, stride, offset);
+  
+  @DomName('WebGL2RenderingContext.viewport')
+  @DocsEditable()
+  @Experimental() // untriaged
+  void viewport(int x, int y, int width, int height) => _blink.BlinkWebGL2RenderingContext.instance.viewport_Callback_4_(unwrap_jso(this), x, y, width, height);
+  
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('WebGLSampler')
+@Experimental() // untriaged
+class Sampler extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Sampler._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Sampler internalCreateSampler() {
+    return new Sampler._internalWrap();
+  }
+
+  factory Sampler._internalWrap() {
+    return new Sampler.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Sampler.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLShader')
 class Shader extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
@@ -3655,6 +6721,36 @@
 
 
 @DocsEditable()
+@DomName('WebGLSync')
+@Experimental() // untriaged
+class Sync extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory Sync._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static Sync internalCreateSync() {
+    return new Sync._internalWrap();
+  }
+
+  factory Sync._internalWrap() {
+    return new Sync.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  Sync.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLTexture')
 class Texture extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
@@ -3684,6 +6780,36 @@
 
 
 @DocsEditable()
+@DomName('WebGLTransformFeedback')
+@Experimental() // untriaged
+class TransformFeedback extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory TransformFeedback._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static TransformFeedback internalCreateTransformFeedback() {
+    return new TransformFeedback._internalWrap();
+  }
+
+  factory TransformFeedback._internalWrap() {
+    return new TransformFeedback.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  TransformFeedback.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLUniformLocation')
 class UniformLocation extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
@@ -3713,9 +6839,8 @@
 
 
 @DocsEditable()
-@DomName('WebGLVertexArrayObjectOES')
-// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
-@Experimental() // experimental
+@DomName('WebGLVertexArrayObject')
+@Experimental() // untriaged
 class VertexArrayObject extends DartHtmlDomObject {
   // To suppress missing implicit constructor warnings.
   factory VertexArrayObject._() { throw new UnsupportedError("Not supported"); }
@@ -3744,6 +6869,67 @@
 
 
 @DocsEditable()
+@DomName('WebGLVertexArrayObjectOES')
+// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
+@Experimental() // experimental
+class VertexArrayObjectOes extends DartHtmlDomObject {
+  // To suppress missing implicit constructor warnings.
+  factory VertexArrayObjectOes._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static VertexArrayObjectOes internalCreateVertexArrayObjectOes() {
+    return new VertexArrayObjectOes._internalWrap();
+  }
+
+  factory VertexArrayObjectOes._internalWrap() {
+    return new VertexArrayObjectOes.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  VertexArrayObjectOes.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
+@DomName('WebGL2RenderingContextBase')
+@Experimental() // untriaged
+class _WebGL2RenderingContextBase extends DartHtmlDomObject implements _WebGLRenderingContextBase {
+  // To suppress missing implicit constructor warnings.
+  factory _WebGL2RenderingContextBase._() { throw new UnsupportedError("Not supported"); }
+
+  @Deprecated("Internal Use Only")
+  static _WebGL2RenderingContextBase internalCreate_WebGL2RenderingContextBase() {
+    return new _WebGL2RenderingContextBase._internalWrap();
+  }
+
+  factory _WebGL2RenderingContextBase._internalWrap() {
+    return new _WebGL2RenderingContextBase.internal_();
+  }
+
+  @Deprecated("Internal Use Only")
+  _WebGL2RenderingContextBase.internal_() { }
+
+  bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
+  int get hashCode => unwrap_jso(this).hashCode;
+
+}
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable()
 @DomName('WebGLRenderingContextBase')
 @Experimental() // untriaged
 class _WebGLRenderingContextBase extends DartHtmlDomObject {
diff --git a/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart b/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
index 433459d..7af7f45 100644
--- a/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
+++ b/sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
@@ -15,7 +15,6 @@
 import 'dart:_internal';
 import 'dart:html';
 import 'dart:html_common';
-import 'dart:_js_helper' show convertDartClosureToJS, Creates, JSName, Native;
 import 'dart:_foreign_helper' show JS;
 import 'dart:_interceptors' show Interceptor;
 // DO NOT EDIT - unless you are editing documentation as per:
@@ -23,6 +22,8 @@
 // Auto-generated dart:audio library.
 
 
+import 'dart:_js_helper' show convertDartClosureToJS, Creates, JSName, Native,
+    JavaScriptIndexingBehavior;
 
 
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -209,7 +210,7 @@
 // http://www.w3.org/TR/webdatabase/#sqlresultsetrowlist
 @Experimental() // deprecated
 @Native("SQLResultSetRowList")
-class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableListMixin<Map> implements List<Map> {
+class SqlResultSetRowList extends Interceptor with ListMixin<Map>, ImmutableListMixin<Map> implements JavaScriptIndexingBehavior, List<Map> {
   // To suppress missing implicit constructor warnings.
   factory SqlResultSetRowList._() { throw new UnsupportedError("Not supported"); }
 
@@ -221,7 +222,7 @@
     if (JS("bool", "# >>> 0 !== # || # >= #", index,
         index, index, length))
       throw new RangeError.index(index, this);
-    return this.item(index);
+    return JS("Map", "#[#]", this, index);
   }
   void operator[]=(int index, Map value) {
     throw new UnsupportedError("Cannot assign element of immutable List.");
@@ -264,14 +265,7 @@
   @DomName('SQLResultSetRowList.item')
   @DocsEditable()
   @Creates('=Object')
-  Map item(int index) {
-    return convertNativeToDart_Dictionary(_item_1(index));
-  }
-  @JSName('item')
-  @DomName('SQLResultSetRowList.item')
-  @DocsEditable()
-  @Creates('=Object')
-  _item_1(index) native;
+  Object item(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -292,5 +286,5 @@
 
   @DomName('SQLTransaction.executeSql')
   @DocsEditable()
-  void executeSql(String sqlStatement, List<Object> arguments, [SqlStatementCallback callback, SqlStatementErrorCallback errorCallback]) native;
+  void executeSql(String sqlStatement, [List arguments, SqlStatementCallback callback, SqlStatementErrorCallback errorCallback]) native;
 }
diff --git a/sdk/lib/web_sql/dartium/web_sql_dartium.dart b/sdk/lib/web_sql/dartium/web_sql_dartium.dart
index c7e6c93..ee79e22 100644
--- a/sdk/lib/web_sql/dartium/web_sql_dartium.dart
+++ b/sdk/lib/web_sql/dartium/web_sql_dartium.dart
@@ -371,7 +371,7 @@
 
   @DomName('SQLResultSetRowList.item')
   @DocsEditable()
-  Map item(int index) => wrap_jso(_blink.BlinkSQLResultSetRowList.instance.item_Callback_1_(unwrap_jso(this), index));
+  Object item(int index) => wrap_jso(_blink.BlinkSQLResultSetRowList.instance.item_Callback_1_(unwrap_jso(this), index));
   
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -407,8 +407,21 @@
   bool operator ==(other) => unwrap_jso(other) == unwrap_jso(this) || identical(this, other);
   int get hashCode => unwrap_jso(this).hashCode;
 
-  @DomName('SQLTransaction.executeSql')
-  @DocsEditable()
-  void executeSql(String sqlStatement, List<Object> arguments, [SqlStatementCallback callback, SqlStatementErrorCallback errorCallback]) => _blink.BlinkSQLTransaction.instance.executeSql_Callback_4_(unwrap_jso(this), sqlStatement, unwrap_jso(arguments), unwrap_jso((transaction, resultSet) => callback(wrap_jso(transaction), wrap_jso(resultSet))), unwrap_jso((transaction, error) => errorCallback(wrap_jso(transaction), wrap_jso(error))));
-  
+  void executeSql(String sqlStatement, [List arguments, SqlStatementCallback callback, SqlStatementErrorCallback errorCallback]) {
+    if (errorCallback != null) {
+      _blink.BlinkSQLTransaction.instance.executeSql_Callback_4_(unwrap_jso(this), sqlStatement, arguments, unwrap_jso((transaction, resultSet) => callback(wrap_jso(transaction), wrap_jso(resultSet))), unwrap_jso((transaction, error) => errorCallback(wrap_jso(transaction), wrap_jso(error))));
+      return;
+    }
+    if (callback != null) {
+      _blink.BlinkSQLTransaction.instance.executeSql_Callback_3_(unwrap_jso(this), sqlStatement, arguments, unwrap_jso((transaction, resultSet) => callback(wrap_jso(transaction), wrap_jso(resultSet))));
+      return;
+    }
+    if (arguments != null) {
+      _blink.BlinkSQLTransaction.instance.executeSql_Callback_2_(unwrap_jso(this), sqlStatement, arguments);
+      return;
+    }
+    _blink.BlinkSQLTransaction.instance.executeSql_Callback_1_(unwrap_jso(this), sqlStatement);
+    return;
+  }
+
 }
diff --git a/tests/benchmark_smoke/benchmark_smoke.status b/tests/benchmark_smoke/benchmark_smoke.status
index 46f821f..188684a 100644
--- a/tests/benchmark_smoke/benchmark_smoke.status
+++ b/tests/benchmark_smoke/benchmark_smoke.status
@@ -8,3 +8,6 @@
 [ $compiler == dart2js && $runtime == none ]
 *: Fail, Pass # TODO(ahe): Triage these tests.
 
+[ $compiler == dart2js && $cps_ir && $checked ]
+benchmark_smoke: Crash # `assert` not implemented
+
diff --git a/tests/co19/co19-analyzer2.status b/tests/co19/co19-analyzer2.status
index 4ea29a4..7cc7d20 100644
--- a/tests/co19/co19-analyzer2.status
+++ b/tests/co19/co19-analyzer2.status
@@ -5,7 +5,9 @@
 [ $compiler == dart2analyzer ]
 
 WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: fail
+LayoutTests/fast/events/event-creation_t01: Skip # Roll 45 OverflowEvent removed
 LayoutTests/fast/forms/checkValidity-001_t01: fail
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: Skip # Roll 45 clipboardData changed
 Language/Expressions/Assignable_Expressions/syntax_t08: StaticWarning
 Language/Libraries_and_Scripts/Parts/compilation_t15: fail, pass # Issue 23595
 
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index 8ee4e6d..71496c5 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -609,7 +609,6 @@
 LibTest/typed_data/Uint8ClampedList/map_A02_t01: Pass, Slow # Please triage this failure.
 
 [ $compiler == dart2js && $runtime == chrome ]
-
 LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
@@ -656,7 +655,6 @@
 LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Pass, Timeout # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
@@ -688,9 +686,11 @@
 LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/css-generated-content/hit-test-generated-content_t01: Pass, RuntimeError # Please triage this failure
 LayoutTests/fast/css-generated-content/malformed-url_t01: Skip # Times out. Please triage this failure
@@ -759,6 +759,8 @@
 LayoutTests/fast/css/content-language-no-content_t01: RuntimeError # Issue 23506
 LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-quotes-01_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/46
+LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/46
 LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # co19 issue 14
@@ -809,6 +811,7 @@
 LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # https://github.com/dart-lang/co19/issues/47
 LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css/parsing-text-rendering_t01: RuntimeError # Please triage this failure
@@ -844,6 +847,7 @@
 LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # https://github.com/dart-lang/sdk/issues/25928
 LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
@@ -954,6 +958,9 @@
 LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # https://github.com/dart-lang/co19/issues/49
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # https://github.com/dart-lang/co19/issues/49
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # https://github.com/dart-lang/co19/issues/49
 LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
@@ -1056,6 +1063,8 @@
 LayoutTests/fast/forms/textfield-focus-out_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/forms/validationMessage_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/forms/validity-property_t01: RuntimeError # Issue 25155
+LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: RuntimeError # https://github.com/dart-lang/co19/issues/48
+LayoutTests/fast/forms/ValidityState-tooLong-input_t01: RuntimeError # https://github.com/dart-lang/co19/issues/48
 LayoutTests/fast/forms/willvalidate_t01: RuntimeError # Issue 25155
 LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # Please triage this failure
@@ -1208,6 +1217,7 @@
 LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Pass, RuntimeError # Please triage this failure
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Issue 25928
 LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
@@ -1578,6 +1588,7 @@
 LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
@@ -1627,14 +1638,12 @@
 LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
@@ -1647,6 +1656,10 @@
 LayoutTests/fast/text/regional-indicator-symobls_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
 
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+Language/Expressions/Bitwise_Expressions/method_invocation_super_t01: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t04: Pass, Slow # Issue 25940
+
 [ $compiler == dart2js && $runtime == chrome && $system != linux ]
 LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Issue 24398
@@ -3159,6 +3172,11 @@
 [ $compiler == dart2js && $runtime == ff && $system == windows ]
 LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: RuntimeError # Please triage this failure
 WebPlatformTest/html/syntax/parsing/math-parse_t03: RuntimeError # Issue 22564
+Language/Classes/Getters/type_object_t02: RuntimeError, Slow # Issue 25940
+Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t06: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t03: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_wrong_type_t02: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t05: Pass, Slow # Issue 25940
 
 [ $compiler == dart2js && $runtime == ff && $system != windows ]
 LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
@@ -3855,6 +3873,7 @@
 LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: RuntimeError # Issue 25941
 LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
 LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
@@ -9622,3 +9641,9 @@
 LibTest/core/Invocation/isGetter_A01_t01: RuntimeError # Please triage this failure.
 LibTest/core/Invocation/isSetter_A01_t02: RuntimeError # Please triage this failure.
 LibTest/core/Invocation/memberName_A01_t01: RuntimeError # Expect.equals(expected: <Symbol("bar=")>, actual: <Symbol("bar")>) fails.
+
+[ $compiler == dart2js && $cps_ir && $host_checked ]
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Crash # CPS integrity violation After 'GVN' on function(main) Referenced out of scope: Instance of 'ReceiverCheck'
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented, about 75% tests crash
diff --git a/tests/co19/co19-dartium.status b/tests/co19/co19-dartium.status
index eb9b059..76298ff 100644
--- a/tests/co19/co19-dartium.status
+++ b/tests/co19/co19-dartium.status
@@ -7,10 +7,14 @@
 
 [ $compiler == none && $runtime == dartium && $system == macos ]
 LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Skip # Depends on animation timing, commented as known to be flaky in test.  Will not fix.
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # 45 roll
 LayoutTests/fast/writing-mode/broken-ideographic-font_t01: Skip # Timing out on the bots. Please triage this failure.
 LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 21605
 LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Pass, RuntimeError # Issue 21605
 
+[ $compiler == none && $runtime == dartium && $checked  && $system == macos ]
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # 45 roll
+
 [ $compiler == none && $runtime == dartium && $system == windows ]
 LayoutTests/fast/writing-mode/vertical-inline-block-hittest_t01: Pass, RuntimeError # Issue 21605
 WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure.
@@ -19,29 +23,31 @@
 LayoutTests/fast/css/font-face-unicode-range-monospace_t01: RuntimeError # co19-roll r761: Please triage this failure.
 
 [ $compiler == none && $runtime == dartium && ($system == windows || $system == linux) ]
-LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # 45 roll ArrayBuffer failure only on windows/linux.
+LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # 45 roll webgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux bots.
+
 
 [ $compiler == none && $runtime == dartium && $mode == debug ]
 WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: Skip # Issue 19495.
@@ -62,7 +68,7 @@
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-blocks_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # co19-roll r786: Please triage this failure.
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: RuntimeError # co19-roll r786: Please triage this failure.
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Skip # Timedout roll 45.
 LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-intrinsic-dimensions/tables_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # co19-roll r786: Please triage this failure.
@@ -123,7 +129,7 @@
 LayoutTests/fast/text/line-break-after-inline-latin1_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/url/trivial-segments_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/url/trivial_t01: RuntimeError # co19-roll r786: Please triage this failure.
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # https://github.com/dart-lang/co19/issues/21
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Dartium 45 roll
 LayoutTests/fast/xpath/xpath-result-eventlistener-crash_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LibTest/html/Node/ownerDocument_A01_t01: RuntimeError # co19-roll r722: Issue 18251
 WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: RuntimeError # co19-roll r738: Please triage this failure.
@@ -214,7 +220,6 @@
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/alpha_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: Skip # Times out. co19-roll r761: Please triage this failure.
 LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is behind a flag in Chrome
@@ -338,12 +343,10 @@
 LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
 LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Issue 25653
 LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Issue 25653
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 22026
 LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/css-generated-content/hit-test-generated-content_t01: Skip # co19 issue 732.
@@ -394,35 +397,18 @@
 LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # co19-roll r786: Please triage this failure.
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Timeout # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/auto-min-size_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/background-position-serialize_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: Skip # co19 issue 732.
 LayoutTests/fast/css/computed-offset-with-zoom_t01: Skip # co19 issue 732.
-LayoutTests/fast/css/content-language-case-insensitivity_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/content-language-dynamically-added_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/content-language-dynamically-removed_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/content-language-mapped-to-webkit-locale_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/content-language-multiple_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/content-language-no-content_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/content/content-none_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/content/content-normal_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/counters/complex-before_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/cursor-parsing-quirks_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass, RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/ex-unit-with-no-x-height_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # co19-roll r761: Please triage this failure.
@@ -430,17 +416,10 @@
 LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/fontfaceset-events_t01: Pass, RuntimeError # Issue 23433
 LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/getComputedStyle/computed-style-properties_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/image-set-setting_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/important-js-override_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # co19-roll r761: Please triage this failure.
@@ -449,32 +428,24 @@
 LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/nested-at-rules_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/parsing-text-rendering_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/pseudo-any_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/pseudo-valid-unapplied_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/string-quote-binary_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/style-element-process-crash_t01: Skip # Times out. co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # co19-roll r761: Please triage this failure.
 LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # co19-roll r786: Please triage this failure.
@@ -553,23 +524,19 @@
 LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/blur-contenteditable_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/dom/css-innerHTML_t01: RuntimeError # Test is incorrect.
-LayoutTests/fast/dom/css-selectorText_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Bad test can't register HtmlElement.
 LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/dataset_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/document-importNode-arguments_t01: RuntimeError # Please triage this failure.
 LayoutTests/fast/dom/empty-hash-and-search_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/dom/focus-contenteditable_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/getElementsByClassName/011_t01: RuntimeError # Chrome 39 roll. Please triage this failure
 LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # co19-roll r738: Please triage this failure.
@@ -579,8 +546,6 @@
 LayoutTests/fast/dom/option-properties_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # co19-roll r738: Please triage this failure.
@@ -589,9 +554,7 @@
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # co19-roll r738: Please triage this failure.
 LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # co19-roll r786: Please triage this failure.
@@ -599,9 +562,7 @@
 LayoutTests/fast/dynamic/insertAdjacentElement_t01: Skip # Timeout. co19-roll r786: Please triage this failure.
 LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # co19 issue 11.
 LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # co19-roll r786: Please triage this failure.
-LayoutTests/fast/encoding/css-charset-dom_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # co19-roll r786: Please triage this failure.
-LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Timeout # Dartium 45 roll. Issue 25754
 LayoutTests/fast/events/clipboard-clearData_t01: Skip # Timeout. co19-roll r786: Please triage this failure.
 LayoutTests/fast/events/clipboard-dataTransferItemList-remove_t01: RuntimeError # Issue 22532
@@ -619,7 +580,6 @@
 LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/events/nested-event-remove-node-crash_t01: Skip # Flaky timeout. co19-roll r786: Please triage this failure.
-LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/events/scoped/editing-commands_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # co19-roll r786: Please triage this failure.
 LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
@@ -642,7 +602,6 @@
 LayoutTests/fast/filesystem/read-directory-many_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/filesystem/simple-readonly_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/HTMLOptionElement_selected2_t01: Skip # Times out. co19-roll r801: Please triage this failure.
-LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/forms/autofocus-focus-only-once_t01: Skip # Times out. co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Skip # Times out. co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/autofocus-opera-007_t01: Skip # Times out. co19-roll r801: Please triage this failure.
@@ -666,7 +625,6 @@
 LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/input-hit-test-border_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Experimental feature not exposed in Chrome yet
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/listbox-select-all_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # co19-roll r801: Please triage this failure.
@@ -692,7 +650,6 @@
 LayoutTests/fast/forms/textarea-scrollbar-height_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
 LayoutTests/fast/forms/textfield-focus-out_t01: Skip # Times out. co19-roll r801: Please triage this failure.
-LayoutTests/fast/forms/validationMessage_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/html/adjacent-html-context-element_t01:RuntimeError # co19 issue 11.
 LayoutTests/fast/html/hidden-attr_t01: RuntimeError # co19-roll r706.  Please triage this failure.
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # co19-roll r706.  Please triage this failure.
@@ -713,7 +670,6 @@
 LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/inline/reattach-inlines-in-anonymous-blocks-with-out-of-flow-siblings_t01: RuntimeError # co19 issue 11.
 LayoutTests/fast/innerHTML/innerHTML-special-elements_t01: RuntimeError # co19 issue 11.
-LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # co19 issue 11.
 LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/layers/zindex-hit-test_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
@@ -726,7 +682,7 @@
 LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/loader/loadInProgress_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. co19-roll r801: Please triage this failure.
-LayoutTests/fast/loader/onload-policy-ignore-for-frame_t01: Timeout # Dartium 45 roll. Issue 25754
+LayoutTests/fast/loader/onload-policy-ignore-for-frame_t01: Timeout # Dartium 45 roll
 LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: Skip # Times out. co19-roll r801: Please triage this failure.
 LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # co19-roll r801: Please triage this failure.
@@ -743,7 +699,6 @@
 LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/multicol/break-properties_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/multicol/column-width-zero_t01: Pass, RuntimeError # co19 issue 11.
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Dartium 45 roll. Issue 25754
 LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode_t01: RuntimeError # co19 issue 11.
 LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
@@ -803,13 +758,8 @@
 LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: RuntimeError, Pass # Spurious intermittent pass # co19 issue 11.
 LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: RuntimeError, Pass # Spurious intermittent pass # co19 issue 11.
 LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # co19-roll r801: Please triage this failure.
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Dartium 45 roll. Issue 25754
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass # Spurious intermittent pass. # co19 issue 11.
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: Timeout # Dartium 45 roll. Issue 25754
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError # co19-roll r801: Please triage this failure.
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass # Spurious intermittent pass # co19 issue 11.
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: Timeout # Dartium 45 roll. Issue 25754
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass, Timeout # Spurious intermittent pass. # co19 issue 11.
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass, Timeout # co19-roll r801: Please triage this failure.
 LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
 LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # co19 issue 11.
 LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # co19-roll r801: Please triage this failure.
@@ -1244,7 +1194,7 @@
 WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # co19-roll r738: Please triage this failure.
 WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # co19-roll r738: Please triage this failure.
 WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Dartium 45 roll. Issue 25754
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Dartium 45 roll
 WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # co19-roll r738: Please triage this failure.
 WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: RuntimeError, Pass # co19-roll r738: Please triage this failure.  Pass on macos.
 WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # co19-roll r738: Please triage this failure.
@@ -1313,11 +1263,8 @@
 WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Dartium 45 roll. Issue 25754
 WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-005_t01: RuntimeError # Please triage this failure.
 WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-006_t01: RuntimeError # Please triage this failure.
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Dartium 45 roll. Issue 25754
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Dartium 45 roll. Issue 25754
 WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure.
 WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure.
 WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # co19-roll r722: Please triage this failure.
@@ -1344,10 +1291,61 @@
 WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Dartium 45 roll. Issue 25754
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure.
 WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # co19-roll r761: Please triage this failure.
 WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # co19-roll r761: Please triage this failure.
 WebPlatformTest/webstorage/storage_local_setitem_quotaexceedederr_t01: Skip # Times out flakily. co19-roll r761: Please triage this failure.
 WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out flakily. co19-roll r761: Please triage this failure.
+LayoutTests/fast/css/aspect-ratio-inheritance_t01: Skip # 45 Roll No longer supported.
+LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: Skip # 45 Roll No longer supported.
+LayoutTests/fast/css/auto-min-size_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/background-position-serialize_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-case-insensitivity_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-dynamically-added_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-dynamically-removed_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-mapped-to-webkit-locale_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-multiple_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/content-language-no-content_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Skip # 45 Roll failure.
+LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/ex-unit-with-no-x-height_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/getComputedStyle/computed-style-properties_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/image-set-setting_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/important-js-override_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/nested-at-rules_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/parsing-text-rendering_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/pseudo-valid-unapplied_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/string-quote-binary_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # 45 Roll issue dart-lang/co19/issues/25
+LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/dom/css-selectorText_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError #  45 Roll co19 issue https://github.com/dart-lang/co19/issues/36
+LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/26
+LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/27
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+LayoutTests/fast/encoding/css-charset-dom_t01: Skip #  45 Roll No longer supported see issue https://github.com/dart-lang/co19/issues/35
+LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip #  45 Roll No longer supported.
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # 45 roll issue
+LayoutTests/fast/forms/validationMessage_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/28
+LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/29
+LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/34
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/30
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux but failed on mac bots.
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/31
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError #  45 Roll co19 test rewrite issue 25807
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/32
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/33
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index 0fc268d..57ac699 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -52,7 +52,6 @@
 Language/Libraries_and_Scripts/Imports/invalid_uri_t02: Fail
 Language/Libraries_and_Scripts/Exports/invalid_uri_t02: Fail
 Language/Libraries_and_Scripts/Parts/syntax_t06: Fail
-LibTest/math/MutableRectangle/MutableRectangle.fromPoints_A01_t01: Pass, RuntimeError # co19-roll r607: Please triage this failure
 
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $mode == debug ]
 LibTest/core/List/List_class_A01_t02: Pass, Slow
@@ -60,9 +59,6 @@
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && ($arch != x64 && $arch != simarm64 && $arch != arm64) ]
 LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
 
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $arch == mips ]
-LibTest/core/double/toInt_A01_t01: Fail
-
 [ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ($arch == mips || $arch == arm64) ]
 # These tests take too much memory (300 MB) for our 1 GB test machine.
 # co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
@@ -70,10 +66,6 @@
 LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673
 LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673
 
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $arch == mips && $mode == debug ]
-LibTest/isolate/Isolate/spawnUri_A01_t04: Crash, Pass # Issue 17440
-LibTest/isolate/Isolate/spawn_A01_t04: Crash, Pass # Issue 17440
-
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && ($arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simmips || $arch == simarm64) ]
 LibTest/core/Uri/Uri_A06_t03: Skip  # Timeout
 LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip  # Timeout
@@ -99,52 +91,57 @@
 
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) ]
 # co19 update Sep 29, 2015 (3ed795ea02e022ef19c77cf1b6095b7c8f5584d0)
-Language/Classes/Getters/type_object_t01: RuntimeError # Please triage this failure
-Language/Classes/Getters/type_object_t02: RuntimeError # Please triage this failure
-Language/Classes/Setters/syntax_t04: RuntimeError # Please triage this failure
-Language/Classes/Setters/type_object_t01: RuntimeError # Please triage this failure
-Language/Classes/Setters/type_object_t02: RuntimeError # Please triage this failure
-Language/Classes/Static_Methods/type_object_t01: RuntimeError # Please triage this failure
-Language/Classes/Static_Methods/type_object_t02: RuntimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t01: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t02: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t03: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t04: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t05: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t06: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01: CompileTimeError # Please triage this failure
-Language/Libraries_and_Scripts/Imports/namespace_changes_t10: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/Parts/compilation_t09: MissingCompileTimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t04: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t05: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t09: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t10: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t14: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/URIs/syntax_t15: RuntimeError # Please triage this failure
-Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # Please triage this failure
-Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # Please triage this failure
-Language/Mixins/declaring_constructor_t01: MissingCompileTimeError # Please triage this failure
-Language/Mixins/not_object_superclass_t01: MissingCompileTimeError # Please triage this failure
-Language/Mixins/reference_to_super_t01: MissingCompileTimeError # Please triage this failure
+Language/Classes/Getters/type_object_t01: RuntimeError # Issue 23721
+Language/Classes/Getters/type_object_t02: RuntimeError # Issue 23721
+Language/Classes/Setters/syntax_t04: RuntimeError # co19 issue 38
+Language/Classes/Setters/type_object_t01: RuntimeError # Issue 23721
+Language/Classes/Setters/type_object_t02: RuntimeError # Issue 23721
+Language/Classes/Static_Methods/type_object_t01: RuntimeError # Issue 23721
+Language/Classes/Static_Methods/type_object_t02: RuntimeError # Issue 23721
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t01: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t02: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t03: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t04: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t05: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/General_Closurization/class_object_member_t06: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Issue 24472
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01: CompileTimeError # co19 issue 41
+Language/Libraries_and_Scripts/Imports/namespace_changes_t10: RuntimeError # co19 issue 39
+Language/Libraries_and_Scripts/Parts/compilation_t09: MissingCompileTimeError # co19 issue 40
+Language/Libraries_and_Scripts/URIs/syntax_t04: RuntimeError # co19 issue 42
+Language/Libraries_and_Scripts/URIs/syntax_t05: RuntimeError # co19 issue 42
+Language/Libraries_and_Scripts/URIs/syntax_t09: RuntimeError # co19 issue 42
+Language/Libraries_and_Scripts/URIs/syntax_t10: RuntimeError # co19 issue 42
+Language/Libraries_and_Scripts/URIs/syntax_t14: RuntimeError # co19 issue 42
+Language/Libraries_and_Scripts/URIs/syntax_t15: RuntimeError # co19 issue 42
+Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # co19 issue 43
+Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # co19 issue 43
+Language/Mixins/declaring_constructor_t01: MissingCompileTimeError # co19 issue 43
+Language/Mixins/not_object_superclass_t01: MissingCompileTimeError # co19 issue 43 and 44
+Language/Mixins/reference_to_super_t01: MissingCompileTimeError # co19 issue 43 and 44
 
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $checked ]
-Language/Errors_and_Warnings/static_warning_t01: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t03: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t01: RuntimeError # co19 issue 45
+Language/Errors_and_Warnings/static_warning_t02: RuntimeError # co19 issue 45
+Language/Errors_and_Warnings/static_warning_t03: RuntimeError # co19 issue 45
+Language/Errors_and_Warnings/static_warning_t04: RuntimeError # co19 issue 45
+Language/Errors_and_Warnings/static_warning_t05: RuntimeError # co19 issue 45
+Language/Errors_and_Warnings/static_warning_t06: RuntimeError # co19 issue 45
+
+[ $noopt || $compiler == precompiler || $mode == product ]
+Language/Metadata/*: SkipByDesign # Uses dart:mirrors
+
+[ $runtime == dart_precompiled || $runtime == dart_product ]
+LibTest/isolate/Isolate/spawnUri*: Skip # Isolate.spawnUri
 
 [ $noopt || $compiler == precompiler ]
-Language/Metadata/*: SkipByDesign # Uses dart:mirrors
 LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
 LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
 LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
@@ -152,16 +149,6 @@
 Language/Mixins/Mixin_Application/error_t01: Pass
 Language/Mixins/Mixin_Application/error_t02: Pass
 Language/Mixins/declaring_constructor_t01: Pass
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/deferred_type_t01: Pass
-
-[ $runtime == dart_precompiled ]
-LibTest/isolate/Isolate/spawnUri*: RuntimeError # Isolate.spawnUri
-Language/Expressions/Constants/identifier_denotes_a_constant_t05: Crash # Issue 25892
-Language/Expressions/Constants/static_method_t01: Crash # Issue 25892
-
-[ $runtime == dart_product ]
-LibTest/isolate/Isolate/spawnUri*: Skip # Isolate.spawnUri
-Language/Metadata/*: SkipByDesign # Uses dart:mirrors
 
 [ $runtime == vm && $mode == product ]
 LibTest/typed_data/Float32List/runtimeType_A01_t01: Fail,OK  # Expects exact type name.
diff --git a/tests/compiler/dart2js/analyze_api_test.dart b/tests/compiler/dart2js/analyze_api_test.dart
index d4f2f9f..908ae11 100644
--- a/tests/compiler/dart2js/analyze_api_test.dart
+++ b/tests/compiler/dart2js/analyze_api_test.dart
@@ -6,8 +6,8 @@
 
 import 'package:sdk_library_metadata/libraries.dart';
 import 'analyze_helper.dart';
-import "package:async_helper/async_helper.dart";
-
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/diagnostics/messages.dart' show MessageKind;
 /**
  * Map of white-listed warnings and errors.
  *
@@ -17,8 +17,7 @@
  * Use an identifiable suffix of the file uri as key. Use a fixed substring of
  * the error/warning message in the list of white-listings for each file.
  */
-// TODO(johnniwinther): Support canonical URIs as keys and message kinds as
-// values.
+// TODO(johnniwinther): Support canonical URIs as keys.
 const Map<String, List<String>> WHITE_LIST = const {
 };
 
diff --git a/tests/compiler/dart2js/analyze_test_test.dart b/tests/compiler/dart2js/analyze_test_test.dart
index f2565ac..5e28cf0 100644
--- a/tests/compiler/dart2js/analyze_test_test.dart
+++ b/tests/compiler/dart2js/analyze_test_test.dart
@@ -24,8 +24,7 @@
  * Use an identifiable suffix of the file uri as key. Use a fixed substring of
  * the error/warning message in the list of white-listings for each file.
  */
-// TODO(johnniwinther): Support canonical URIs as keys and message kinds as
-// values.
+// TODO(johnniwinther): Support canonical URIs as keys.
 const Map<String, List/*<String|MessageKind>*/> WHITE_LIST = const {
   // Several tests import mirrors; any of these might trigger the warning.
   ".dart": const [
diff --git a/tests/compiler/dart2js/class_set_test.dart b/tests/compiler/dart2js/class_set_test.dart
index 71fbd97..1d3b04f 100644
--- a/tests/compiler/dart2js/class_set_test.dart
+++ b/tests/compiler/dart2js/class_set_test.dart
@@ -411,7 +411,7 @@
     visited = <ClassElement>[];
     classSet.forEachSubclass((ClassElement cls) {
       visited.add(cls);
-      return ForEach.CONTINUE;
+      return IterationStep.CONTINUE;
     }, ClassHierarchyNode.ALL);
 
     Expect.listEquals(expected, visited,
@@ -444,7 +444,7 @@
     visited = <ClassElement>[];
     classSet.forEachSubtype((ClassElement cls) {
       visited.add(cls);
-      return ForEach.CONTINUE;
+      return IterationStep.CONTINUE;
     }, ClassHierarchyNode.ALL);
 
     Expect.listEquals(expected, visited,
@@ -478,14 +478,14 @@
     ClassSet classSet = world.getClassSet(cls);
     List<ClassElement> visited = <ClassElement>[];
 
-    ForEach visit(ClassElement cls) {
+    IterationStep visit(ClassElement cls) {
       visited.add(cls);
       if (cls == stop) {
-        return ForEach.STOP;
+        return IterationStep.STOP;
       } else if (skipSubclasses.contains(cls)) {
-        return ForEach.SKIP_SUBCLASSES;
+        return IterationStep.SKIP_SUBCLASSES;
       }
-      return ForEach.CONTINUE;
+      return IterationStep.CONTINUE;
     }
 
     if (forEachSubtype) {
diff --git a/tests/compiler/dart2js/cps_ir/expected/constructor_9.js b/tests/compiler/dart2js/cps_ir/expected/constructor_9.js
index 05928b3..6240573 100644
--- a/tests/compiler/dart2js/cps_ir/expected/constructor_9.js
+++ b/tests/compiler/dart2js/cps_ir/expected/constructor_9.js
@@ -9,7 +9,15 @@
 // }
 
 function($T) {
-  var v0 = H.setRuntimeTypeInfo(new V.C(), [$T]);
-  v0.C$0();
-  return v0;
+  var line = H.S(H.createRuntimeType(H.runtimeTypeToString($T)));
+  if (typeof dartPrint == "function")
+    dartPrint(line);
+  else if (typeof console == "object" && typeof console.log != "undefined")
+    console.log(line);
+  else if (!(typeof window == "object")) {
+    if (!(typeof print == "function"))
+      throw "Unable to print message: " + String(line);
+    print(line);
+  }
+  return H.setRuntimeTypeInfo(new V.C(), [$T]);
 }
diff --git a/tests/compiler/dart2js/dart2js.status b/tests/compiler/dart2js/dart2js.status
index 888e95f..69b7f3d 100644
--- a/tests/compiler/dart2js/dart2js.status
+++ b/tests/compiler/dart2js/dart2js.status
@@ -49,8 +49,8 @@
 
 # Source information is not correct due to inlining.
 js_backend_cps_ir_source_information_test: Fail
-sourcemaps/source_mapping_operators_test: Fail, Slow # Issue 25304 for checked mode, was: Pass, Slow
-sourcemaps/source_mapping_invokes_test: Fail, Slow # Issue 25304 for checked mode, was: Pass, Slow
+sourcemaps/source_mapping_operators_test: Pass, Slow
+sourcemaps/source_mapping_invokes_test: Pass, Slow
 
 check_elements_invariants_test: Slow, Pass, Timeout # Slow due to inlining in the CPS backend
 
diff --git a/tests/compiler/dart2js/message_kind_helper.dart b/tests/compiler/dart2js/message_kind_helper.dart
index ad46907..c413241 100644
--- a/tests/compiler/dart2js/message_kind_helper.dart
+++ b/tests/compiler/dart2js/message_kind_helper.dart
@@ -57,7 +57,6 @@
 ]);
 
 Future<Compiler> check(MessageTemplate template, Compiler cachedCompiler) {
-  Expect.isNotNull(template.howToFix);
   Expect.isFalse(template.examples.isEmpty);
 
   return Future.forEach(template.examples, (example) {
diff --git a/tests/compiler/dart2js/resolver_test.dart b/tests/compiler/dart2js/resolver_test.dart
index 3396e53..a69ce72 100644
--- a/tests/compiler/dart2js/resolver_test.dart
+++ b/tests/compiler/dart2js/resolver_test.dart
@@ -858,7 +858,7 @@
       DiagnosticCollector collector = compiler.diagnosticCollector;
       Expect.equals(1, collector.warnings.length,
                     'Unexpected warnings: ${collector.warnings}');
-      Expect.equals(MessageKind.MEMBER_NOT_FOUND,
+      Expect.equals(MessageKind.UNDEFINED_GETTER,
                     collector.warnings.first.message.kind);
       Expect.equals(0, collector.errors.length,
                     'Unexpected errors: ${collector.errors}');
@@ -1265,7 +1265,7 @@
           mname = () => null;
         }
       }
-      ''', [MessageKind.SETTER_NOT_FOUND]);
+      ''', [MessageKind.UNDEFINED_SETTER]);
   checkWarningOn('''
       main() { new B().bar(); }
       class B {
@@ -1274,7 +1274,7 @@
           this.mname = () => null;
         }
       }
-      ''', [MessageKind.SETTER_NOT_FOUND]);
+      ''', [MessageKind.UNDEFINED_SETTER]);
 
   // Can't override super methods
   checkWarningOn('''
@@ -1289,7 +1289,7 @@
       }
       ''', [MessageKind.ASSIGNING_METHOD_IN_SUPER,
             // TODO(johnniwinther): Avoid duplicate warnings.
-            MessageKind.SETTER_NOT_FOUND]);
+            MessageKind.UNDEFINED_SETTER]);
 
   // But index operators should be OK
   checkWarningOn('''
@@ -1321,22 +1321,22 @@
         final x = 1;
         x = 2;
       }
-      ''', [MessageKind.CANNOT_RESOLVE_SETTER]);
+      ''', [MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER]);
   checkWarningOn('''
       main() {
         const x = 1;
         x = 2;
       }
-      ''', [MessageKind.CANNOT_RESOLVE_SETTER]);
+      ''', [MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER]);
   checkWarningOn('''
       final x = 1;
       main() { x = 3; }
-      ''', [MessageKind.CANNOT_RESOLVE_SETTER]);
+      ''', [MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER]);
 
   checkWarningOn('''
       const x = 1;
       main() { x = 3; }
-      ''', [MessageKind.CANNOT_RESOLVE_SETTER]);
+      ''', [MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER]);
 
   // Detect assignments to final fields:
   checkWarningOn('''
@@ -1345,7 +1345,7 @@
         final x = 1;
         m() { x = 2; }
       }
-      ''', [MessageKind.SETTER_NOT_FOUND]);
+      ''', [MessageKind.UNDEFINED_SETTER]);
 
   // ... even if 'this' is explicit:
   checkWarningOn('''
@@ -1354,7 +1354,7 @@
         final x = 1;
         m() { this.x = 2; }
       }
-      ''', [MessageKind.SETTER_NOT_FOUND]);
+      ''', [MessageKind.UNDEFINED_SETTER]);
 
   // ... and in super class:
   checkWarningOn('''
@@ -1367,7 +1367,7 @@
       }
       ''', [MessageKind.ASSIGNING_FINAL_FIELD_IN_SUPER,
             // TODO(johnniwinther): Avoid duplicate warnings.
-            MessageKind.SETTER_NOT_FOUND]);
+            MessageKind.UNDEFINED_SETTER]);
 
   // But non-final fields are OK:
   checkWarningOn('''
@@ -1389,9 +1389,9 @@
       class B extends A {
         m() { super.x = 2; }
       }
-      ''', [MessageKind.SETTER_NOT_FOUND_IN_SUPER,
+      ''', [MessageKind.UNDEFINED_SUPER_SETTER,
             // TODO(johnniwinther): Avoid duplicate warnings.
-            MessageKind.SETTER_NOT_FOUND]);
+            MessageKind.UNDEFINED_SETTER]);
 }
 
 /// Helper to test that [script] produces all the given [warnings].
diff --git a/tests/compiler/dart2js/sourcemaps/diff.dart b/tests/compiler/dart2js/sourcemaps/diff.dart
index 6fb4468..4fd31c1 100644
--- a/tests/compiler/dart2js/sourcemaps/diff.dart
+++ b/tests/compiler/dart2js/sourcemaps/diff.dart
@@ -9,6 +9,7 @@
 import 'html_parts.dart';
 import 'output_structure.dart';
 import 'sourcemap_helper.dart';
+import 'sourcemap_html_helper.dart';
 
 enum DiffKind {
   UNMATCHED,
@@ -16,26 +17,97 @@
   IDENTICAL,
 }
 
+/// Id for an output column.
+class DiffColumn {
+  final String type;
+  final int index;
+
+  const DiffColumn(this.type, [this.index]);
+
+  int get hashCode => type.hashCode * 19 + index.hashCode * 23;
+
+  bool operator ==(other) {
+    if (identical(this, other)) return true;
+    if (other is! DiffColumn) return false;
+    return type == other.type && index == other.index;
+  }
+
+  String toString() => '$type${index != null ? index : ''}';
+}
+
+/// A block of code in an output column.
+abstract class DiffColumnBlock {
+  void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context);
+}
+
+/// A block consisting of pure HTML parts.
+class PartsColumnBlock extends DiffColumnBlock {
+  final List<HtmlPart> parts;
+
+  PartsColumnBlock(this.parts);
+
+  void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) {
+    if (parts.isNotEmpty) {
+      for (HtmlPart part in parts) {
+        part.printHtmlOn(htmlBuffer, context);
+      }
+    }
+  }
+}
+
+/// A block consisting of line-per-line JavaScript and source mapped Dart code.
+class CodeLinesColumnBlock extends DiffColumnBlock {
+  final List<CodeLine> jsCodeLines;
+  final Map<CodeLine, List<CodeLine>> jsToDartMap;
+
+  CodeLinesColumnBlock(this.jsCodeLines, this.jsToDartMap);
+
+  void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) {
+    if (jsCodeLines.isNotEmpty) {
+      htmlBuffer.write('<table style="width:100%">');
+      for (CodeLine codeLine in jsCodeLines) {
+        htmlBuffer.write('<tr><td class="${ClassNames.innerCell}">');
+        codeLine.printHtmlOn(htmlBuffer, context);
+        htmlBuffer.write(
+            '</td><td '
+            'class="${ClassNames.innerCell} ${ClassNames.sourceMapped}">');
+        List<CodeLine> lines = jsToDartMap[codeLine];
+        if (lines != null) {
+          for (CodeLine line in lines) {
+            line.printHtmlOn(htmlBuffer,
+                context.from(includeAnnotation: (a) {
+                  CodeLineAnnotation annotation = a.data;
+                  return annotation.annotationType.isSourceMapped;
+                }));
+          }
+        }
+        htmlBuffer.write('</td></tr>');
+      }
+      htmlBuffer.write('</table>');
+    }
+  }
+}
+
 /// A list of columns that should align in output.
 class DiffBlock {
   final DiffKind kind;
-  List<List<HtmlPart>> columns = <List<HtmlPart>>[];
+  Map<DiffColumn, DiffColumnBlock> _columns = <DiffColumn, DiffColumnBlock>{};
 
   DiffBlock(this.kind);
 
-  void addColumn(int index, List<HtmlPart> lines) {
-    if (index >= columns.length) {
-      columns.length = index + 1;
-    }
-    columns[index] = lines;
+  void addColumnBlock(DiffColumn column, DiffColumnBlock block) {
+    _columns[column] = block;
   }
 
-  List<HtmlPart> getColumn(int index) {
-    List<HtmlPart> lines;
-    if (index < columns.length) {
-      lines = columns[index];
+  Iterable<DiffColumn> get columns => _columns.keys;
+
+  void printHtmlOn(DiffColumn column,
+                   StringBuffer htmlBuffer,
+                   HtmlPrintContext context) {
+    DiffColumnBlock block = _columns[column];
+    if (block != null) {
+      block.printHtmlOn(htmlBuffer, context);
     }
-    return lines != null ? lines : const <HtmlPart>[];
   }
 }
 
@@ -176,13 +248,47 @@
       : this.structures = structures,
         this.inputLines = structures.map((s) => s.lines).toList();
 
-  CodeSource codeSourceFromEntities(Iterable<OutputEntity> entities) {
+  /// Compute [CodeSource]s defined by [entities].
+  Iterable<CodeSource> codeSourceFromEntities(Iterable<OutputEntity> entities) {
+    Set<CodeSource> sources = new Set<CodeSource>();
     for (OutputEntity entity in entities) {
       if (entity.codeSource != null) {
-        return entity.codeSource;
+        sources.add(entity.codeSource);
       }
     }
-    return null;
+    return sources;
+  }
+
+  /// Create a block with the code from [codeSources]. The [CodeSource]s in
+  /// [mainSources] are tagged as original code sources, the rest as inlined
+  /// code sources.
+  DiffColumnBlock codeLinesFromCodeSources(
+      Iterable<CodeSource> mainSources,
+      Iterable<CodeSource> codeSources) {
+    List<HtmlPart> parts = <HtmlPart>[];
+    for (CodeSource codeSource in codeSources) {
+      //parts.addAll(codeLinesFromCodeSource(codeSource));
+      String className =
+          mainSources.contains(codeSource)
+              ? ClassNames.originalDart : ClassNames.inlinedDart;
+      parts.add(
+          new TagPart('div',
+              properties: {'class': className},
+              content: codeLinesFromCodeSource(codeSource)));
+    }
+    return new PartsColumnBlock(parts);
+  }
+
+  /// Adds all [CodeSource]s used in [dartCodeLines] to [codeSourceSet].
+  void collectCodeSources(Set<CodeSource> codeSourceSet,
+                          Map<CodeLine, List<CodeLine>> dartCodeLines) {
+    for (List<CodeLine> codeLines in dartCodeLines.values) {
+      for (CodeLine dartCodeLine in codeLines) {
+        if (dartCodeLine.lineAnnotation != null) {
+          codeSourceSet.add(dartCodeLine.lineAnnotation);
+        }
+      }
+    }
   }
 
   /// Checks that lines are added in sequence without gaps or duplicates.
@@ -210,13 +316,30 @@
   /// Creates a block containing the code lines in [range] from input number
   /// [index]. If [codeSource] is provided, the block will contain a
   /// corresponding Dart code column.
-  void handleSkew(int index, Interval range, [CodeSource codeSource]) {
+  void handleSkew(
+      int index,
+      Interval range,
+      [Iterable<CodeSource> mainCodeSources = const <CodeSource>[]]) {
+    if (range.isEmpty) return;
+
+    Set<CodeSource> codeSources = new Set<CodeSource>();
+    codeSources.addAll(mainCodeSources);
+
     DiffBlock block = new DiffBlock(DiffKind.UNMATCHED);
     checkLineInvariant(index, range);
-    block.addColumn(index, inputLines[index].sublist(range.from, range.to));
-    if (codeSource != null) {
-      block.addColumn(2,
-          codeLinesFromCodeSource(sourceFileManager, codeSource));
+    List<CodeLine> jsCodeLines =
+        inputLines[index].sublist(range.from, range.to);
+    Map<CodeLine, List<CodeLine>> dartCodeLines =
+        dartCodeLinesFromJsCodeLines(jsCodeLines);
+    block.addColumnBlock(
+        new DiffColumn('js', index),
+        new CodeLinesColumnBlock(jsCodeLines, dartCodeLines));
+    collectCodeSources(codeSources, dartCodeLines);
+
+    if (codeSources.isNotEmpty) {
+      block.addColumnBlock(
+          const DiffColumn('dart'),
+          codeLinesFromCodeSources(mainCodeSources, codeSources));
     }
     blocks.add(block);
   }
@@ -224,21 +347,38 @@
   /// Create a block containing the code lines in [ranges] from the
   /// corresponding JavaScript inputs. If [codeSource] is provided, the block
   /// will contain a corresponding Dart code column.
-  void addLines(DiffKind kind, List<Interval> ranges, [CodeSource codeSource]) {
+  void addLines(
+      DiffKind kind,
+      List<Interval> ranges,
+      [Iterable<CodeSource> mainCodeSources = const <CodeSource>[]]) {
+    if (ranges.every((range) => range.isEmpty)) return;
+
+    Set<CodeSource> codeSources = new Set<CodeSource>();
+    codeSources.addAll(mainCodeSources);
+
     DiffBlock block = new DiffBlock(kind);
     for (int i = 0; i < ranges.length; i++) {
       checkLineInvariant(i, ranges[i]);
-      block.addColumn(i, inputLines[i].sublist(ranges[i].from, ranges[i].to));
+      List<CodeLine> jsCodeLines =
+          inputLines[i].sublist(ranges[i].from, ranges[i].to);
+      Map<CodeLine, List<CodeLine>> dartCodeLines =
+              dartCodeLinesFromJsCodeLines(jsCodeLines);
+      block.addColumnBlock(
+          new DiffColumn('js', i),
+          new CodeLinesColumnBlock(jsCodeLines, dartCodeLines));
+      collectCodeSources(codeSources, dartCodeLines);
     }
-    if (codeSource != null) {
-      block.addColumn(2,
-          codeLinesFromCodeSource(sourceFileManager, codeSource));
+    if (codeSources.isNotEmpty) {
+      block.addColumnBlock(const DiffColumn('dart'),
+          codeLinesFromCodeSources(mainCodeSources, codeSources));
     }
     blocks.add(block);
   }
 
   /// Merge the code lines in [range1] and [range2] of the corresponding input.
   void addRaw(Interval range1, Interval range2) {
+    if (range1.isEmpty && range2.isEmpty) return;
+
     match(a, b) => a.code == b.code;
 
     List<Interval> currentMatchedIntervals;
@@ -413,32 +553,250 @@
 
     return blocks;
   }
+
+  /// Creates html lines for code lines in [codeSource]. The [sourceFileManager]
+  /// is used to read that text from the source URIs.
+  List<HtmlPart> codeLinesFromCodeSource(CodeSource codeSource) {
+    List<HtmlPart> lines = <HtmlPart>[];
+    SourceFile sourceFile = sourceFileManager.getSourceFile(codeSource.uri);
+    String elementName = codeSource.name;
+    HtmlLine line = new HtmlLine();
+    line.htmlParts.add(new ConstHtmlPart('<span class="comment">'));
+    line.htmlParts.add(new HtmlText(
+        '${elementName}: ${sourceFile.filename}'));
+    line.htmlParts.add(new ConstHtmlPart('</span>'));
+    lines.add(line);
+    if (codeSource.begin != null) {
+      int startLine = sourceFile.getLine(codeSource.begin);
+      int endLine = sourceFile.getLine(codeSource.end) + 1;
+      for (CodeLine codeLine in convertAnnotatedCodeToCodeLines(
+          sourceFile.slowText(),
+          const <Annotation>[],
+          startLine: startLine,
+          endLine: endLine)) {
+        codeLine.lineAnnotation = codeSource;
+        lines.add(codeLine);
+      }
+    }
+    return lines;
+  }
+
+  /// Creates a map from JavaScript [CodeLine]s in [jsCodeLines] to the Dart
+  /// [CodeLine]s references in the source information.
+  Map<CodeLine, List<CodeLine>> dartCodeLinesFromJsCodeLines(
+      List<CodeLine> jsCodeLines) {
+    Map<CodeLine, Interval> codeLineInterval = <CodeLine, Interval>{};
+    Map<CodeLine, List<CodeLine>> jsToDartMap = <CodeLine, List<CodeLine>>{};
+    List<Annotation> annotations = <Annotation>[];
+    Uri currentUri;
+    Interval interval;
+
+    Map<Uri, Set<CodeSource>> codeSourceMap = <Uri, Set<CodeSource>>{};
+
+    for (CodeLine jsCodeLine in jsCodeLines) {
+      for (Annotation annotation in jsCodeLine.annotations) {
+        CodeLineAnnotation codeLineAnnotation = annotation.data;
+        for (CodeSource codeSource in codeLineAnnotation.codeSources) {
+          codeSourceMap.putIfAbsent(codeSource.uri,
+              () => new Set<CodeSource>()).add(codeSource);
+        }
+      }
+    }
+
+    void flush() {
+      if (currentUri == null) return;
+
+      Set<CodeSource> codeSources = codeSourceMap[currentUri];
+      SourceFile sourceFile = sourceFileManager.getSourceFile(currentUri);
+      List<CodeLine> annotatedDartCodeLines =
+          convertAnnotatedCodeToCodeLines(
+              sourceFile.slowText(),
+              annotations,
+              startLine: interval.from,
+              endLine: interval.to,
+              uri: currentUri);
+      if (codeSources != null) {
+        CodeSource currentCodeSource;
+        Interval currentLineInterval;
+        for (CodeLine dartCodeLine in annotatedDartCodeLines) {
+          if (currentCodeSource == null ||
+              !currentLineInterval.contains(dartCodeLine.lineNo)) {
+            currentCodeSource = null;
+            for (CodeSource codeSource in codeSources) {
+              Interval interval = new Interval(
+                  sourceFile.getLine(codeSource.begin),
+                  sourceFile.getLine(codeSource.end) + 1);
+              if (interval.contains(dartCodeLine.lineNo)) {
+                currentCodeSource = codeSource;
+                currentLineInterval = interval;
+                break;
+              }
+            }
+          }
+          if (currentCodeSource != null) {
+            dartCodeLine.lineAnnotation = currentCodeSource;
+          }
+        }
+      }
+
+      int index = 0;
+      for (CodeLine jsCodeLine in codeLineInterval.keys) {
+        List<CodeLine> dartCodeLines =
+            jsToDartMap.putIfAbsent(jsCodeLine, () => <CodeLine>[]);
+        if (dartCodeLines.isEmpty && index < annotatedDartCodeLines.length) {
+          dartCodeLines.add(annotatedDartCodeLines[index++]);
+        }
+      }
+      while (index < annotatedDartCodeLines.length) {
+        jsToDartMap[codeLineInterval.keys.last].add(
+            annotatedDartCodeLines[index++]);
+      }
+
+      currentUri = null;
+    }
+
+    void restart(CodeLine codeLine, CodeLocation codeLocation, int line) {
+      flush();
+
+      currentUri = codeLocation.uri;
+      interval = new Interval(line, line + 1);
+      annotations = <Annotation>[];
+      codeLineInterval.clear();
+      codeLineInterval[codeLine] = interval;
+    }
+
+    for (CodeLine jsCodeLine in jsCodeLines) {
+      for (Annotation annotation in jsCodeLine.annotations) {
+        CodeLineAnnotation codeLineAnnotation = annotation.data;
+
+        for (CodeLocation location in codeLineAnnotation.codeLocations) {
+          SourceFile sourceFile = sourceFileManager.getSourceFile(location.uri);
+          int line = sourceFile.getLine(location.offset);
+          if (currentUri != location.uri) {
+            restart(jsCodeLine, location, line);
+          } else if (interval.inWindow(line, windowSize: 2)) {
+            interval = interval.include(line);
+            codeLineInterval[jsCodeLine] = interval;
+          } else {
+            restart(jsCodeLine, location, line);
+          }
+
+          annotations.add(new Annotation(
+              codeLineAnnotation.annotationType,
+              location.offset,
+              'id=${codeLineAnnotation.annotationId}',
+              data: codeLineAnnotation));
+        }
+      }
+    }
+    flush();
+    return jsToDartMap;
+  }
 }
 
-/// Creates html lines for code lines in [codeSource]. [sourceFileManager] is
-/// used to read that text from the source URIs.
-List<HtmlPart> codeLinesFromCodeSource(
-    SourceFileManager sourceFileManager,
-    CodeSource codeSource) {
-  List<HtmlPart> lines = <HtmlPart>[];
-  SourceFile sourceFile = sourceFileManager.getSourceFile(codeSource.uri);
-  String elementName = codeSource.name;
-  HtmlLine line = new HtmlLine();
-  line.htmlParts.add(new ConstHtmlPart('<span class="comment">'));
-  line.htmlParts.add(new HtmlText(
-      '${elementName}: ${sourceFile.filename}'));
-  line.htmlParts.add(new ConstHtmlPart('</span>'));
-  lines.add(line);
-  if (codeSource.begin != null) {
-    int startLine = sourceFile.getLine(codeSource.begin);
-    int endLine = sourceFile.getLine(codeSource.end);
-    for (int lineNo = startLine; lineNo <= endLine; lineNo++) {
-      String text = sourceFile.getLineText(lineNo);
-      CodeLine codeLine = new CodeLine(lineNo, sourceFile.getOffset(lineNo, 0));
-      codeLine.codeBuffer.write(text);
-      codeLine.htmlParts.add(new HtmlText(text));
-      lines.add(codeLine);
-    }
+const DiffColumn column_js0 = const DiffColumn('js', 0);
+const DiffColumn column_js1 = const DiffColumn('js', 1);
+const DiffColumn column_dart = const DiffColumn('dart');
+
+class ClassNames {
+  static String column(DiffColumn column) => 'column_${column}';
+  static String identical(bool alternate) =>
+      'identical${alternate ? '1' : '2'}';
+  static String corresponding(bool alternate) =>
+      'corresponding${alternate ? '1' : '2'}';
+
+  static const String buttons = 'buttons';
+  static const String comment = 'comment';
+  static const String header = 'header';
+  static const String headerTable = 'header_table';
+  static const String headerColumn = 'header_column';
+  static const String legend = 'legend';
+  static const String table = 'table';
+
+  static const String cell = 'cell';
+  static const String innerCell = 'inner_cell';
+
+  static const String originalDart = 'main_dart';
+  static const String inlinedDart = 'inlined_dart';
+
+  static const String line = 'line';
+  static const String lineNumber = 'line_number';
+  static String colored(int index) => 'colored${index}';
+
+  static const String withSourceInfo = 'with_source_info';
+  static const String withoutSourceInfo = 'without_source_info';
+  static const String additionalSourceInfo = 'additional_source_info';
+  static const String unusedSourceInfo = 'unused_source_info';
+
+  static const String sourceMapped = 'source_mapped';
+  static const String sourceMapping = 'source_mapping';
+  static String sourceMappingIndex(int index) => 'source_mapping${index}';
+
+  static const String markers = 'markers';
+  static const String marker = 'marker';
+}
+
+class AnnotationType {
+  static const WITH_SOURCE_INFO =
+      const AnnotationType(0, ClassNames.withSourceInfo, true);
+  static const WITHOUT_SOURCE_INFO =
+      const AnnotationType(1, ClassNames.withoutSourceInfo, false);
+  static const ADDITIONAL_SOURCE_INFO =
+      const AnnotationType(2, ClassNames.additionalSourceInfo, true);
+  static const UNUSED_SOURCE_INFO =
+      const AnnotationType(3, ClassNames.unusedSourceInfo, false);
+
+  final int index;
+  final String className;
+  final bool isSourceMapped;
+
+  const AnnotationType(this.index, this.className, this.isSourceMapped);
+
+  static const List<AnnotationType> values = const <AnnotationType>[
+    WITH_SOURCE_INFO,
+    WITHOUT_SOURCE_INFO,
+    ADDITIONAL_SOURCE_INFO,
+    UNUSED_SOURCE_INFO];
+}
+
+class CodeLineAnnotation {
+  final int annotationId;
+  final AnnotationType annotationType;
+  final List<CodeLocation> codeLocations;
+  final List<CodeSource> codeSources;
+  final String stepInfo;
+  int sourceMappingIndex;
+
+  CodeLineAnnotation(
+      {this.annotationId,
+       this.annotationType,
+       this.codeLocations,
+       this.codeSources,
+       this.stepInfo,
+       this.sourceMappingIndex});
+
+  Map toJson(JsonStrategy strategy) {
+    return {
+      'annotationId': annotationId,
+      'annotationType': annotationType.index,
+      'codeLocations': codeLocations.map((l) => l.toJson(strategy)).toList(),
+      'codeSources': codeSources.map((c) => c.toJson()).toList(),
+      'stepInfo': stepInfo,
+      'sourceMappingIndex': sourceMappingIndex,
+    };
   }
-  return lines;
+
+  static fromJson(Map json, JsonStrategy strategy) {
+    return new CodeLineAnnotation(
+        annotationId: json['id'],
+        annotationType: AnnotationType.values[json['annotationType']],
+        codeLocations: json['codeLocations']
+            .map((j) => CodeLocation.fromJson(j, strategy))
+            .toList(),
+        codeSources: json['codeSources']
+            .map((j) => CodeSource.fromJson(j))
+            .toList(),
+        stepInfo: json['stepInfo'],
+        sourceMappingIndex: json['sourceMappingIndex']);
+  }
 }
diff --git a/tests/compiler/dart2js/sourcemaps/diff_view.dart b/tests/compiler/dart2js/sourcemaps/diff_view.dart
index c58a21e..1c1090a 100644
--- a/tests/compiler/dart2js/sourcemaps/diff_view.dart
+++ b/tests/compiler/dart2js/sourcemaps/diff_view.dart
@@ -8,6 +8,7 @@
 import 'dart:convert';
 import 'dart:io';
 
+import 'package:compiler/src/common.dart';
 import 'package:compiler/src/commandline_options.dart';
 import 'package:compiler/src/diagnostics/invariant.dart';
 import 'package:compiler/src/elements/elements.dart';
@@ -25,11 +26,6 @@
 import 'sourcemap_html_helper.dart';
 import 'trace_graph.dart';
 
-const String WITH_SOURCE_INFO_STYLE = 'border: solid 1px #FF8080;';
-const String WITHOUT_SOURCE_INFO_STYLE = 'background-color: #8080FF;';
-const String ADDITIONAL_SOURCE_INFO_STYLE = 'border: solid 1px #80FF80;';
-const String UNUSED_SOURCE_INFO_STYLE = 'border: solid 1px #8080FF;';
-
 main(List<String> args) async {
   DEBUG_MODE = true;
   String out = 'out.js.diff_view.html';
@@ -39,14 +35,14 @@
   Map<int, String> loadFrom = {};
   Map<int, String> saveTo = {};
   int argGroup = 0;
-  bool addAnnotations = true;
+  bool showAnnotations = true;
   for (String arg in args) {
     if (arg == '--') {
       currentOptions = [];
       optionSegments.add(currentOptions);
       argGroup++;
     } else if (arg == '-h') {
-      addAnnotations = false;
+      showAnnotations = false;
       print('Hiding annotations');
     } else if (arg == '-l') {
       loadFrom[argGroup] = 'out.js.diff$argGroup.json';
@@ -71,8 +67,9 @@
   if (optionSegments.length == 1) {
     // Use default options; comparing SSA and CPS output using the new
     // source information strategy.
-    options.add([USE_NEW_SOURCE_INFO]..addAll(commonArguments));
-    options.add([USE_NEW_SOURCE_INFO, Flags.useCpsIr]..addAll(commonArguments));
+    options.add([Flags.useNewSourceInfo]..addAll(commonArguments));
+    options.add(
+        [Flags.useNewSourceInfo, Flags.useCpsIr]..addAll(commonArguments));
   } else if (optionSegments.length == 2) {
     // Use alternative options for the second output column.
     options.add(commonArguments);
@@ -92,7 +89,7 @@
     } else {
       print('Compiling ${options[i].join(' ')} $filename');
       CodeLinesResult result = await computeCodeLines(
-          options[i], filename, addAnnotations: addAnnotations);
+          options[i], filename);
       OutputStructure structure = OutputStructure.parse(result.codeLines);
       computeEntityCodeSources(result, structure);
       output = new AnnotatedOutput(
@@ -112,7 +109,9 @@
       sourceFileManager);
 
   outputDiffView(
-      out, outputs, blocks, addAnnotations: addAnnotations);
+      out, outputs, blocks,
+      showMarkers: showAnnotations,
+      showSourceMapped: showAnnotations);
 }
 
 /// Attaches [CodeSource]s to the entities in [structure] using the
@@ -127,6 +126,44 @@
   });
 }
 
+class CodeLineAnnotationJsonStrategy implements JsonStrategy {
+  const CodeLineAnnotationJsonStrategy();
+
+  Map encodeAnnotation(Annotation annotation) {
+    CodeLineAnnotation data = annotation.data;
+    return {
+      'id': annotation.id,
+      'codeOffset': annotation.codeOffset,
+      'title': annotation.title,
+      'data': data.toJson(this),
+    };
+  }
+
+  Annotation decodeAnnotation(Map json) {
+    return new Annotation(
+        json['id'],
+        json['codeOffset'],
+        json['title'],
+        data: CodeLineAnnotation.fromJson(json['data'], this));
+  }
+
+  @override
+  decodeLineAnnotation(json) {
+    if (json != null) {
+      return CodeSource.fromJson(json);
+    }
+    return null;
+  }
+
+  @override
+  encodeLineAnnotation(CodeSource lineAnnotation) {
+    if (lineAnnotation != null) {
+      return lineAnnotation.toJson();
+    }
+    return null;
+  }
+}
+
 /// The structured output of a compilation.
 class AnnotatedOutput {
   final String filename;
@@ -142,7 +179,7 @@
     return {
       'filename': filename,
       'options': options,
-      'structure': structure.toJson(),
+      'structure': structure.toJson(const CodeLineAnnotationJsonStrategy()),
       'coverage': coverage,
     };
   }
@@ -150,7 +187,8 @@
   static AnnotatedOutput fromJson(Map json) {
     String filename = json['filename'];
     List<String> options = json['options'];
-    OutputStructure structure = OutputStructure.fromJson(json['structure']);
+    OutputStructure structure = OutputStructure.fromJson(
+        json['structure'], const CodeLineAnnotationJsonStrategy());
     String coverage = json['coverage'];
     return new AnnotatedOutput(filename, options, structure, coverage);
   }
@@ -175,7 +213,8 @@
     String out,
     List<AnnotatedOutput> outputs,
     List<DiffBlock> blocks,
-    {bool addAnnotations: true}) {
+    {bool showMarkers: true,
+     bool showSourceMapped: true}) {
   assert(outputs[0].filename == outputs[1].filename);
   bool usePre = true;
 
@@ -185,16 +224,16 @@
 <head>
 <title>Diff for ${outputs[0].filename}</title>
 <style>
-.lineNumber {
+.${ClassNames.lineNumber} {
   font-size: smaller;
   color: #888;
 }
-.comment {
+.${ClassNames.comment} {
   font-size: smaller;
   color: #888;
   font-family: initial;
 }
-.header {
+.${ClassNames.header} {
   position: fixed;
   width: 100%;
   background-color: #FFFFFF;
@@ -203,31 +242,39 @@
   height: 42px;
   z-index: 1000;
 }
-.header-table {
+.${ClassNames.headerTable} {
   width: 100%;
   background-color: #400000;
   color: #FFFFFF;
   border-spacing: 0px;
 }
-.header-column {
-  width: 34%;
+.${ClassNames.headerColumn} {
 }
-.legend {
+.${ClassNames.legend} {
   padding: 2px;
 }
-.table {
+.${ClassNames.buttons} {
+  position: fixed;
+  right: 0px;
+  top: 0px;
+  width: 220px;
+  background-color: #FFFFFF;
+  border: 1px solid #C0C0C0;
+  z-index: 2000;
+}
+.${ClassNames.table} {
   position: absolute;
   left: 0px;
   top: 42px;
   width: 100%;
   border-spacing: 0px;
 }
-.cell {
-  max-width: 500px;
+.${ClassNames.cell}, 
+.${ClassNames.innerCell}, 
+.${ClassNames.originalDart}, 
+.${ClassNames.inlinedDart} {
   overflow-y: hidden;
   vertical-align: top;
-  border-top: 1px solid #F0F0F0;
-  border-left: 1px solid #F0F0F0;
 ''');
   if (usePre) {
     sb.write('''
@@ -245,89 +292,191 @@
   font-family: monospace;
   padding: 0px;
 }
-.corresponding1 {
+.${ClassNames.cell} {
+  border-top: 1px solid #F0F0F0;
+  border-left: 1px solid #C0C0C0;
+}
+.${ClassNames.innerCell} {
+  /*border-top: 1px solid #F8F8F8;*/
+  width: 50%;
+  max-width: 250px;
+}
+.${ClassNames.corresponding(false)} {
   background-color: #FFFFE0;
 }
-.corresponding2 {
+.${ClassNames.corresponding(true)} {
   background-color: #EFEFD0;
 }
-.identical1 {
+.${ClassNames.identical(false)} {
   background-color: #E0F0E0;
 }
-.identical2 {
+.${ClassNames.identical(true)} {
   background-color: #C0E0C0;
 }
-.line {
+.${ClassNames.line} {
   padding-left: 7em;
   text-indent: -7em;
   margin: 0px;
 }
-.column0 {
+.${ClassNames.column(column_js0)} {
+  max-width: 500px;
+  width: 500px;
 }
-.column1 {
+.${ClassNames.column(column_js1)} {
+  max-width: 500px;
+  width: 500px;
 }
-.column2 {
+.${ClassNames.column(column_dart)} {
+  max-width: 300px;
+  width: 300px;
+}
+.${ClassNames.colored(0)} {
+  color: #FF0000;
+}
+.${ClassNames.colored(1)} {
+  color: #C0C000;
+}
+.${ClassNames.colored(2)} {
+  color: #008000;
+}
+.${ClassNames.colored(3)} {
+  color: #00C0C0;
+}
+.${ClassNames.withSourceInfo} {
+  border: solid 1px #FF8080;
+}
+.${ClassNames.withoutSourceInfo} {
+  background-color: #8080FF;
+}
+.${ClassNames.additionalSourceInfo} {
+  border: solid 1px #80FF80;
+}
+.${ClassNames.unusedSourceInfo} {
+  border: solid 1px #8080FF;
+}
+.${ClassNames.originalDart} {
+}
+.${ClassNames.inlinedDart} {
+}
+''');
+  for (int i = 0; i < HUE_COUNT; i++) {
+    sb.write('''
+.${ClassNames.sourceMappingIndex(i)} {
+  background-color: ${toColorCss(i)};
+}
+''');
+  }
+  sb.write('''
+.${ClassNames.sourceMapped} {
+  ${showSourceMapped ? '' : 'display: none;'}
+}
+.${ClassNames.sourceMapping} {
+  ${showSourceMapped ? '' : 'border: 0px;'}
+  ${showSourceMapped ? '' : 'background-color: transparent;'}
+}
+.${ClassNames.markers} {
+  ${showMarkers ? '' : 'display: none;'}
+}
+.${ClassNames.marker} {
+  ${showMarkers ? '' : 'border: 0px;'}
+  ${showMarkers ? '' : 'background-color: transparent;'}
 }
 </style>
+<script>
+function isChecked(name) {
+  var box = document.getElementById('box-' + name);
+  return box.checked;
+}
+function toggleDisplay(name) {
+  var checked = isChecked(name);
+  var styleSheet = document.styleSheets[0];
+  for (var index = 0; index < styleSheet.cssRules.length; index++) {
+    var cssRule = styleSheet.cssRules[index];
+    if (cssRule.selectorText == '.' + name) {
+      if (checked) {
+        cssRule.style.removeProperty('display');
+      } else {
+        cssRule.style.display = 'none';
+      }
+    }
+  }
+  return checked;
+}
+function toggle${ClassNames.sourceMapped}() {
+  var checked = toggleDisplay('${ClassNames.sourceMapped}');
+  toggleAnnotations(checked, '${ClassNames.sourceMapping}');
+}
+function toggle${ClassNames.markers}() {
+  var checked = toggleDisplay('${ClassNames.markers}');
+  toggleAnnotations(checked, '${ClassNames.marker}');
+}
+function toggleAnnotations(show, name) {
+  var styleSheet = document.styleSheets[0];
+  for (var index = 0; index < styleSheet.cssRules.length; index++) {
+    var cssRule = styleSheet.cssRules[index];
+    if (cssRule.selectorText == '.' + name) {
+      if (show) {
+        cssRule.style.removeProperty('border');
+        cssRule.style.removeProperty('background-color');
+      } else {
+        cssRule.style.border = '0px';
+        cssRule.style.backgroundColor = 'transparent';
+      }
+    }
+  }
+} 
+</script>
 </head>
 <body>''');
 
   sb.write('''
-<div class="header">
-<table class="header-table"><tr>
-<td class="header-column">[${outputs[0].options.join(',')}]</td>
-<td class="header-column">[${outputs[1].options.join(',')}]</td>
-<td class="header-column">Dart code</td>
-</tr></table>
-<div class="legend">
-  <span class="identical1">&nbsp;&nbsp;&nbsp;</span> 
-  <span class="identical2">&nbsp;&nbsp;&nbsp;</span>
+<div class="${ClassNames.header}">
+<div class="${ClassNames.legend}">
+  <span class="${ClassNames.identical(false)}">&nbsp;&nbsp;&nbsp;</span> 
+  <span class="${ClassNames.identical(true)}">&nbsp;&nbsp;&nbsp;</span>
   identical blocks
-  <span class="corresponding1">&nbsp;&nbsp;&nbsp;</span>
-  <span class="corresponding2">&nbsp;&nbsp;&nbsp;</span> 
+  <span class="${ClassNames.corresponding(false)}">&nbsp;&nbsp;&nbsp;</span>
+  <span class="${ClassNames.corresponding(true)}">&nbsp;&nbsp;&nbsp;</span> 
   corresponding blocks
 ''');
 
-  if (addAnnotations) {
-    sb.write('''
-  <span style="$WITH_SOURCE_INFO_STYLE">&nbsp;&nbsp;&nbsp;</span>
+  sb.write('''
+  <span class="${ClassNames.markers}">
+  <span class="${ClassNames.withSourceInfo}">&nbsp;&nbsp;&nbsp;</span>
   <span title="'offset with source information' means that source information 
 is available for an offset which is expected to have a source location 
 attached. This offset has source information as intended.">
   offset with source information</span>
-  <span style="$WITHOUT_SOURCE_INFO_STYLE">&nbsp;&nbsp;&nbsp;</span>
+  <span class="${ClassNames.withoutSourceInfo}">&nbsp;&nbsp;&nbsp;</span>
   <span title="'offset without source information' means that _no_ source 
 information is available for an offset which was expected to have a source 
 location attached. Source information must be found for this offset.">
   offset without source information</span>
-  <span style="$ADDITIONAL_SOURCE_INFO_STYLE">&nbsp;&nbsp;&nbsp;</span>
+  <span class="${ClassNames.additionalSourceInfo}">&nbsp;&nbsp;&nbsp;</span>
   <span title="'offset with unneeded source information' means that a source 
 location was attached to an offset which was _not_ expected to have a source
 location attached. The source location should be removed from this offset.">
   offset with unneeded source information</span>
-  <span style="$UNUSED_SOURCE_INFO_STYLE">&nbsp;&nbsp;&nbsp;</span>
+  <span class="${ClassNames.unusedSourceInfo}">&nbsp;&nbsp;&nbsp;</span>
   <span title="'offset with unused source information' means that source 
 information is available for an offset which is _not_ expected to have a source
 location attached. This source information _could_ be used by a parent AST node
 offset that is an 'offset without source information'."> 
   offset with unused source information</span>
+  </span>
+  <span class="${ClassNames.sourceMapped}">
 ''');
+  for (int i = 0; i < HUE_COUNT; i++) {
+    sb.write('''
+<span class="${ClassNames.sourceMappingIndex(i)}">&nbsp;&nbsp;</span>''');
   }
-
   sb.write('''
-</div></div>
-<table class="table">
+  <span title="JavaScript offsets and their corresponding Dart Code offset 
+as mapped through source-maps.">
+  mapped source locations</span>
+  </span>
 ''');
 
-  void addCell(String content) {
-    sb.write('''
-<td class="cell"><pre>
-''');
-    sb.write(content);
-    sb.write('''
-</pre></td>
-''');
-  }
 
   /// Marker to alternate output colors.
   bool alternating = false;
@@ -338,39 +487,73 @@
     if (outputs[i].codeLines.isNotEmpty) {
       lineNoWidth = '${outputs[i].codeLines.last.lineNo + 1}'.length;
     }
-    printContexts.add(new HtmlPrintContext(lineNoWidth: lineNoWidth));
+    printContexts.add(new HtmlPrintContext(
+        lineNoWidth: lineNoWidth,
+        getAnnotationData: getAnnotationData,
+        getLineData: getLineData));
   }
 
+  Set<DiffColumn> allColumns = new Set<DiffColumn>();
+  for (DiffBlock block in blocks) {
+    allColumns.addAll(block.columns);
+  }
+
+  List<DiffColumn> columns = [column_js0, column_js1, column_dart]
+      .where((c) => allColumns.contains(c)).toList();
+
+  sb.write('''
+</div>
+<table class="${ClassNames.headerTable}"><tr>''');
+  for (DiffColumn column in columns) {
+    sb.write('''
+<td class="${ClassNames.headerColumn} ${ClassNames.column(column)}">''');
+    if (column.type == 'js') {
+      sb.write('''[${outputs[column.index].options.join(',')}]''');
+    } else {
+      sb.write('''Dart code''');
+    }
+    sb.write('''</td>''');
+  }
+
+  sb.write('''
+</tr></table>
+</div>
+<table class="${ClassNames.table}">
+''');
+
   for (DiffBlock block in blocks) {
     String className;
     switch (block.kind) {
       case DiffKind.UNMATCHED:
-        className = 'cell';
+        className = '${ClassNames.cell}';
         break;
       case DiffKind.MATCHING:
-        className = 'cell corresponding${alternating ? '1' : '2'}';
+        className =
+            '${ClassNames.cell} ${ClassNames.corresponding(alternating)}';
         alternating = !alternating;
         break;
       case DiffKind.IDENTICAL:
-        className = 'cell identical${alternating ? '1' : '2'}';
+        className =
+            '${ClassNames.cell} ${ClassNames.identical(alternating)}';
         alternating = !alternating;
         break;
     }
     sb.write('<tr>');
-    for (int index = 0; index < 3; index++) {
-      sb.write('''<td class="$className column$index">''');
-      List<HtmlPart> lines = block.getColumn(index);
-      if (lines.isNotEmpty) {
-        for (HtmlPart line in lines) {
-          sb.write('<p class="line">');
-          if (index < printContexts.length) {
-            line.printHtmlOn(sb, printContexts[index]);
-          } else {
-            line.printHtmlOn(sb, new HtmlPrintContext());
-          }
-          sb.write('</p>');
-        }
+    for (DiffColumn column in columns) {
+      sb.write('''<td class="$className ${ClassNames.column(column)}">''');
+      HtmlPrintContext context = new HtmlPrintContext(
+          lineNoWidth: 4,
+          includeAnnotation: (Annotation annotation) {
+            CodeLineAnnotation data = annotation.data;
+            return data.annotationType == AnnotationType.WITH_SOURCE_INFO ||
+                   data.annotationType == AnnotationType.ADDITIONAL_SOURCE_INFO;
+          },
+          getAnnotationData: getAnnotationData,
+          getLineData: getLineData);
+      if (column.type == 'js') {
+        context = printContexts[column.index];
       }
+      block.printHtmlOn(column, sb, context);
       sb.write('''</td>''');
     }
     sb.write('</tr>');
@@ -378,11 +561,51 @@
 
   sb.write('''</tr><tr>''');
 
-  addCell(outputs[0].coverage);
-  addCell(outputs[1].coverage);
+  for (DiffColumn column in columns) {
+    sb.write('''
+<td class="${ClassNames.cell} ${ClassNames.column(column)}"><pre>''');
+    if (column.type == 'js') {
+      sb.write(outputs[column.index].coverage);
+    }
+    sb.write('''</td>''');
+  }
 
   sb.write('''
 </table>
+<div class="${ClassNames.buttons}">
+<input type="checkbox" id="box-${ClassNames.column(column_js0)}" 
+  onclick="javascript:toggleDisplay('${ClassNames.column(column_js0)}')" 
+  checked>
+Left JavaScript code<br/>
+
+<input type="checkbox" id="box-${ClassNames.column(column_js1)}" 
+  onclick="javascript:toggleDisplay('${ClassNames.column(column_js1)}')" 
+  checked>
+Right JavaScript code<br/>
+
+<input type="checkbox" id="box-${ClassNames.column(column_dart)}" 
+  onclick="javascript:toggleDisplay('${ClassNames.column(column_dart)}')" 
+  checked>
+<span title="Show column with Dart code corresponding to the block.">
+Dart code</span><br/>
+
+<input type="checkbox" id="box-${ClassNames.inlinedDart}" 
+  onclick="javascript:toggleDisplay('${ClassNames.inlinedDart}')" checked>
+<span title="Show Dart code inlined into the block.">
+Inlined Dart code</span><br/>
+
+<input type="checkbox" id="box-${ClassNames.markers}" 
+  onclick="javascript:toggle${ClassNames.markers}()" 
+  ${showMarkers ? 'checked' : ''}>
+<span title="Show markers for JavaScript offsets with source information.">
+Source information markers</span><br/>
+
+<input type="checkbox" id="box-${ClassNames.sourceMapped}" 
+  onclick="javascript:toggle${ClassNames.sourceMapped}()" 
+  ${showSourceMapped ? 'checked' : ''}>
+<span title="Show line-per-line mappings of JavaScript to Dart code.">
+Source mapped Dart code</span><br/>
+</div>
 </body>
 </html>
 ''');
@@ -396,95 +619,259 @@
   final Coverage coverage;
   final Map<int, Element> elementMap;
   final SourceFileManager sourceFileManager;
+  final CodeSources codeSources;
 
-  CodeLinesResult(this.codeLines, this.coverage,
-      this.elementMap, this.sourceFileManager);
+  CodeLinesResult(
+      this.codeLines,
+      this.coverage,
+      this.elementMap,
+      this.sourceFileManager,
+      this.codeSources);
+}
+
+class CodeSources {
+  Map<Element, CodeSource> codeSourceMap = <Element, CodeSource>{};
+  Map<Uri, Map<Interval, CodeSource>> uriCodeSourceMap =
+      <Uri, Map<Interval, CodeSource>>{};
+
+  CodeSources(
+    SourceMapProcessor processor,
+    SourceMaps sourceMaps) {
+
+    CodeSource computeCodeSource(Element element) {
+      return codeSourceMap.putIfAbsent(element, () {
+        CodeSource codeSource = codeSourceFromElement(element);
+        if (codeSource.begin != null) {
+          Interval interval = new Interval(codeSource.begin, codeSource.end);
+          Map<Interval, CodeSource> intervals =
+              uriCodeSourceMap[codeSource.uri];
+          if (intervals == null) {
+            intervals = <Interval, CodeSource>{};
+            uriCodeSourceMap[codeSource.uri] = intervals;
+          } else {
+            for (Interval existingInterval in intervals.keys.toList()) {
+              if (existingInterval.contains(interval.from)) {
+                CodeSource existingCodeSource = intervals[existingInterval];
+                intervals.remove(existingInterval);
+                if (existingInterval.from < interval.from) {
+                  Interval preInterval = new Interval(
+                      existingInterval.from, interval.from);
+                  intervals[preInterval] = existingCodeSource;
+                }
+                if (interval.to < existingInterval.to) {
+                  Interval postInterval = new Interval(
+                      interval.to, existingInterval.to);
+                  intervals[postInterval] = existingCodeSource;
+                }
+              }
+            }
+          }
+          intervals[interval] = codeSource;
+        }
+        if (element is ClassElement) {
+          element.forEachLocalMember((Element member) {
+            codeSource.members.add(computeCodeSource(member));
+          });
+          element.implementation.forEachLocalMember((Element member) {
+            codeSource.members.add(computeCodeSource(member));
+          });
+        } else if (element is MemberElement) {
+          element.nestedClosures.forEach((Element closure) {
+            codeSource.members.add(computeCodeSource(closure));
+          });
+        }
+        return codeSource;
+      });
+    }
+
+    for (LibraryElement library in
+             sourceMaps.compiler.libraryLoader.libraries) {
+      library.forEachLocalMember(computeCodeSource);
+      library.implementation.forEachLocalMember(computeCodeSource);
+    }
+
+    uriCodeSourceMap.forEach((Uri uri, Map<Interval, CodeSource> intervals) {
+      List<Interval> sortedKeys = intervals.keys.toList()..sort(
+          (i1, i2) => i1.from.compareTo(i2.from));
+      Map<Interval, CodeSource> sortedintervals = <Interval, CodeSource>{};
+      sortedKeys.forEach((Interval interval) {
+        sortedintervals[interval] = intervals[interval];
+      });
+      uriCodeSourceMap[uri] = sortedintervals;
+    });
+  }
+
+  CodeSource sourceLocationToCodeSource(SourceLocation sourceLocation) {
+    Map<Interval, CodeSource> intervals =
+        uriCodeSourceMap[sourceLocation.sourceUri];
+    if (intervals == null) {
+      print('No code source for $sourceLocation(${sourceLocation.offset})');
+      print(' -- no intervals for ${sourceLocation.sourceUri}');
+      return null;
+    }
+    for (Interval interval in intervals.keys) {
+      if (interval.contains(sourceLocation.offset)) {
+        return intervals[interval];
+      }
+    }
+    print('No code source for $sourceLocation(${sourceLocation.offset})');
+    intervals.forEach((k, v) => print(' $k: ${v.name}'));
+    return null;
+  }
 }
 
 /// Compute [CodeLine]s and [Coverage] for [filename] using the given [options].
 Future<CodeLinesResult> computeCodeLines(
     List<String> options,
-    String filename,
-    {bool addAnnotations: true}) async {
+    String filename) async {
   SourceMapProcessor processor = new SourceMapProcessor(filename);
   SourceMaps sourceMaps =
       await processor.process(options, perElement: true, forMain: true);
 
-  const int WITH_SOURCE_INFO = 0;
-  const int WITHOUT_SOURCE_INFO = 1;
-  const int ADDITIONAL_SOURCE_INFO = 2;
-  const int UNUSED_SOURCE_INFO = 3;
+  CodeSources codeSources = new CodeSources(processor, sourceMaps);
 
   SourceMapInfo info = sourceMaps.mainSourceMapInfo;
 
+  int nextAnnotationId = 0;
   List<CodeLine> codeLines;
   Coverage coverage = new Coverage();
-  List<Annotation> annotations = <Annotation>[];
+  Map<int, List<CodeLineAnnotation>> codeLineAnnotationMap =
+      <int, List<CodeLineAnnotation>>{};
 
-  void addAnnotation(int id, int offset, String title) {
-    annotations.add(new Annotation(id, offset, title));
+  /// Create a [CodeLineAnnotation] for [codeOffset].
+  void addCodeLineAnnotation(
+      {AnnotationType annotationType,
+       int codeOffset,
+       List<SourceLocation> locations: const <SourceLocation>[],
+       String stepInfo}) {
+    if (annotationType == AnnotationType.WITHOUT_SOURCE_INFO ||
+        annotationType == AnnotationType.UNUSED_SOURCE_INFO) {
+      locations = [];
+    }
+    List<CodeLocation> codeLocations = locations
+        .map((l) => new CodeLocation(l.sourceUri, l.sourceName, l.offset))
+        .toList();
+    List<CodeSource> codeSourceList = locations
+        .map(codeSources.sourceLocationToCodeSource)
+        .where((c) => c != null)
+        .toList();
+    CodeLineAnnotation data = new CodeLineAnnotation(
+        annotationId: nextAnnotationId++,
+        annotationType: annotationType,
+        codeLocations: codeLocations,
+        codeSources: codeSourceList,
+        stepInfo: stepInfo);
+    codeLineAnnotationMap.putIfAbsent(
+        codeOffset, () => <CodeLineAnnotation>[]).add(data);
   }
 
   String code = info.code;
   TraceGraph graph = createTraceGraph(info, coverage);
-  if (addAnnotations) {
-    Set<js.Node> mappedNodes = new Set<js.Node>();
 
-    void addSourceLocations(
-        int kind, int offset, List<SourceLocation> locations, String prefix) {
+  Set<js.Node> mappedNodes = new Set<js.Node>();
 
-      addAnnotation(kind, offset,
-          '${prefix}${locations
-              .where((l) => l != null)
-              .map((l) => l.shortText)
-              .join('\n')}');
-    }
-
-    bool addSourceLocationsForNode(int kind, js.Node node, String prefix) {
-      Map<int, List<SourceLocation>> locations = info.nodeMap[node];
-      if (locations == null || locations.isEmpty) {
-        return false;
-      }
-      locations.forEach(
-          (int offset, List<SourceLocation> locations) {
-        addSourceLocations(kind, offset, locations,
-            '${prefix}\n${truncate(nodeToString(node), 80)}\n');
-      });
-      mappedNodes.add(node);
-      return true;
-    }
-
-
-    for (TraceStep step in graph.steps) {
-      String title = '${step.id}:${step.kind}:${step.offset}';
-      if (!addSourceLocationsForNode(WITH_SOURCE_INFO, step.node, title)) {
-        int offset;
-        if (options.contains(USE_NEW_SOURCE_INFO)) {
-          offset = step.offset.subexpressionOffset;
-        } else {
-          offset = info.jsCodePositions[step.node].startPosition;
-        }
-        if (offset != null) {
-          addAnnotation(WITHOUT_SOURCE_INFO, offset, title);
-        }
-      }
-    }
-    for (js.Node node in info.nodeMap.nodes) {
-      if (!mappedNodes.contains(node)) {
-        addSourceLocationsForNode(ADDITIONAL_SOURCE_INFO, node, '');
-      }
-    }
-    SourceLocationCollector collector = new SourceLocationCollector();
-    info.node.accept(collector);
-    collector.sourceLocations.forEach(
-        (js.Node node, List<SourceLocation> locations) {
-      if (!mappedNodes.contains(node)) {
-        int offset = info.jsCodePositions[node].startPosition;
-        addSourceLocations(UNUSED_SOURCE_INFO, offset, locations, '');
-      }
-    });
+  /// Add an annotation for [codeOffset] pointing to [locations].
+  void addSourceLocations(
+      {AnnotationType annotationType,
+       int codeOffset,
+       List<SourceLocation> locations,
+       String stepInfo}) {
+    locations = locations.where((l) => l != null).toList();
+    addCodeLineAnnotation(
+        annotationType: annotationType,
+        codeOffset: codeOffset,
+        stepInfo: stepInfo,
+        locations: locations);
   }
 
+  /// Add annotations for all mappings created for [node].
+  bool addSourceLocationsForNode(
+      {AnnotationType annotationType,
+       js.Node node,
+       String stepInfo}) {
+    Map<int, List<SourceLocation>> locations = info.nodeMap[node];
+    if (locations == null || locations.isEmpty) {
+      return false;
+    }
+    locations.forEach((int offset, List<SourceLocation> locations) {
+      addSourceLocations(
+          annotationType: annotationType,
+          codeOffset: offset,
+          locations: locations,
+          stepInfo: stepInfo);
+    });
+    mappedNodes.add(node);
+    return true;
+  }
+
+  // Add annotations based on trace steps.
+  for (TraceStep step in graph.steps) {
+    String stepInfo = '${step.id}:${step.kind}:${step.offset}';
+    bool added = addSourceLocationsForNode(
+        annotationType: AnnotationType.WITH_SOURCE_INFO,
+        node: step.node,
+        stepInfo: stepInfo);
+    if (!added) {
+      int offset;
+      if (options.contains(Flags.useNewSourceInfo)) {
+        offset = step.offset.subexpressionOffset;
+      } else {
+        offset = info.jsCodePositions[step.node].startPosition;
+      }
+      if (offset != null) {
+        addCodeLineAnnotation(
+            annotationType: AnnotationType.WITHOUT_SOURCE_INFO,
+            codeOffset: offset,
+            stepInfo: stepInfo);
+      }
+    }
+  }
+
+  // Add additional annotations for mappings created for particular nodes.
+  for (js.Node node in info.nodeMap.nodes) {
+    if (!mappedNodes.contains(node)) {
+      addSourceLocationsForNode(
+          annotationType: AnnotationType.ADDITIONAL_SOURCE_INFO,
+          node: node);
+    }
+  }
+
+  // Add annotations for unused source information associated with nodes.
+  SourceLocationCollector collector = new SourceLocationCollector();
+  info.node.accept(collector);
+  collector.sourceLocations.forEach(
+      (js.Node node, List<SourceLocation> locations) {
+    if (!mappedNodes.contains(node)) {
+      int offset = info.jsCodePositions[node].startPosition;
+      addSourceLocations(
+        annotationType: AnnotationType.UNUSED_SOURCE_INFO,
+        codeOffset: offset,
+        locations: locations);
+    }
+  });
+
+  // Assign consecutive ids to source mappings.
+  int nextSourceMappedLocationIndex = 0;
+  List<Annotation> annotations = <Annotation>[];
+  for (int codeOffset in codeLineAnnotationMap.keys.toList()..sort()) {
+    bool hasSourceMappedLocation = false;
+    for (CodeLineAnnotation data in codeLineAnnotationMap[codeOffset]) {
+      if (data.annotationType.isSourceMapped) {
+        data.sourceMappingIndex = nextSourceMappedLocationIndex;
+        hasSourceMappedLocation = true;
+      }
+      annotations.add(new Annotation(
+          data.annotationType.index,
+          codeOffset,
+          'id=${data.annotationId}',
+          data: data));
+    }
+    if (hasSourceMappedLocation) {
+      nextSourceMappedLocationIndex++;
+    }
+  }
+
+  // Associate JavaScript offsets with [Element]s.
   StringSourceFile sourceFile = new StringSourceFile.fromName(filename, code);
   Map<int, Element> elementMap = <int, Element>{};
   sourceMaps.elementSourceMapInfos.forEach(
@@ -493,33 +880,11 @@
     elementMap[sourceFile.getLine(position.startPosition)] = element;
   });
 
-  codeLines = convertAnnotatedCodeToCodeLines(
-      code,
-      annotations,
-      colorScheme: new CustomColorScheme(
-        single: (int id) {
-          if (id == WITH_SOURCE_INFO) {
-            return WITH_SOURCE_INFO_STYLE;
-          } else if (id == ADDITIONAL_SOURCE_INFO) {
-            return ADDITIONAL_SOURCE_INFO_STYLE;
-          } else if (id == UNUSED_SOURCE_INFO) {
-            return UNUSED_SOURCE_INFO_STYLE;
-          }
-          return WITHOUT_SOURCE_INFO_STYLE;
-        },
-        multi: (List ids) {
-          if (ids.contains(WITH_SOURCE_INFO)) {
-            return WITH_SOURCE_INFO_STYLE;
-          } else if (ids.contains(ADDITIONAL_SOURCE_INFO)) {
-            return ADDITIONAL_SOURCE_INFO_STYLE;
-          } else if (ids.contains(UNUSED_SOURCE_INFO)) {
-            return UNUSED_SOURCE_INFO_STYLE;
-          }
-          return WITHOUT_SOURCE_INFO_STYLE;
-        }
-      ));
-  return new CodeLinesResult(codeLines, coverage, elementMap,
-      sourceMaps.sourceFileManager);
+  codeLines = convertAnnotatedCodeToCodeLines(code, annotations);
+  return new CodeLinesResult(
+      codeLines, coverage, elementMap,
+      sourceMaps.sourceFileManager,
+      codeSources);
 }
 
 /// Visitor that computes a map from [js.Node]s to all attached source
@@ -565,4 +930,70 @@
     }
   }
   return new CodeSource(kind, uri, name, begin, end);
-}
\ No newline at end of file
+}
+
+/// Create [LineData] that colors line numbers according to the [CodeSource]s
+/// origin if available.
+LineData getLineData(CodeSource lineAnnotation) {
+  if (lineAnnotation != null) {
+    return new LineData(
+        lineClass: ClassNames.line,
+        lineNumberClass:
+          '${ClassNames.lineNumber} '
+          '${ClassNames.colored(lineAnnotation.hashCode % 4)}');
+  }
+  return new LineData(
+      lineClass: ClassNames.line,
+      lineNumberClass: ClassNames.lineNumber);
+}
+
+AnnotationData getAnnotationData(Iterable<Annotation> annotations,
+                                 {bool forSpan}) {
+  for (Annotation annotation in annotations) {
+    CodeLineAnnotation data = annotation.data;
+    if (data.annotationType.isSourceMapped) {
+      if (forSpan) {
+        int index = data.sourceMappingIndex;
+        return new AnnotationData(
+            tag: 'span',
+            properties: {
+              'class':
+                '${ClassNames.sourceMapping} '
+                '${ClassNames.sourceMappingIndex(index % HUE_COUNT)}',
+              'title': 'index=$index',
+            });
+      } else {
+        return new AnnotationData(
+            tag: 'span',
+            properties: {
+              'title': annotation.title,
+              'class': '${ClassNames.marker} '
+                       '${data.annotationType.className}'});
+      }
+    }
+  }
+  if (forSpan) return null;
+  for (Annotation annotation in annotations) {
+    CodeLineAnnotation data = annotation.data;
+    if (data.annotationType == AnnotationType.UNUSED_SOURCE_INFO) {
+      return new AnnotationData(
+          tag: 'span',
+          properties: {
+            'title': annotation.title,
+            'class': '${ClassNames.marker} '
+                     '${data.annotationType.className}'});
+    }
+  }
+  for (Annotation annotation in annotations) {
+    CodeLineAnnotation data = annotation.data;
+    if (data.annotationType == AnnotationType.WITHOUT_SOURCE_INFO) {
+      return new AnnotationData(
+          tag: 'span',
+          properties: {
+            'title': annotation.title,
+            'class': '${ClassNames.marker} '
+                     '${data.annotationType.className}'});
+    }
+  }
+  return null;
+}
diff --git a/tests/compiler/dart2js/sourcemaps/html_parts.dart b/tests/compiler/dart2js/sourcemaps/html_parts.dart
index 6ddf95e..4d06f98 100644
--- a/tests/compiler/dart2js/sourcemaps/html_parts.dart
+++ b/tests/compiler/dart2js/sourcemaps/html_parts.dart
@@ -6,13 +6,130 @@
 
 import 'sourcemap_html_helper.dart';
 
+class Annotation {
+  final id;
+  final int codeOffset;
+  final String title;
+  final data;
+
+  Annotation(this.id, this.codeOffset, this.title, {this.data});
+}
+
+typedef bool AnnotationFilter(Annotation annotation);
+typedef AnnotationData AnnotationDataFunction(
+    Iterable<Annotation> annotations,
+    {bool forSpan});
+typedef LineData LineDataFunction(lineAnnotation);
+
+bool includeAllAnnotation(Annotation annotation) => true;
+
+class LineData {
+  final String lineClass;
+  final String lineNumberClass;
+
+  const LineData({
+    this.lineClass: 'line',
+    this.lineNumberClass: 'lineNumber'});
+}
+
+class AnnotationData {
+  final String tag;
+  final Map<String, String> properties;
+
+  const AnnotationData({
+    this.tag: 'a',
+    this.properties: const <String, String>{}});
+
+  int get hashCode => tag.hashCode * 13 + properties.hashCode * 19;
+
+  bool operator ==(other) {
+    if (identical(this, other)) return true;
+    if (other is! AnnotationData) return false;
+    return tag == other.tag &&
+           properties.length == other.properties.length &&
+           properties.keys.every((k) => properties[k] == other.properties[k]);
+  }
+}
+
+AnnotationDataFunction createAnnotationDataFunction(
+    {CssColorScheme colorScheme: const SingleColorScheme(),
+     ElementScheme elementScheme: const ElementScheme()}) {
+  return (Iterable<Annotation> annotations, {bool forSpan}) {
+    return getAnnotationDataFromSchemes(
+        annotations,
+        forSpan: forSpan,
+        colorScheme: colorScheme,
+        elementScheme: elementScheme);
+  };
+}
+
+LineData getDefaultLineData(data) => const LineData();
+
+AnnotationData getAnnotationDataFromSchemes(
+    Iterable<Annotation> annotations,
+    {bool forSpan,
+     CssColorScheme colorScheme: const SingleColorScheme(),
+     ElementScheme elementScheme: const ElementScheme()}) {
+  if (colorScheme.showLocationAsSpan != forSpan) return null;
+  Map<String, String> data = <String, String>{};
+  var id;
+  if (annotations.length == 1) {
+    Annotation annotation = annotations.single;
+    if (annotation != null) {
+      id = annotation.id;
+      data['style'] = colorScheme.singleLocationToCssColor(id);
+      data['title'] = annotation.title;
+    }
+  } else {
+    id = annotations.first.id;
+    List ids = [];
+    for (Annotation annotation in annotations) {
+      ids.add(annotation.id);
+    }
+    data['style'] = colorScheme.multiLocationToCssColor(ids);
+    data['title'] = annotations.map((l) => l.title).join(',');
+  }
+  if (id != null) {
+    Set ids = annotations.map((l) => l.id).toSet();
+    data['tag'] = 'a';
+    data['name'] = elementScheme.getName(id, ids);
+    data['href'] = elementScheme.getHref(id, ids);
+    data['onclick'] = elementScheme.onClick(id, ids);
+    data['onmouseover'] = elementScheme.onMouseOver(id, ids);
+    data['onmouseout'] = elementScheme.onMouseOut(id, ids);
+    return new AnnotationData(
+        properties: data);
+  }
+  return null;
+}
+
 class HtmlPrintContext {
   final int lineNoWidth;
   final bool usePre;
+  final AnnotationFilter includeAnnotation;
+  final AnnotationDataFunction getAnnotationData;
+  final LineDataFunction getLineData;
 
   HtmlPrintContext({
     this.lineNoWidth,
-    this.usePre: true});
+    this.usePre: true,
+    this.includeAnnotation: includeAllAnnotation,
+    this.getAnnotationData: getAnnotationDataFromSchemes,
+    this.getLineData: getDefaultLineData});
+
+  HtmlPrintContext from({
+      int lineNoWidth,
+      bool usePre,
+      AnnotationFilter includeAnnotation,
+      AnnotationDataFunction getAnnotationData,
+      LineDataFunction getLineData}) {
+    return new HtmlPrintContext(
+        lineNoWidth: lineNoWidth ?? this.lineNoWidth,
+        usePre: usePre ?? this.usePre,
+        includeAnnotation: includeAnnotation ?? this.includeAnnotation,
+        getAnnotationData: getAnnotationData ?? this.getAnnotationData,
+        getLineData: getLineData ?? this.getLineData);
+  }
 }
 
 enum HtmlPartKind {
@@ -21,31 +138,36 @@
   CONST,
   NEWLINE,
   TEXT,
-  ANCHOR,
+  TAG,
+  LINE_NUMBER,
 }
 
 abstract class HtmlPart {
-  void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {}
+  void printHtmlOn(StringBuffer buffer, HtmlPrintContext context);
 
-  toJson();
+  HtmlPartKind get kind;
 
-  static HtmlPart fromJson(json) {
+  toJson(JsonStrategy strategy);
+
+  static HtmlPart fromJson(json, JsonStrategy strategy) {
     if (json is String) {
       return new ConstHtmlPart(json);
     } else {
       switch (HtmlPartKind.values[json['kind']]) {
         case HtmlPartKind.LINE:
-          return HtmlLine.fromJson(json);
+          return HtmlLine.fromJson(json, strategy);
         case HtmlPartKind.CODE:
-          return CodeLine.fromJson(json);
+          return CodeLine.fromJson(json, strategy);
         case HtmlPartKind.CONST:
-          return ConstHtmlPart.fromJson(json);
+          return ConstHtmlPart.fromJson(json, strategy);
         case HtmlPartKind.NEWLINE:
           return const NewLine();
         case HtmlPartKind.TEXT:
-          return HtmlText.fromJson(json);
-        case HtmlPartKind.ANCHOR:
-          return AnchorHtmlPart.fromJson(json);
+          return HtmlText.fromJson(json, strategy);
+        case HtmlPartKind.TAG:
+          return TagPart.fromJson(json, strategy);
+        case HtmlPartKind.LINE_NUMBER:
+          return LineNumber.fromJson(json, strategy);
       }
     }
   }
@@ -56,16 +178,18 @@
 
   const ConstHtmlPart(this.html);
 
+  HtmlPartKind get kind => HtmlPartKind.CONST;
+
   @override
   void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
     buffer.write(html);
   }
 
-  toJson() {
-    return {'kind': HtmlPartKind.CONST.index, 'html': html};
+  toJson(JsonStrategy strategy) {
+    return {'kind': kind.index, 'html': html};
   }
 
-  static ConstHtmlPart fromJson(Map json) {
+  static ConstHtmlPart fromJson(Map json, JsonStrategy strategy) {
     return new ConstHtmlPart(json['html']);
   }
 }
@@ -73,6 +197,8 @@
 class NewLine implements HtmlPart {
   const NewLine();
 
+  HtmlPartKind get kind => HtmlPartKind.NEWLINE;
+
   void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
     if (context.usePre) {
       buffer.write('\n');
@@ -81,8 +207,8 @@
     }
   }
 
-  toJson() {
-    return {'kind': HtmlPartKind.NEWLINE.index};
+  toJson(JsonStrategy strategy) {
+    return {'kind': kind.index};
   }
 }
 
@@ -91,90 +217,70 @@
 
   const HtmlText(this.text);
 
+  HtmlPartKind get kind => HtmlPartKind.TEXT;
+
   void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
     String escaped = escape(text);
     buffer.write(escaped);
   }
 
-  toJson() {
-    return {'kind': HtmlPartKind.TEXT.index, 'text': text};
+  toJson(JsonStrategy strategy) {
+    return {'kind': kind.index, 'text': text};
   }
 
-  static HtmlText fromJson(Map json) {
+  static HtmlText fromJson(Map json, JsonStrategy strategy) {
     return new HtmlText(json['text']);
   }
 }
 
-class AnchorHtmlPart implements HtmlPart {
-  final String color;
-  final String name;
-  final String href;
-  final String title;
-  final String onclick;
-  final String onmouseover;
-  final String onmouseout;
+class TagPart implements HtmlPart {
+  final String tag;
+  final Map<String, String> properties;
+  final List<HtmlPart> content;
 
-  AnchorHtmlPart({
-    this.color,
-    this.name,
-    this.href,
-    this.title,
-    this.onclick,
-    this.onmouseover,
-    this.onmouseout});
+  TagPart(
+    this.tag,
+    {this.properties: const <String, String>{},
+     this.content: const <HtmlPart>[]});
+
+  HtmlPartKind get kind => HtmlPartKind.TAG;
 
   @override
   void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
-    buffer.write('<a');
-    if (href != null) {
-      buffer.write(' href="${href}"');
-    }
-    if (name != null) {
-      buffer.write(' name="${name}"');
-    }
-    if (title != null) {
-      buffer.write(' title="${escape(title)}"');
-    }
-    buffer.write(' style="${color}"');
-    if (onclick != null) {
-      buffer.write(' onclick="${onclick}"');
-    }
-    if (onmouseover != null) {
-      buffer.write(' onmouseover="${onmouseover}"');
-    }
-    if (onmouseout != null) {
-      buffer.write(' onmouseout="${onmouseout}"');
-    }
+    buffer.write('<$tag');
+    properties.forEach((String key, String value) {
+      if (value != null) {
+        buffer.write(' $key="${value}"');
+      }
+    });
     buffer.write('>');
+    for (HtmlPart child in content) {
+      child.printHtmlOn(buffer, context);
+    }
+    buffer.write('</$tag>');
   }
 
-  toJson() {
+  toJson(JsonStrategy strategy) {
     return {
-      'kind': HtmlPartKind.ANCHOR.index,
-      'color': color,
-      'name': name,
-      'href': href,
-      'title': title,
-      'onclick': onclick,
-      'onmouseover': onmouseover,
-      'onmouseout': onmouseout};
+      'kind': kind.index,
+      'tag': tag,
+      'properties': properties,
+      'content': content.map((p) => p.toJson(strategy)).toList()};
   }
 
-  static AnchorHtmlPart fromJson(Map json) {
-    return new AnchorHtmlPart(
-        color: json['color'],
-        name: json['name'],
-        href: json['href'],
-        title: json['title'],
-        onclick: json['onclick'],
-        onmouseover: json['onmouseover'],
-        onmouseout: json['onmouseout']);
+  static TagPart fromJson(Map json, JsonStrategy strategy) {
+    return new TagPart(
+        json['tag'],
+        properties: json['properties'],
+        content: json['content'].map(HtmlPart.fromJson).toList());
   }
 }
 
 class HtmlLine implements HtmlPart {
   final List<HtmlPart> htmlParts = <HtmlPart>[];
 
+  HtmlPartKind get kind => HtmlPartKind.LINE;
+
   @override
   void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) {
     for (HtmlPart part in htmlParts) {
@@ -182,30 +288,148 @@
     }
   }
 
-  Map toJson() {
+  Map toJson(JsonStrategy strategy) {
     return {
-      'kind': HtmlPartKind.LINE.index,
-      'html': htmlParts.map((p) => p.toJson()).toList(),
+      'kind': kind.index,
+      'html': htmlParts.map((p) => p.toJson(strategy)).toList(),
     };
   }
 
-  static CodeLine fromJson(Map json) {
+  static HtmlLine fromJson(Map json, JsonStrategy strategy) {
     HtmlLine line = new HtmlLine();
-    json['html'].forEach((part) => line.htmlParts.add(HtmlPart.fromJson(part)));
+    json['html']
+        .forEach((part) => line.htmlParts
+        .add(HtmlPart.fromJson(part, strategy)));
     return line;
   }
 }
 
-class CodeLine extends HtmlLine {
+class CodePart {
+  final List<Annotation> annotations;
+  final String subsequentCode;
+
+  CodePart(this.annotations, this.subsequentCode);
+
+  void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
+    Iterable<Annotation> included =
+        annotations.where(context.includeAnnotation);
+
+    List<HtmlPart> htmlParts = <HtmlPart>[];
+    if (included.isNotEmpty) {
+      AnnotationData annotationData =
+          context.getAnnotationData(included, forSpan: false);
+      AnnotationData annotationDataForSpan =
+          context.getAnnotationData(included, forSpan: true);
+
+      String head = subsequentCode;
+      String tail = '';
+      if (subsequentCode.length > 1) {
+        head = subsequentCode.substring(0, 1);
+        tail = subsequentCode.substring(1);
+      }
+
+      void addForSpan(AnnotationData data) {
+        htmlParts.add(new TagPart(
+            data.tag,
+            properties: data.properties,
+            content: [new HtmlText(subsequentCode)]));
+      }
+
+      if (annotationData != null &&
+          annotationDataForSpan != null) {
+        htmlParts.add(new TagPart(
+            annotationDataForSpan.tag,
+            properties: annotationDataForSpan.properties,
+            content: [
+              new TagPart(
+                  annotationData.tag,
+                  properties: annotationData.properties,
+                  content: [new HtmlText(head)]),
+              new HtmlText(tail)]));
+      } else if (annotationDataForSpan != null) {
+        htmlParts.add(new TagPart(
+            annotationDataForSpan.tag,
+            properties: annotationDataForSpan.properties,
+            content: [new HtmlText(subsequentCode)]));
+      } else if (annotationData != null) {
+        htmlParts.add(new TagPart(
+            annotationData.tag,
+            properties: annotationData.properties,
+            content: [new HtmlText(head)]));
+        htmlParts.add(new HtmlText(tail));
+      } else {
+        htmlParts.add(new HtmlText(subsequentCode));
+      }
+    } else {
+      htmlParts.add(new HtmlText(subsequentCode));
+    }
+
+    for (HtmlPart part in htmlParts) {
+      part.printHtmlOn(buffer, context);
+    }
+  }
+
+  Map toJson(JsonStrategy strategy) {
+    return {
+      'annotations':
+        annotations.map((a) => strategy.encodeAnnotation(a)).toList(),
+      'subsequentCode': subsequentCode,
+    };
+  }
+
+  static CodePart fromJson(Map json, JsonStrategy strategy) {
+    return new CodePart(
+        json['annotations'].map((j) => strategy.decodeAnnotation(j)).toList(),
+        json['subsequentCode']);
+  }
+}
+
+class LineNumber extends HtmlPart {
+  final int lineNo;
+  final lineAnnotation;
+
+  LineNumber(this.lineNo, this.lineAnnotation);
+
+  HtmlPartKind get kind => HtmlPartKind.LINE_NUMBER;
+
+  @override
+  toJson(JsonStrategy strategy) {
+    return {
+      'kind': kind.index,
+      'lineNo': lineNo,
+      'lineAnnotation': strategy.encodeLineAnnotation(lineAnnotation),
+    };
+  }
+
+  static LineNumber fromJson(Map json, JsonStrategy strategy) {
+    return new LineNumber(
+        json['lineNo'],
+        strategy.decodeLineAnnotation(json['lineAnnotation']));
+  }
+
+  @override
+  void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
+    buffer.write(lineNumber(
+        lineNo,
+        width: context.lineNoWidth,
+        useNbsp: !context.usePre,
+        className: context.getLineData(lineAnnotation).lineNumberClass));
+  }
+}
+
+class CodeLine extends HtmlPart {
+  final Uri uri;
   final int lineNo;
   final int offset;
   final StringBuffer codeBuffer = new StringBuffer();
-  final List<HtmlPart> htmlParts = <HtmlPart>[];
-  // TODO(johnniwinther): Make annotations serializable.
+  final List<CodePart> codeParts = <CodePart>[];
   final List<Annotation> annotations = <Annotation>[];
+  var lineAnnotation;
   String _code;
 
-  CodeLine(this.lineNo, this.offset);
+  CodeLine(this.lineNo, this.offset, {this.uri});
+
+  HtmlPartKind get kind => HtmlPartKind.CODE;
 
   String get code {
     if (_code == null) {
@@ -216,28 +440,74 @@
 
   @override
   void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) {
-    htmlBuffer.write(lineNumber(
-        lineNo, width: context.lineNoWidth, useNbsp: !context.usePre));
-    for (HtmlPart part in htmlParts) {
+    if (context.usePre) {
+      LineData lineData = context.getLineData(lineAnnotation);
+      htmlBuffer.write('<p class="${lineData.lineClass}">');
+    }
+    new LineNumber(lineNo, lineAnnotation).printHtmlOn(htmlBuffer, context);
+    for (CodePart part in codeParts) {
       part.printHtmlOn(htmlBuffer, context);
     }
+    const NewLine().printHtmlOn(htmlBuffer, context);
+    if (context.usePre) {
+      htmlBuffer.write('</p>');
+    }
   }
 
-  Map toJson() {
+  Map toJson(JsonStrategy strategy) {
     return {
-      'kind': HtmlPartKind.CODE.index,
+      'kind': kind.index,
       'lineNo': lineNo,
       'offset': offset,
       'code': code,
-      'html': htmlParts.map((p) => p.toJson()).toList(),
+      'parts': codeParts.map((p) => p.toJson(strategy)).toList(),
+      'annotations':
+        annotations.map((a) => strategy.encodeAnnotation(a)).toList(),
+      'lineAnnotation': lineAnnotation != null
+          ? strategy.encodeLineAnnotation(lineAnnotation) : null,
     };
   }
 
-  static CodeLine fromJson(Map json) {
-    CodeLine line = new CodeLine(json['lineNo'], json['offset']);
+  static CodeLine fromJson(Map json, JsonStrategy strategy) {
+    CodeLine line = new CodeLine(
+        json['lineNo'],
+        json['offset'],
+        uri: json['uri'] != null ? Uri.parse(json['uri']) : null);
     line.codeBuffer.write(json['code']);
-    json['html'].forEach((part) => line.htmlParts.add(HtmlPart.fromJson(part)));
+    json['parts']
+        .forEach((part) => line.codeParts
+        .add(CodePart.fromJson(part, strategy)));
+    json['annotations']
+        .forEach((a) => line.annotations
+        .add(strategy.decodeAnnotation(a)));
+    line.lineAnnotation = json['lineAnnotation'] != null
+        ? strategy.decodeLineAnnotation(json['lineAnnotation']) : null;
     return line;
   }
 }
 
+class JsonStrategy {
+  const JsonStrategy();
+
+  Map encodeAnnotation(Annotation annotation) {
+    return {
+      'id': annotation.id,
+      'codeOffset': annotation.codeOffset,
+      'title': annotation.title,
+      'data': annotation.data,
+    };
+  }
+
+  Annotation decodeAnnotation(Map json) {
+    return new Annotation(
+        json['id'],
+        json['codeOffset'],
+        json['title'],
+        data: json['data']);
+  }
+
+
+  encodeLineAnnotation(lineAnnotation) => lineAnnotation;
+
+  decodeLineAnnotation(json) => json;
+}
diff --git a/tests/compiler/dart2js/sourcemaps/js_tracer.dart b/tests/compiler/dart2js/sourcemaps/js_tracer.dart
index 4ea4e91..56d6f12 100644
--- a/tests/compiler/dart2js/sourcemaps/js_tracer.dart
+++ b/tests/compiler/dart2js/sourcemaps/js_tracer.dart
@@ -35,7 +35,10 @@
     SourcePositionKind sourcePositionKind = SourcePositionKind.START;
     List text = [node];
     switch (kind) {
-      case StepKind.FUN:
+      case StepKind.FUN_ENTRY:
+        text = ['<entry>'];
+        break;
+      case StepKind.FUN_EXIT:
         sourcePositionKind = SourcePositionKind.INNER;
         text = ['<exit>'];
         break;
diff --git a/tests/compiler/dart2js/sourcemaps/output_structure.dart b/tests/compiler/dart2js/sourcemaps/output_structure.dart
index 4962ba9..b9bb841 100644
--- a/tests/compiler/dart2js/sourcemaps/output_structure.dart
+++ b/tests/compiler/dart2js/sourcemaps/output_structure.dart
@@ -4,8 +4,11 @@
 
 library sourcemap.output_structure;
 
+import 'dart:math' as Math;
 import 'html_parts.dart' show
-    CodeLine;
+    Annotation,
+    CodeLine,
+    JsonStrategy;
 
 // Constants used to identify the subsection of the JavaScript output. These
 // are specifically for the unminified full_emitter output.
@@ -54,7 +57,7 @@
 
   EntityKind get kind;
 
-  Map toJson();
+  Map toJson(JsonStrategy strategy);
 
   OutputEntity getEntityForLine(int line);
 }
@@ -233,21 +236,24 @@
   accept(OutputVisitor visitor, arg) => visitor.visitStructure(this, arg);
 
   @override
-  Map toJson() {
+  Map toJson(JsonStrategy strategy) {
     return {
-      'lines': lines.map((line) => line.toJson()).toList(),
+      'lines': lines.map((line) => line.toJson(strategy)).toList(),
       'headerEnd': headerEnd,
       'footerStart': footerStart,
-      'children': children.map((child) => child.toJson()).toList(),
+      'children': children.map((child) => child.toJson(strategy)).toList(),
     };
   }
 
-  static OutputStructure fromJson(Map json) {
-    List<CodeLine> lines = json['lines'].map(CodeLine.fromJson).toList();
+  static OutputStructure fromJson(Map json, JsonStrategy strategy) {
+    List<CodeLine> lines =
+        json['lines'].map((l) => CodeLine.fromJson(l, strategy)).toList();
     int headerEnd = json['headerEnd'];
     int footerStart = json['footerStart'];
     List<LibraryBlock> children =
-        json['children'].map(AbstractEntity.fromJson).toList();
+        json['children']
+            .map((j) => AbstractEntity.fromJson(j, strategy))
+            .toList();
     return new OutputStructure(lines, headerEnd, footerStart, children);
   }
 }
@@ -262,18 +268,18 @@
   Interval get interval => new Interval(from, to);
 
   @override
-  Map toJson() {
+  Map toJson(JsonStrategy strategy) {
     return {
       'kind': kind.index,
       'name': name,
       'from': from,
       'to': to,
-      'children': children.map((child) => child.toJson()).toList(),
+      'children': children.map((child) => child.toJson(strategy)).toList(),
       'codeSource': codeSource != null ? codeSource.toJson() : null,
     };
   }
 
-  static AbstractEntity fromJson(Map json) {
+  static AbstractEntity fromJson(Map json, JsonStrategy strategy) {
     EntityKind kind = EntityKind.values[json['kind']];
     String name = json['name'];
     int from = json['from'];
@@ -287,13 +293,15 @@
         LibraryBlock lib = new LibraryBlock(name, from)
           ..to = to
           ..codeSource = codeSource;
-        json['children'].forEach((child) => lib.children.add(fromJson(child)));
+        json['children']
+            .forEach((child) => lib.children.add(fromJson(child, strategy)));
         return lib;
       case EntityKind.CLASS:
         LibraryClass cls = new LibraryClass(name, from)
             ..to = to
             ..codeSource = codeSource;
-        json['children'].forEach((child) => cls.children.add(fromJson(child)));
+        json['children']
+            .forEach((child) => cls.children.add(fromJson(child, strategy)));
         return cls;
       case EntityKind.TOP_LEVEL_FUNCTION:
         return new TopLevelFunction(name, from)
@@ -320,7 +328,7 @@
             ..to = to
             ..codeSource = codeSource;
         json['children'].forEach(
-            (child) => statics.children.add(fromJson(child)));
+            (child) => statics.children.add(fromJson(child, strategy)));
         return statics;
       case EntityKind.STATIC_FUNCTION:
         return new StaticFunction(name, from)
@@ -334,7 +342,7 @@
 class LibraryBlock extends AbstractEntity {
   List<BasicEntity> children = <BasicEntity>[];
   int get headerEnd => from + 2;
-  int get footerStart => to - 1;
+  int get footerStart => to/* - 1*/;
 
   LibraryBlock(String name, int from) : super(name, from);
 
@@ -624,9 +632,21 @@
 
   int get length => to - from;
 
+  bool get isEmpty => from == to;
+
   bool contains(int value) {
     return from <= value && value < to;
   }
+
+  Interval include(int index) {
+    return new Interval(Math.min(from, index), Math.max(to, index + 1));
+  }
+
+  bool inWindow(int index, {int windowSize: 0}) {
+    return from - windowSize <= index && index < to + windowSize;
+  }
+
+  String toString() => '[$from,$to[';
 }
 
 enum CodeKind {
@@ -635,15 +655,63 @@
   MEMBER,
 }
 
+class CodeLocation {
+  final Uri uri;
+  final String name;
+  final int offset;
+
+  CodeLocation(this.uri, this.name, this.offset);
+
+  String toString() => '$uri:$name:$offset';
+
+  Map toJson(JsonStrategy strategy) {
+    return {
+      'uri': uri.toString(),
+      'name': name,
+      'offset': offset,
+    };
+  }
+
+  static CodeLocation fromJson(Map json, JsonStrategy strategy) {
+    if (json == null) return null;
+    return new CodeLocation(
+        Uri.parse(json['uri']),
+        json['name'],
+        json['offset']);
+  }
+}
+
+/// A named entity in source code. This is used to serialize [Element]
+/// references without serializing the [Element] itself.
 class CodeSource {
   final CodeKind kind;
   final Uri uri;
   final String name;
   final int begin;
   final int end;
+  final List<CodeSource> members = <CodeSource>[];
 
   CodeSource(this.kind, this.uri, this.name, this.begin, this.end);
 
+  int get hashCode {
+    return
+        kind.hashCode * 13 +
+        uri.hashCode * 17 +
+        name.hashCode * 19 +
+        begin.hashCode * 23;
+  }
+
+  bool operator ==(other) {
+    if (identical(this, other)) return true;
+    if (other is! CodeSource) return false;
+    return
+        kind == other.kind &&
+        uri == other.uri &&
+        name == other.name &&
+        begin == other.begin;
+
+  }
+
   String toString() => '${toJson()}';
 
   Map toJson() {
@@ -653,16 +721,19 @@
       'name': name,
       'begin': begin,
       'end': end,
+      'members': members.map((c) => c.toJson()).toList(),
     };
   }
 
   static CodeSource fromJson(Map json) {
     if (json == null) return null;
-    return new CodeSource(
+    CodeSource codeSource = new CodeSource(
         CodeKind.values[json['kind']],
         Uri.parse(json['uri']),
         json['name'],
         json['begin'],
         json['end']);
+    json['members'].forEach((m) => codeSource.members.add(fromJson(m)));
+    return codeSource;
   }
 }
\ No newline at end of file
diff --git a/tests/compiler/dart2js/sourcemaps/source_mapping_invokes_test.dart b/tests/compiler/dart2js/sourcemaps/source_mapping_invokes_test.dart
index 20359e4..ce4d362 100644
--- a/tests/compiler/dart2js/sourcemaps/source_mapping_invokes_test.dart
+++ b/tests/compiler/dart2js/sourcemaps/source_mapping_invokes_test.dart
@@ -2,8 +2,18 @@
 // for 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 'source_mapping_tester.dart' as tester;
+import 'source_mapping_tester.dart';
+import 'sourcemap_helper.dart';
+import 'package:compiler/src/io/position_information.dart';
 
 void main() {
-  tester.main(['invokes']);
+  test(['invokes'], whiteListFunction: (String config, String file) {
+    if (config == 'cps') {
+      return (CodePoint codePoint) {
+        // Temporarily allow missing code points on expression statements.
+        return codePoint.kind == StepKind.EXPRESSION_STATEMENT;
+      };
+    }
+    return emptyWhiteList;
+  });
 }
\ No newline at end of file
diff --git a/tests/compiler/dart2js/sourcemaps/source_mapping_operators_test.dart b/tests/compiler/dart2js/sourcemaps/source_mapping_operators_test.dart
index 908ef87..3aaacce 100644
--- a/tests/compiler/dart2js/sourcemaps/source_mapping_operators_test.dart
+++ b/tests/compiler/dart2js/sourcemaps/source_mapping_operators_test.dart
@@ -2,8 +2,31 @@
 // for 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 'source_mapping_tester.dart' as tester;
+import 'source_mapping_tester.dart';
+import 'sourcemap_helper.dart';
+import 'package:compiler/src/io/position_information.dart';
 
 void main() {
-  tester.main(['operators']);
+  test(['operators'], whiteListFunction: (String config, String file) {
+    bool allowGtOptimization(CodePoint codePoint) {
+      // Allow missing code points for bailout optimization.
+      return codePoint.jsCode.contains(r'.$gt()'); // # Issue 25304
+    }
+
+    if (config == 'cps') {
+      return (CodePoint codePoint) {
+        // Temporarily allow missing code points on expression statements.
+        if (codePoint.kind == StepKind.EXPRESSION_STATEMENT ||
+            codePoint.kind == StepKind.IF_CONDITION) {
+          return true;
+        }
+        if (codePoint.jsCode.contains(r'H.iae(')) {
+          // Allow missing code points for bailout calls.
+          return true;
+        }
+        return allowGtOptimization(codePoint);
+      };
+    }
+    return allowGtOptimization;
+  });
 }
\ No newline at end of file
diff --git a/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart b/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart
index d935150..6134d20 100644
--- a/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart
+++ b/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart
@@ -10,7 +10,23 @@
 import 'package:js_ast/js_ast.dart';
 import 'sourcemap_helper.dart';
 
+typedef CodePointWhiteListFunction WhiteListFunction(
+    String configuration, String file);
+
+typedef bool CodePointWhiteListFunction(CodePoint codePoint);
+
+CodePointWhiteListFunction emptyWhiteListFunction(String config, String file) {
+  return emptyWhiteList;
+}
+
+bool emptyWhiteList(CodePoint codePoint) => false;
+
 main(List<String> arguments) {
+  test(arguments);
+}
+
+void test(List<String> arguments,
+          {WhiteListFunction whiteListFunction: emptyWhiteListFunction}) {
   Set<String> configurations = new Set<String>();
   Set<String> files = new Set<String>();
   for (String argument in arguments) {
@@ -33,10 +49,12 @@
       List<String> options = TEST_CONFIGURATIONS[config];
       for (String file in files) {
         String filename = TEST_FILES[file];
-        TestResult result = await runTests(config, filename, options);
+        TestResult result = await runTests(
+            config, filename, options);
         if (result.missingCodePointsMap.isNotEmpty) {
-          result.printMissingCodePoints();
-          errorsFound = true;
+          errorsFound = result.printMissingCodePoints(
+              whiteListFunction(config, file));
+          true;
         }
         if (result.multipleNodesMap.isNotEmpty) {
           result.printMultipleNodes();
@@ -158,14 +176,22 @@
 
   TestResult(this.config, this.file, this.processor);
 
-  void printMissingCodePoints() {
+  bool printMissingCodePoints(
+      [CodePointWhiteListFunction codePointWhiteList = emptyWhiteList]) {
+    bool allWhiteListed = true;
     missingCodePointsMap.forEach((info, missingCodePoints) {
       print("Missing code points for ${info.element} in '$file' "
             "in config '$config':");
       for (CodePoint codePoint in missingCodePoints) {
-        print("  $codePoint");
+        if (codePointWhiteList(codePoint)) {
+          print("  $codePoint (white-listed)");
+        } else {
+          print("  $codePoint");
+          allWhiteListed = false;
+        }
       }
     });
+    return !allWhiteListed;
   }
 
   void printMultipleNodes() {
diff --git a/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart b/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
index 019e8be..cb78cd4 100644
--- a/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
+++ b/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
@@ -8,6 +8,7 @@
 import 'dart:io';
 import 'package:compiler/compiler_new.dart';
 import 'package:compiler/src/apiimpl.dart' as api;
+import 'package:compiler/src/commandline_options.dart';
 import 'package:compiler/src/null_compiler_output.dart' show NullSink;
 import 'package:compiler/src/elements/elements.dart';
 import 'package:compiler/src/helpers/helpers.dart';
@@ -271,7 +272,6 @@
   }
 }
 
-const String USE_NEW_SOURCE_INFO =  '--use-new-source-info';
 const String DISABLE_INLINING = '--disable-inlining';
 
 /// Processor that computes [SourceMapInfo] for the JavaScript compiled for a
@@ -312,9 +312,8 @@
     OutputProvider outputProvider = outputToFile
         ? new CloningOutputProvider(targetUri, sourceMapFileUri)
         : new OutputProvider();
-    if (options.contains(USE_NEW_SOURCE_INFO)) {
+    if (options.contains(Flags.useNewSourceInfo)) {
       if (verbose) print('Using the new source information system.');
-      useNewSourceInfo = true;
     }
     api.CompilerImpl compiler = await compilerFor(
         outputProvider: outputProvider,
@@ -388,17 +387,22 @@
     }
 
     return new SourceMaps(
-        sourceFileManager, mainSourceMapInfo, elementSourceMapInfos);
+        compiler,
+        sourceFileManager,
+        mainSourceMapInfo,
+        elementSourceMapInfos);
   }
 }
 
 class SourceMaps {
+  final api.CompilerImpl compiler;
   final SourceFileManager sourceFileManager;
   // TODO(johnniwinther): Supported multiple output units.
   final SourceMapInfo mainSourceMapInfo;
   final Map<Element, SourceMapInfo> elementSourceMapInfos;
 
   SourceMaps(
+      this.compiler,
       this.sourceFileManager,
       this.mainSourceMapInfo,
           this.elementSourceMapInfos);
@@ -506,10 +510,10 @@
   /// Called when [node] defines a step of the given [kind] at the given
   /// [offset] when the generated JavaScript code.
   void onStep(js.Node node, Offset offset, StepKind kind) {
-    register('$kind', node);
+    register(kind, node);
   }
 
-  void register(String kind, js.Node node, {bool expectInfo: true}) {
+  void register(StepKind kind, js.Node node, {bool expectInfo: true}) {
 
     String dartCodeFromSourceLocation(SourceLocation sourceLocation) {
       SourceFile sourceFile =
@@ -556,7 +560,7 @@
 
 /// A JavaScript code point and its mapped dart source location.
 class CodePoint {
-  final String kind;
+  final StepKind kind;
   final String jsCode;
   final SourceLocation sourceLocation;
   final String dartCode;
diff --git a/tests/compiler/dart2js/sourcemaps/sourcemap_html_helper.dart b/tests/compiler/dart2js/sourcemaps/sourcemap_html_helper.dart
index 3ca926b..a3b10a8 100644
--- a/tests/compiler/dart2js/sourcemaps/sourcemap_html_helper.dart
+++ b/tests/compiler/dart2js/sourcemaps/sourcemap_html_helper.dart
@@ -27,10 +27,11 @@
   return input;
 }
 
+const int HUE_COUNT = 24;
+
 /// Returns the [index]th color for visualization.
 HSV toColor(int index) {
-  int hueCount = 24;
-  double h = 360.0 * (index % hueCount) / hueCount;
+  double h = 360.0 * (index % HUE_COUNT) / HUE_COUNT;
   double v = 1.0;
   double s = 0.5;
   return new HSV(h, s, v);
@@ -52,13 +53,19 @@
 
 /// Return the html for the [index] line number. If [width] is provided, shorter
 /// line numbers will be prefixed with spaces to match the width.
-String lineNumber(int index, {int width, bool useNbsp: false}) {
+String lineNumber(int index,
+                  {int width,
+                   bool useNbsp: false,
+                   String className}) {
+  if (className == null) {
+    className = 'lineNumber';
+  }
   String text = '${index + 1}';
   String padding = useNbsp ? '&nbsp;' : ' ';
   if (width != null && text.length < width) {
     text = (padding * (width - text.length)) + text;
   }
-  return '<span class="lineNumber">$text$padding</span>';
+  return '<span class="$className">$text$padding</span>';
 }
 
 /// Return the html escaped [text].
@@ -221,14 +228,6 @@
   }
 }
 
-class Annotation {
-  final id;
-  final int codeOffset;
-  final String title;
-
-  Annotation(this.id, this.codeOffset, this.title);
-}
-
 class ElementScheme {
   const ElementScheme();
 
@@ -280,14 +279,16 @@
   StringBuffer htmlBuffer = new StringBuffer();
   List<CodeLine> lines = convertAnnotatedCodeToCodeLines(
       code, annotations,
-      colorScheme: colorScheme,
-      elementScheme: elementScheme,
       windowSize: windowSize);
   int lineNoWidth;
   if (lines.isNotEmpty) {
     lineNoWidth = '${lines.last.lineNo + 1}'.length;
   }
-  HtmlPrintContext context = new HtmlPrintContext(lineNoWidth: lineNoWidth);
+  HtmlPrintContext context = new HtmlPrintContext(
+      lineNoWidth: lineNoWidth,
+      getAnnotationData: createAnnotationDataFunction(
+          colorScheme: colorScheme,
+          elementScheme: elementScheme));
   for (CodeLine line in lines) {
     line.printHtmlOn(htmlBuffer, context);
   }
@@ -297,34 +298,42 @@
 List<CodeLine> convertAnnotatedCodeToCodeLines(
     String code,
     Iterable<Annotation> annotations,
-    {CssColorScheme colorScheme: const SingleColorScheme(),
-     ElementScheme elementScheme: const ElementScheme(),
-     int windowSize}) {
+    {int startLine,
+     int endLine,
+     int windowSize,
+     Uri uri}) {
 
   List<CodeLine> lines = <CodeLine>[];
   CodeLine currentLine;
+  final List<Annotation> currentAnnotations = <Annotation>[];
   int offset = 0;
   int lineIndex = 0;
   int firstLine;
   int lastLine;
-  bool pendingSourceLocationsEnd = false;
 
-  void write(String code, HtmlPart html) {
+  void addCode(String code) {
     if (currentLine != null) {
       currentLine.codeBuffer.write(code);
-      currentLine.htmlParts.add(html);
+      currentLine.codeParts.add(
+          new CodePart(currentAnnotations.toList(), code));
+      currentAnnotations.clear();
     }
   }
 
-  void startLine(int currentOffset) {
-    lines.add(currentLine = new CodeLine(lines.length, currentOffset));
+  void addAnnotations(List<Annotation> annotations) {
+    currentAnnotations.addAll(annotations);
+    currentLine.annotations.addAll(annotations);
+  }
+
+  void beginLine(int currentOffset) {
+    lines.add(currentLine =
+        new CodeLine(lines.length, currentOffset, uri: uri));
   }
 
   void endCurrentLocation() {
-    if (pendingSourceLocationsEnd) {
-      write('', const ConstHtmlPart('</a>'));
+    if (currentAnnotations.isNotEmpty) {
+      addCode('');
     }
-    pendingSourceLocationsEnd = false;
   }
 
   void addSubstring(int until, {bool isFirst: false, bool isLast: false}) {
@@ -339,26 +348,15 @@
     }
     int localOffset = 0;
     if (isFirst) {
-      startLine(offset + localOffset);
+      beginLine(offset + localOffset);
     }
     for (String line in substring.split('\n')) {
       if (!first) {
         endCurrentLocation();
-        write('', const NewLine());
         lineIndex++;
-        startLine(offset + localOffset);
+        beginLine(offset + localOffset);
       }
-      if (pendingSourceLocationsEnd && !colorScheme.showLocationAsSpan) {
-        if (line.isNotEmpty) {
-          String before = line.substring(0, 1);
-          write(before, new HtmlText(before));
-          endCurrentLocation();
-          String after = line.substring(1);
-          write(after, new HtmlText(after));
-        }
-      } else {
-        write(line, new HtmlText(line));
-      }
+      addCode(line);
       first = false;
       localOffset += line.length + 1;
     }
@@ -370,44 +368,7 @@
 
   void insertAnnotations(List<Annotation> annotations) {
     endCurrentLocation();
-
-    String color;
-    var id;
-    String title;
-    if (annotations.length == 1) {
-      Annotation annotation = annotations.single;
-      if (annotation != null) {
-        id = annotation.id;
-        color = colorScheme.singleLocationToCssColor(id);
-        title = annotation.title;
-      }
-    } else {
-      id = annotations.first.id;
-      List ids = [];
-      for (Annotation annotation in annotations) {
-        ids.add(annotation.id);
-      }
-      color = colorScheme.multiLocationToCssColor(ids);
-      title = annotations.map((l) => l.title).join(',');
-    }
-    if (id != null) {
-      Set ids = annotations.map((l) => l.id).toSet();
-      String name = elementScheme.getName(id, ids);
-      String href = elementScheme.getHref(id, ids);
-      String onclick = elementScheme.onClick(id, ids);
-      String onmouseover = elementScheme.onMouseOver(id, ids);
-      String onmouseout = elementScheme.onMouseOut(id, ids);
-      write('', new AnchorHtmlPart(
-          color: color,
-          name: name,
-          href: href,
-          title: title,
-          onclick: onclick,
-          onmouseover: onmouseover,
-          onmouseout: onmouseout));
-      pendingSourceLocationsEnd = true;
-    }
-    currentLine.annotations.addAll(annotations);
+    addAnnotations(annotations);
     if (annotations.last == null) {
       endCurrentLocation();
     }
@@ -430,8 +391,8 @@
   addSubstring(code.length, isFirst: first, isLast: true);
   endCurrentLocation();
 
-  int start = 0;
-  int end = lines.length - 1;
+  int start = startLine ?? 0;
+  int end = endLine ?? lines.length - 1;
   if (windowSize != null) {
     start = Math.max(firstLine - windowSize, start);
     end = Math.min(lastLine + windowSize, end);
diff --git a/tests/compiler/dart2js/sourcemaps/sourcemap_html_templates.dart b/tests/compiler/dart2js/sourcemaps/sourcemap_html_templates.dart
index 29adff1..6d0bcb2 100644
--- a/tests/compiler/dart2js/sourcemaps/sourcemap_html_templates.dart
+++ b/tests/compiler/dart2js/sourcemaps/sourcemap_html_templates.dart
@@ -165,6 +165,9 @@
 h3 {
   cursor: pointer;
 }
+.line {
+  margin: 0px;
+}
 .lineNumber {
   font-size: smaller;
   color: #888;
diff --git a/tests/compiler/dart2js/type_checker_test.dart b/tests/compiler/dart2js/type_checker_test.dart
index 9406ea9..1d3e26d 100644
--- a/tests/compiler/dart2js/type_checker_test.dart
+++ b/tests/compiler/dart2js/type_checker_test.dart
@@ -29,7 +29,7 @@
 import 'parser_helper.dart';
 
 final MessageKind NOT_ASSIGNABLE = MessageKind.NOT_ASSIGNABLE;
-final MessageKind MEMBER_NOT_FOUND = MessageKind.MEMBER_NOT_FOUND;
+final MessageKind UNDEFINED_GETTER = MessageKind.UNDEFINED_GETTER;
 
 main() {
   List tests = [testSimpleTypes,
@@ -126,7 +126,7 @@
 //        "for (String s in strings) {} }");
 //  check("{ List<int> ints = [1,2,3]; for (String s in ints) {} }",
 //        NOT_ASSIGNABLE);
-//  check("for (String s in true) {}", MessageKind.METHOD_NOT_FOUND);
+//  check("for (String s in true) {}", MessageKind.UNDEFINED_METHOD);
 }
 
 
@@ -214,13 +214,13 @@
 
   analyzeIn(compiler, method, """{ 
       for (var e in new HasNoIterator()) {} 
-  }""", warnings: MessageKind.MEMBER_NOT_FOUND);
+  }""", warnings: MessageKind.UNDEFINED_GETTER);
   analyzeIn(compiler, method, """{ 
       for (String e in new HasNoIterator()) {} 
-  }""", warnings: MessageKind.MEMBER_NOT_FOUND);
+  }""", warnings: MessageKind.UNDEFINED_GETTER);
   analyzeIn(compiler, method, """{ 
       for (int e in new HasNoIterator()) {} 
-  }""", warnings: MessageKind.MEMBER_NOT_FOUND);
+  }""", warnings: MessageKind.UNDEFINED_GETTER);
 
   analyzeIn(compiler, method, """{ 
       for (var e in new HasCustomIntIterator()) {} 
@@ -234,13 +234,13 @@
 
   analyzeIn(compiler, method, """{ 
       for (var e in new HasCustomNoCurrentIterator()) {} 
-  }""", hints: MessageKind.MEMBER_NOT_FOUND);
+  }""", hints: MessageKind.UNDEFINED_GETTER);
   analyzeIn(compiler, method, """{ 
       for (String e in new HasCustomNoCurrentIterator()) {} 
-  }""", hints: MessageKind.MEMBER_NOT_FOUND);
+  }""", hints: MessageKind.UNDEFINED_GETTER);
   analyzeIn(compiler, method, """{ 
       for (int e in new HasCustomNoCurrentIterator()) {} 
-  }""", hints: MessageKind.MEMBER_NOT_FOUND);
+  }""", hints: MessageKind.UNDEFINED_GETTER);
 
   analyzeIn(compiler, method, """{ 
       var localDyn; 
@@ -573,22 +573,22 @@
     check("{ var i = 1 ${op} 2; }");
     check("{ var i = 1; i ${op}= 2; }");
     check("{ int i; var j = (i = true) ${op} 2; }",
-          warnings: [NOT_ASSIGNABLE, MessageKind.OPERATOR_NOT_FOUND]);
+          warnings: [NOT_ASSIGNABLE, MessageKind.UNDEFINED_OPERATOR]);
     check("{ int i; var j = 1 ${op} (i = true); }",
           warnings: [NOT_ASSIGNABLE, NOT_ASSIGNABLE]);
   }
   for (final op in ['-', '~']) {
     check("{ var i = ${op}1; }");
     check("{ int i; var j = ${op}(i = true); }",
-          warnings: [NOT_ASSIGNABLE, MessageKind.OPERATOR_NOT_FOUND]);
+          warnings: [NOT_ASSIGNABLE, MessageKind.UNDEFINED_OPERATOR]);
   }
   for (final op in ['++', '--']) {
     check("{ int i = 1; int j = i${op}; }");
     check("{ int i = 1; bool j = i${op}; }", warnings: NOT_ASSIGNABLE);
     check("{ bool b = true; bool j = b${op}; }",
-          warnings: MessageKind.OPERATOR_NOT_FOUND);
+          warnings: MessageKind.UNDEFINED_OPERATOR);
     check("{ bool b = true; int j = ${op}b; }",
-          warnings: MessageKind.OPERATOR_NOT_FOUND);
+          warnings: MessageKind.UNDEFINED_OPERATOR);
   }
   for (final op in ['||', '&&']) {
     check("{ bool b = (true ${op} false); }");
@@ -600,7 +600,7 @@
     check("{ bool b = 1 ${op} 2; }");
     check("{ int i = 1 ${op} 2; }", warnings: NOT_ASSIGNABLE);
     check("{ int i; bool b = (i = true) ${op} 2; }",
-          warnings: [NOT_ASSIGNABLE, MessageKind.OPERATOR_NOT_FOUND]);
+          warnings: [NOT_ASSIGNABLE, MessageKind.UNDEFINED_OPERATOR]);
     check("{ int i; bool b = 1 ${op} (i = true); }",
           warnings: [NOT_ASSIGNABLE, NOT_ASSIGNABLE]);
   }
@@ -1005,9 +1005,9 @@
     check(c, "(e)();");
     check(c, "(e)(1);");
     check(c, "(e)('string');");
-    check(c, "(foo)();", MEMBER_NOT_FOUND);
-    check(c, "(foo)(1);", MEMBER_NOT_FOUND);
-    check(c, "(foo)('string');", MEMBER_NOT_FOUND);
+    check(c, "(foo)();", UNDEFINED_GETTER);
+    check(c, "(foo)(1);", UNDEFINED_GETTER);
+    check(c, "(foo)('string');", UNDEFINED_GETTER);
 
     // Invocations on function expressions.
     check(c, "(foo){}();", MessageKind.MISSING_ARGUMENT);
@@ -1028,11 +1028,11 @@
     check(c, "int k = staticMethod('string');");
     check(c, "String k = staticMethod('string');",
           NOT_ASSIGNABLE);
-    check(d, "staticMethod();", MessageKind.METHOD_NOT_FOUND);
-    check(d, "staticMethod(1);", MessageKind.METHOD_NOT_FOUND);
-    check(d, "staticMethod('string');", MessageKind.METHOD_NOT_FOUND);
-    check(d, "int k = staticMethod('string');", MessageKind.METHOD_NOT_FOUND);
-    check(d, "String k = staticMethod('string');", MessageKind.METHOD_NOT_FOUND);
+    check(d, "staticMethod();", MessageKind.UNDEFINED_METHOD);
+    check(d, "staticMethod(1);", MessageKind.UNDEFINED_METHOD);
+    check(d, "staticMethod('string');", MessageKind.UNDEFINED_METHOD);
+    check(d, "int k = staticMethod('string');", MessageKind.UNDEFINED_METHOD);
+    check(d, "String k = staticMethod('string');", MessageKind.UNDEFINED_METHOD);
 
     // Invocation on dynamic variable.
     check(c, "e.foo();");
@@ -1040,12 +1040,12 @@
     check(c, "e.foo('string');");
 
     // Invocation on unresolved variable.
-    check(c, "foo();", MessageKind.METHOD_NOT_FOUND);
-    check(c, "foo(1);", MessageKind.METHOD_NOT_FOUND);
-    check(c, "foo('string');", MessageKind.METHOD_NOT_FOUND);
-    check(c, "foo(a: 'string');", MessageKind.METHOD_NOT_FOUND);
+    check(c, "foo();", MessageKind.UNDEFINED_METHOD);
+    check(c, "foo(1);", MessageKind.UNDEFINED_METHOD);
+    check(c, "foo('string');", MessageKind.UNDEFINED_METHOD);
+    check(c, "foo(a: 'string');", MessageKind.UNDEFINED_METHOD);
     check(c, "foo(a: localMethod(1));",
-          [MessageKind.METHOD_NOT_FOUND, NOT_ASSIGNABLE]);
+          [MessageKind.UNDEFINED_METHOD, NOT_ASSIGNABLE]);
   });
 }
 
@@ -1526,13 +1526,13 @@
   analyzeIn(compiler, method, "{ int type = T; }", warnings: NOT_ASSIGNABLE);
 
   analyzeIn(compiler, method, "{ String typeName = T.toString(); }");
-  analyzeIn(compiler, method, "{ T.foo; }", warnings: MEMBER_NOT_FOUND);
+  analyzeIn(compiler, method, "{ T.foo; }", warnings: UNDEFINED_GETTER);
   analyzeIn(compiler, method, "{ T.foo = 0; }",
-      warnings: MessageKind.SETTER_NOT_FOUND);
+      warnings: MessageKind.UNDEFINED_SETTER);
   analyzeIn(compiler, method, "{ T.foo(); }",
-      warnings: MessageKind.METHOD_NOT_FOUND);
+      warnings: MessageKind.UNDEFINED_METHOD);
   analyzeIn(compiler, method, "{ T + 1; }",
-      warnings: MessageKind.OPERATOR_NOT_FOUND);
+      warnings: MessageKind.UNDEFINED_OPERATOR);
 }
 
 void testTypeVariableLookup1(MockCompiler compiler) {
@@ -1566,10 +1566,10 @@
   test('s.getter');
 
   test('t.toString');
-  test('t.field', MEMBER_NOT_FOUND);
-  test('t.method(1)', MessageKind.METHOD_NOT_FOUND);
-  test('t + t', MessageKind.OPERATOR_NOT_FOUND);
-  test('t.getter', MEMBER_NOT_FOUND);
+  test('t.field', UNDEFINED_GETTER);
+  test('t.method(1)', MessageKind.UNDEFINED_METHOD);
+  test('t + t', MessageKind.UNDEFINED_OPERATOR);
+  test('t.getter', UNDEFINED_GETTER);
 
   test('s.field = "hest"', NOT_ASSIGNABLE);
   test('s.method("hest")', NOT_ASSIGNABLE);
@@ -1623,10 +1623,10 @@
   }
 
   test('s.toString');
-  test('s.field', MEMBER_NOT_FOUND);
-  test('s.method(1)', MessageKind.METHOD_NOT_FOUND);
-  test('s + s', MessageKind.OPERATOR_NOT_FOUND);
-  test('s.getter', MEMBER_NOT_FOUND);
+  test('s.field', UNDEFINED_GETTER);
+  test('s.method(1)', MessageKind.UNDEFINED_METHOD);
+  test('s + s', MessageKind.UNDEFINED_OPERATOR);
+  test('s.getter', UNDEFINED_GETTER);
 }
 
 void testFunctionTypeLookup(MockCompiler compiler) {
@@ -1636,8 +1636,8 @@
 
   check('(int f(int)) => f.toString;');
   check('(int f(int)) => f.toString();');
-  check('(int f(int)) => f.foo;', warnings: MEMBER_NOT_FOUND);
-  check('(int f(int)) => f.foo();', warnings: MessageKind.METHOD_NOT_FOUND);
+  check('(int f(int)) => f.foo;', warnings: UNDEFINED_GETTER);
+  check('(int f(int)) => f.foo();', warnings: MessageKind.UNDEFINED_METHOD);
 }
 
 void testTypedefLookup(MockCompiler compiler) {
@@ -1648,8 +1648,8 @@
   compiler.parseScript("typedef int F(int);");
   check('(F f) => f.toString;');
   check('(F f) => f.toString();');
-  check('(F f) => f.foo;', warnings: MEMBER_NOT_FOUND);
-  check('(F f) => f.foo();', warnings: MessageKind.METHOD_NOT_FOUND);
+  check('(F f) => f.foo;', warnings: UNDEFINED_GETTER);
+  check('(F f) => f.foo();', warnings: MessageKind.UNDEFINED_METHOD);
 }
 
 void testTypeLiteral(MockCompiler compiler) {
@@ -1683,11 +1683,11 @@
 
   // Check static property access.
   check('m() => Class.field;');
-  check('m() => (Class).field;', warnings: MEMBER_NOT_FOUND);
+  check('m() => (Class).field;', warnings: UNDEFINED_GETTER);
 
   // Check static method access.
   check('m() => Class.method();');
-  check('m() => (Class).method();', warnings: MessageKind.METHOD_NOT_FOUND);
+  check('m() => (Class).method();', warnings: MessageKind.UNDEFINED_METHOD);
 
   // Check access in invocation.
   check('m() => Class();', warnings: MessageKind.NOT_CALLABLE);
@@ -1956,8 +1956,9 @@
   check("int v = c.overriddenField;");
   check("c.overriddenField = 0;");
   check("int v = c.getterField;");
-  check("c.getterField = 0;", MessageKind.SETTER_NOT_FOUND);
-  check("int v = c.setterField;", MessageKind.GETTER_NOT_FOUND);
+  check("c.getterField = 0;", MessageKind.UNDEFINED_SETTER);
+  check("int v = c.setterField;",
+      MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER);
   check("c.setterField = 0;");
 
   check("int v = gc.overriddenField;");
@@ -1965,13 +1966,14 @@
   check("int v = gc.setterField;");
   check("gc.setterField = 0;");
   check("int v = gc.getterField;");
-  check("gc.getterField = 0;", MessageKind.SETTER_NOT_FOUND);
+  check("gc.getterField = 0;", MessageKind.UNDEFINED_SETTER);
 
   check("int v = sc.overriddenField;");
   check("sc.overriddenField = 0;");
   check("int v = sc.getterField;");
   check("sc.getterField = 0;");
-  check("int v = sc.setterField;", MessageKind.GETTER_NOT_FOUND);
+  check("int v = sc.setterField;",
+      MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER);
   check("sc.setterField = 0;");
 }
 
@@ -2012,7 +2014,7 @@
             if (a is C) {
               var x = a.c;
             }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [MessageKind.NOT_MORE_SPECIFIC_SUBTYPE],
         infos: []);
 
@@ -2021,8 +2023,8 @@
             if (a is C) {
               var x = '${a.c}${a.c}';
             }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND,
-                   MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER,
+                   MessageKind.UNDEFINED_GETTER],
         hints: [MessageKind.NOT_MORE_SPECIFIC_SUBTYPE],
         infos: []);
 
@@ -2031,8 +2033,8 @@
             if (a is C) {
               var x = '${a.d}${a.d}'; // Type promotion wouldn't help.
             }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND,
-                   MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER,
+                   MessageKind.UNDEFINED_GETTER],
         hints: [],
         infos: []);
 
@@ -2041,7 +2043,7 @@
            if (d is E) { // Suggest E<int>.
              var x = d.e;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [checkMessage(MessageKind.NOT_MORE_SPECIFIC_SUGGESTION,
                              {'shownTypeSuggestion': 'E<int>'})],
         infos: []);
@@ -2051,7 +2053,7 @@
            if (d is F) { // Suggest F<int, dynamic>.
              var x = d.f;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [checkMessage(MessageKind.NOT_MORE_SPECIFIC_SUGGESTION,
                              {'shownTypeSuggestion': 'F<int, dynamic>'})],
         infos: []);
@@ -2061,7 +2063,7 @@
            if (d is G) { // Suggest G<int>.
              var x = d.f;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [checkMessage(MessageKind.NOT_MORE_SPECIFIC_SUGGESTION,
                              {'shownTypeSuggestion': 'G<int>'})],
         infos: []);
@@ -2071,7 +2073,7 @@
            if (f is G) { // Cannot suggest a more specific type.
              var x = f.g;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [MessageKind.NOT_MORE_SPECIFIC],
         infos: []);
 
@@ -2080,7 +2082,7 @@
            if (d is E) {
              var x = d.f; // Type promotion wouldn't help.
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [],
         infos: []);
 
@@ -2090,7 +2092,7 @@
              a = null;
              var x = a.b;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [MessageKind.POTENTIAL_MUTATION],
         infos: [MessageKind.POTENTIAL_MUTATION_HERE]);
 
@@ -2100,7 +2102,7 @@
              a = null;
              var x = a.c; // Type promotion wouldn't help.
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [],
         infos: []);
 
@@ -2110,7 +2112,7 @@
            if (a is B) {
              var x = a.b;
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [MessageKind.POTENTIAL_MUTATION_IN_CLOSURE],
         infos: [MessageKind.POTENTIAL_MUTATION_IN_CLOSURE_HERE]);
 
@@ -2120,7 +2122,7 @@
            if (a is B) {
              var x = a.c; // Type promotion wouldn't help.
            }''',
-        warnings: [MessageKind.MEMBER_NOT_FOUND],
+        warnings: [MessageKind.UNDEFINED_GETTER],
         hints: [],
         infos: []);
 
@@ -2131,7 +2133,7 @@
              var y = a.b;
            }
            a = new A();''',
-      warnings: [MessageKind.MEMBER_NOT_FOUND],
+      warnings: [MessageKind.UNDEFINED_GETTER],
       hints: [MessageKind.ACCESSED_IN_CLOSURE],
       infos: [MessageKind.ACCESSED_IN_CLOSURE_HERE,
               MessageKind.POTENTIAL_MUTATION_HERE]);
@@ -2143,7 +2145,7 @@
              var y = a.c; // Type promotion wouldn't help.
            }
            a = new A();''',
-      warnings: [MessageKind.MEMBER_NOT_FOUND],
+      warnings: [MessageKind.UNDEFINED_GETTER],
       hints: [],
       infos: []);
 }
@@ -2197,7 +2199,7 @@
   check('new A().b..b;');
 
   check('new A().b..a;',
-        warnings: MEMBER_NOT_FOUND);
+        warnings: UNDEFINED_GETTER);
 
   check('B b = new A().b..c;');
 
diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status
index 1399e79..bde5681 100644
--- a/tests/compiler/dart2js_extra/dart2js_extra.status
+++ b/tests/compiler/dart2js_extra/dart2js_extra.status
@@ -69,3 +69,18 @@
 
 [ $compiler == dart2js && $cps_ir ]
 async_stacktrace_test/asyncStar: Crash # (foo()async*{try {tr...  cannot handle sync*/async* functions
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented, 75% of the tests fail.
+
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+class_test: Pass, Slow # Issue 25940
+consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
+closure_capture3_test: Pass, Slow # Issue 25940
+deferred_split_test: Pass, Slow # Issue 25940
+closure_capture5_test: Pass, Slow # Issue 25940
+conditional_test: Pass, Slow # Issue 25940
+constant_javascript_semantics2_test: Pass, Slow # Issue 25940
+
+[ $compiler == dart2js && $runtime == ff && $system == windows ]
+consistent_index_error_string_test: Pass, Slow # Issue 25940
diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status
index 3a172de..e08d601 100644
--- a/tests/compiler/dart2js_native/dart2js_native.status
+++ b/tests/compiler/dart2js_native/dart2js_native.status
@@ -25,3 +25,6 @@
 native_exception_test: RuntimeError # Issue 24421
 optimization_hints_test: RuntimeError # Please triage this failure.
 subclassing_constructor_2_test: RuntimeError # Please triage this failure.
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented, 75% of the tests fail.
diff --git a/tests/corelib/big_integer_arith_vm_test.dart b/tests/corelib/big_integer_arith_vm_test.dart
index 49e6e0d..b9696b4 100644
--- a/tests/corelib/big_integer_arith_vm_test.dart
+++ b/tests/corelib/big_integer_arith_vm_test.dart
@@ -5,7 +5,7 @@
 // Testing Bigints with and without intrinsics.
 // VMOptions=
 // VMOptions=--no_intrinsify
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 library big_integer_test;
 import "package:expect/expect.dart";
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index 52a0522..083fa8f 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -183,14 +183,20 @@
 
 [ $compiler == dart2js && $cps_ir && $host_checked ]
 regexp/pcre_test: Crash # Stack Overflow
+collection_removes_test: Crash # Issue 25911
+
+[ $compiler == dart2js && $host_checked ]
+package_resource_test: Crash # Issue 25911
 
 [ $noopt || $compiler == precompiler ]
 # Stacktraces in precompilation omit inlined frames.
 stacktrace_current_test: Pass, RuntimeError
 error_stack_trace1_test: Pass, RuntimeError
 
+[ $noopt || $compiler == precompiler || $mode == product ]
+apply3_test: SkipByDesign # Imports dart:mirrors
+
 [ $noopt || $compiler == precompiler ]
-apply3_test: CompileTimeError # Imports dart:mirrors
 regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
 big_integer_huge_mul_vm_test: Pass, Timeout # --no_intrinsify
 big_integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
@@ -199,4 +205,3 @@
 [ $runtime == dart_product ]
 data_resource_test: Skip # Resolve URI not supported yet in product mode.
 package_resource_test: Skip # Resolve URI not supported yet in product mode.
-apply3_test: SkipByDesign # Imports dart:mirrors
diff --git a/tests/corelib/regress_r21715_test.dart b/tests/corelib/regress_r21715_test.dart
index cfbcef1..5a0ef73 100644
--- a/tests/corelib/regress_r21715_test.dart
+++ b/tests/corelib/regress_r21715_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization_counter_threshold=5
+// VMOptions=--optimization_counter_threshold=5 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/html/element_animate_test.dart b/tests/html/element_animate_test.dart
index 31becda..10477c9 100644
--- a/tests/html/element_animate_test.dart
+++ b/tests/html/element_animate_test.dart
@@ -14,7 +14,7 @@
 
   group('animate_supported', () {
     test('supported', () {
-      expect(AnimationPlayer.supported, true);
+      expect(Animation.supported, isTrue);
     });
   });
 
@@ -24,7 +24,7 @@
       var opacity = num.parse(body.getComputedStyle().opacity);
       body.animate([{"opacity": 100}, {"opacity": 0}], 100);
       var newOpacity = num.parse(body.getComputedStyle().opacity);
-      expect(newOpacity < opacity, isTrue);
+      expect(newOpacity == opacity, isTrue);
     });
   });
 
diff --git a/tests/html/html.status b/tests/html/html.status
index 1facc17..3398318 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -22,6 +22,7 @@
 worker_api_test: Fail # Issue 10223
 resource_http_test: Fail # Issue 24203
 js_function_getter_trust_types_test: Skip # dartium doesn't support trust types.
+websocket_test/supported: Skip # Dartium 45 roll timesout
 
 [ $compiler == none && $mode == debug && ($runtime == drt || $runtime == dartium ) ]
 datalistelement_test: Skip # Issue 20540
@@ -31,6 +32,9 @@
 wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
 js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
 
+[ $compiler == dart2js && ($runtime == chrome || $runtime == drt || $runtime == dartium || $runtime == safari) ]
+websql_test/functional: RuntimeError, Slow # Issue 25927
+
 [ $compiler == dart2js && $checked ]
 js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
 
@@ -44,6 +48,7 @@
 [ $compiler == dart2js && $browser ]
 custom/created_callback_test: Fail # Support for created constructor. Issue 14835
 fontface_loaded_test: Fail # Support for promises.
+js_typed_interop_side_cast_exp_test: RuntimeError # Issue 25937
 
 [ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff  || $ie) ]
 custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
@@ -103,28 +108,18 @@
 
 [ $runtime == chrome ]
 touchevent_test/supported: Fail # Touch events are only supported on touch devices
-element_animate_test/simple_timing: RuntimeError # Please triage this failure
 element_types_test/supported_object: RuntimeError # Issue 25155
 element_types_test/supported_embed: RuntimeError # Issue 25155
 svgelement_test/PathElement: RuntimeError # Issue 25665
 
-[ $runtime == chrome && $cps_ir == false ]
-element_animate_test/omit_timing: RuntimeError # Also timing out on MacOS. Issue 23507
-element_animate_test/timing_dict: RuntimeError # Also timing out on MacOS. Issue 23507
-
 [ $runtime == chrome && $system == macos ]
 canvasrenderingcontext2d_test/drawImage_video_element: Skip # Times out. Please triage this failure.
 canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Skip # Times out. Please triage this failure.
-element_animate_test/omit_timing: Skip # Timing out on MacOS. Issue 23507
-element_animate_test/timing_dict: Skip # Timing out on MacOS. Issue 23507
 transition_event_test/functional: Skip # Times out. Issue 22167
 request_animation_frame_test: Skip # Times out. Issue 22167
 
 [$runtime == drt || $runtime == dartium || $runtime == chrome || $runtime == chromeOnAndroid ]
 webgl_1_test: Pass, Fail # Issue 8219
-element_animate_test/omit_timing: RuntimeError # Dartium 45 roll. Issue 25786
-element_animate_test/simple_timing: RuntimeError # Dartium 45 roll. Issue 25786
-element_animate_test/timing_dict: RuntimeError # Dartium 45 roll. Issue 25786
 
 [ $compiler == none && ($runtime == drt || $runtime == dartium) && $system == windows ]
 websql_test: Skip # Issue 4941: stderr contains a backtrace.
@@ -445,3 +440,11 @@
 
 # These are raw dart:js tests that fail due to bugs in the CPS IR:
 js_test/Dart_functions: RuntimeError # Tree-shaking an escaping closure #25720
+
+[ $compiler == dart2js && $cps_ir && $host_checked ]
+js_typed_interop_default_arg_test/none: Crash # Issue 25911
+js_typed_interop_default_arg_test/default_value: Crash # Issue 25911
+js_typed_interop_default_arg_test/explicit_argument: Crash # Issue 25911
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented
diff --git a/tests/isolate/isolate.status b/tests/isolate/isolate.status
index 953be4d..3508c2c 100644
--- a/tests/isolate/isolate.status
+++ b/tests/isolate/isolate.status
@@ -139,7 +139,7 @@
 spawn_uri_fail_test: SkipByDesign  # Uses dart:io.
 scenarios/*: SkipByDesign  # Use automatic package resolution, spawnFunction and .dart URIs.
 
-[ $noopt || $compiler == precompiler || $runtime == dart_product ]
+[ $noopt || $compiler == precompiler || $mode == product ]
 # Imports dart:mirrors
 count_test: SkipByDesign
 cross_isolate_message_test: SkipByDesign
@@ -161,10 +161,6 @@
 static_function_test: SkipByDesign
 unresolved_ports_test: SkipByDesign
 
-[ $compiler == precompiler ]
-function_send_test: RuntimeError # Issue 25892
-message3_test/fun: RuntimeError # Issue 25892
-
 [ $runtime == dart_precompiled || $runtime == dart_product ]
 deferred_in_isolate_test: Skip # Isolate.spawnUri
 deferred_in_isolate2_test: Skip # Isolate.spawnUri
@@ -184,3 +180,6 @@
 [ $runtime == dart_product ]
 spawn_uri_missing_from_isolate_test: Skip # SpawnUri in product mode
 spawn_uri_missing_test: Skip # SpawnUri in product mode
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented
diff --git a/tests/language/allocation_sinking_inlining_test.dart b/tests/language/allocation_sinking_inlining_test.dart
index 9ed27b6..e2ac626 100644
--- a/tests/language/allocation_sinking_inlining_test.dart
+++ b/tests/language/allocation_sinking_inlining_test.dart
@@ -2,7 +2,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 // Test allocation sinking with polymorphic inlining.
 
diff --git a/tests/language/arithmetic_canonicalization_test.dart b/tests/language/arithmetic_canonicalization_test.dart
index 04a9a12..23567ca 100644
--- a/tests/language/arithmetic_canonicalization_test.dart
+++ b/tests/language/arithmetic_canonicalization_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test canonicalization of simple arithmetic equivalences.
-// VMOptions=--optimization-counter-threshold=20 --no-use-osr
+// VMOptions=--optimization-counter-threshold=20 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/arithmetic_smi_overflow_test.dart b/tests/language/arithmetic_smi_overflow_test.dart
index a0abb27..1a4eec1 100644
--- a/tests/language/arithmetic_smi_overflow_test.dart
+++ b/tests/language/arithmetic_smi_overflow_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program to test arithmetic operations.
 
-// VMOptions=--optimization_counter_threshold=5
+// VMOptions=--optimization_counter_threshold=5 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/arithmetic_test.dart b/tests/language/arithmetic_test.dart
index b660960..ec4ece9 100644
--- a/tests/language/arithmetic_test.dart
+++ b/tests/language/arithmetic_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program to test arithmetic operations.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 library arithmetic_test;
 import "package:expect/expect.dart";
@@ -423,24 +423,24 @@
     var b = -1;
     for (var i = 0; i < 10; i++) Expect.equals(0x40000000, div(a, b));
   }
-  
-  
+
+
   static int divMod(a, b) => a ~/ b + a % b;
-  
+
   static void testSmiDivModDeopt() {
     var a = -0x40000000;
     var b = -1;
     for (var i = 0; i < 10; i++) Expect.equals(0x40000000, divMod(a, b));
   }
-  
+
   static double sinCosSub(double a) => sin(a) - cos(a);
-  
+
   static double sinCosAddCos(double a)  => sin(a) * cos(a) + cos(a);
 
   static void testSinCos() {
     var e = sin(1.234) - cos(1.234);
     var f = sin(1.234) * cos(1.234) + cos(1.234);
-    
+
     for (var i = 0; i < 20; i++) {
       Expect.approxEquals(e, sinCosSub(1.234));
       Expect.approxEquals(f, sinCosAddCos(1.234));
@@ -456,7 +456,7 @@
       cos(i);
     }
   }
-    
+
   static mySqrt(var x) => sqrt(x);
 
   static testSqrtDeopt() {
diff --git a/tests/language/assert_assignable_type_test.dart b/tests/language/assert_assignable_type_test.dart
index 246f13e..1bde62b 100644
--- a/tests/language/assert_assignable_type_test.dart
+++ b/tests/language/assert_assignable_type_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program to test arithmetic operations.
-// VMOptions=--optimization-counter-threshold=10 --checked
+// VMOptions=--optimization-counter-threshold=10 --checked --no-background-compilation
 
 // This test crashes if we recompute type of AssertAssignableInstr based on its
 // output types. By doing that we would eliminate not only the unnecessary
diff --git a/tests/language/assign_op_test.dart b/tests/language/assign_op_test.dart
index 9a9ebe7..a531f31 100644
--- a/tests/language/assign_op_test.dart
+++ b/tests/language/assign_op_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing assign operators.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/async_control_structures_test.dart b/tests/language/async_control_structures_test.dart
index 23365f4..cd09a86 100644
--- a/tests/language/async_control_structures_test.dart
+++ b/tests/language/async_control_structures_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/await_exceptions_test.dart b/tests/language/await_exceptions_test.dart
index f1d39a1..c739024 100644
--- a/tests/language/await_exceptions_test.dart
+++ b/tests/language/await_exceptions_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 import 'package:expect/expect.dart';
 import "package:async_helper/async_helper.dart";
diff --git a/tests/language/await_future_test.dart b/tests/language/await_future_test.dart
index b0151c5..2ec30fe8 100644
--- a/tests/language/await_future_test.dart
+++ b/tests/language/await_future_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 import 'package:expect/expect.dart';
 import "package:async_helper/async_helper.dart";
diff --git a/tests/language/await_nonfuture_test.dart b/tests/language/await_nonfuture_test.dart
index 71f46f5..fbdc18c 100644
--- a/tests/language/await_nonfuture_test.dart
+++ b/tests/language/await_nonfuture_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/await_test.dart b/tests/language/await_test.dart
index cb779d9..257d840 100644
--- a/tests/language/await_test.dart
+++ b/tests/language/await_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=---optimization-counter-threshold=10
+// VMOptions=---optimization-counter-threshold=10 --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/bit_operations_test.dart b/tests/language/bit_operations_test.dart
index 2d46ba7..bbc17bd 100644
--- a/tests/language/bit_operations_test.dart
+++ b/tests/language/bit_operations_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test for testing bitwise operations.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/bit_shift_test.dart b/tests/language/bit_shift_test.dart
index 8493936..e797ea3 100644
--- a/tests/language/bit_shift_test.dart
+++ b/tests/language/bit_shift_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/branch_canonicalization_test.dart b/tests/language/branch_canonicalization_test.dart
index bb49d6e..10ba232 100644
--- a/tests/language/branch_canonicalization_test.dart
+++ b/tests/language/branch_canonicalization_test.dart
@@ -4,7 +4,7 @@
 
 // Test that branch fusion correctly sets branch environment for comparisons
 // that require unboxing and does not fuse branches that can deoptimize.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/call_closurization_test.dart b/tests/language/call_closurization_test.dart
index 6c8dc71..0d17331 100644
--- a/tests/language/call_closurization_test.dart
+++ b/tests/language/call_closurization_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/call_test.dart b/tests/language/call_test.dart
index 59d2407..7c076af 100644
--- a/tests/language/call_test.dart
+++ b/tests/language/call_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/cha_deopt1_test.dart b/tests/language/cha_deopt1_test.dart
index fd860bf..a2c99f4 100644
--- a/tests/language/cha_deopt1_test.dart
+++ b/tests/language/cha_deopt1_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=100
+// VMOptions=--optimization-counter-threshold=100 --no-background-compilation
 
 // Test lazy deoptimization at field guards with deferred loading.
 
diff --git a/tests/language/cha_deopt2_test.dart b/tests/language/cha_deopt2_test.dart
index 5a4ed04..38274e0 100644
--- a/tests/language/cha_deopt2_test.dart
+++ b/tests/language/cha_deopt2_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=100
+// VMOptions=--optimization-counter-threshold=100 --no-background-compilation
 
 // Test lazy deoptimization at type checks with deferred loading.
 
diff --git a/tests/language/cha_deopt3_test.dart b/tests/language/cha_deopt3_test.dart
index 3dc61b9..6dc964e 100644
--- a/tests/language/cha_deopt3_test.dart
+++ b/tests/language/cha_deopt3_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=100
+// VMOptions=--optimization-counter-threshold=100 --no-background-compilation
 
 // Test lazy deoptimization at type checks with interface implementation.
 
diff --git a/tests/language/compound_assignment_operator_test.dart b/tests/language/compound_assignment_operator_test.dart
index e04da40..65bf4c391 100644
--- a/tests/language/compound_assignment_operator_test.dart
+++ b/tests/language/compound_assignment_operator_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Tests that lhs of a compound assignement is executed only once.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/const_test.dart b/tests/language/const_test.dart
index 65dc19d..9cdb07d 100644
--- a/tests/language/const_test.dart
+++ b/tests/language/const_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Check const classes.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/constant_propagation_phis_test.dart b/tests/language/constant_propagation_phis_test.dart
index e7e2d80..0ba7d72 100644
--- a/tests/language/constant_propagation_phis_test.dart
+++ b/tests/language/constant_propagation_phis_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/constant_string_interpolation_test.dart b/tests/language/constant_string_interpolation_test.dart
index 0a8a81c..bc30125 100644
--- a/tests/language/constant_string_interpolation_test.dart
+++ b/tests/language/constant_string_interpolation_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/deferred_inlined_test.dart b/tests/language/deferred_inlined_test.dart
index 4808a3f..bede596 100644
--- a/tests/language/deferred_inlined_test.dart
+++ b/tests/language/deferred_inlined_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Declares foo that returns 42.
 import "deferred_constraints_lib2.dart" deferred as lib;
diff --git a/tests/language/deferred_load_inval_code_test.dart b/tests/language/deferred_load_inval_code_test.dart
index 88a3159..41eacbb 100644
--- a/tests/language/deferred_load_inval_code_test.dart
+++ b/tests/language/deferred_load_inval_code_test.dart
@@ -3,7 +3,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
-// VMOptions=--optimization-counter-threshold=100
+// VMOptions=--optimization-counter-threshold=100 --no-background-compilation
 
 import "deferred_load_inval_code_lib.dart" deferred as d;
 
diff --git a/tests/language/deferred_optimized_test.dart b/tests/language/deferred_optimized_test.dart
index ef3c2a0..bb62884 100644
--- a/tests/language/deferred_optimized_test.dart
+++ b/tests/language/deferred_optimized_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-inlining
+// VMOptions=--optimization-counter-threshold=10 --no-use-inlining --no-background-compilation
 
 // Declares foo that returns 42.
 import "deferred_constraints_lib2.dart" deferred as lib;
diff --git a/tests/language/deopt_inlined_function_lazy_test.dart b/tests/language/deopt_inlined_function_lazy_test.dart
index 8de6b8e..dcb48d2 100644
--- a/tests/language/deopt_inlined_function_lazy_test.dart
+++ b/tests/language/deopt_inlined_function_lazy_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test lazy deoptimization from within an inlined function.
-// VMOptions=--deoptimize_alot --optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--deoptimize_alot --optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/deopt_lazy_finalization_test.dart b/tests/language/deopt_lazy_finalization_test.dart
index a069634..1176eca 100644
--- a/tests/language/deopt_lazy_finalization_test.dart
+++ b/tests/language/deopt_lazy_finalization_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test deoptimziation caused by lazy finalization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -29,7 +29,7 @@
 
 class A {
   foo() => 2;
-  
+
   loop() {
     var sum = 0;
     for (int i = 0; i < 10000; i++) {
diff --git a/tests/language/deopt_no_feedback_test.dart b/tests/language/deopt_no_feedback_test.dart
index 4ee16d0..8d42628 100644
--- a/tests/language/deopt_no_feedback_test.dart
+++ b/tests/language/deopt_no_feedback_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test deoptimization caused by running code that did not collect type
 // feedback before.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/deopt_smi_op_test.dart b/tests/language/deopt_smi_op_test.dart
index b990b49..150699d 100644
--- a/tests/language/deopt_smi_op_test.dart
+++ b/tests/language/deopt_smi_op_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/deoptimized_function_on_stack_test.dart b/tests/language/deoptimized_function_on_stack_test.dart
index 3ef5cb4..f64fedc 100644
--- a/tests/language/deoptimized_function_on_stack_test.dart
+++ b/tests/language/deoptimized_function_on_stack_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/div_with_power_of_two2_test.dart b/tests/language/div_with_power_of_two2_test.dart
index 03a83ca..f242fed 100644
--- a/tests/language/div_with_power_of_two2_test.dart
+++ b/tests/language/div_with_power_of_two2_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test division by power of two.
 // Test that results before and after optimization are the same.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/div_with_power_of_two_test.dart b/tests/language/div_with_power_of_two_test.dart
index a628563..fd88c4c 100644
--- a/tests/language/div_with_power_of_two_test.dart
+++ b/tests/language/div_with_power_of_two_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test division by power of two.
 // Test that results before and after optimization are the same.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/double_int_addition_test.dart b/tests/language/double_int_addition_test.dart
index d2f22e6..be190fa 100644
--- a/tests/language/double_int_addition_test.dart
+++ b/tests/language/double_int_addition_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/double_modulo_test.dart b/tests/language/double_modulo_test.dart
index d17bcc5..54e9fef 100644
--- a/tests/language/double_modulo_test.dart
+++ b/tests/language/double_modulo_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test optimization of modulo operator on Double.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/double_nan_comparison_test.dart b/tests/language/double_nan_comparison_test.dart
index 007e83d..c6e34701 100644
--- a/tests/language/double_nan_comparison_test.dart
+++ b/tests/language/double_nan_comparison_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Tests double comparisons with NaN in different contexts.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/equality_test.dart b/tests/language/equality_test.dart
index 208ed0c..ed6d227 100644
--- a/tests/language/equality_test.dart
+++ b/tests/language/equality_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/exception_in_increment_test.dart b/tests/language/exception_in_increment_test.dart
index a053708..0aa3b1e 100644
--- a/tests/language/exception_in_increment_test.dart
+++ b/tests/language/exception_in_increment_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test throws exception in the middle of the increment operation, the setter
 // part of the instance field increment never completes.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 main() {
   var a = new A();
diff --git a/tests/language/fast_method_extraction_test.dart b/tests/language/fast_method_extraction_test.dart
index b4dd4c9..3e3d8d9 100644
--- a/tests/language/fast_method_extraction_test.dart
+++ b/tests/language/fast_method_extraction_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test that fast method extraction returns correct closure.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/guess_cid_test.dart b/tests/language/guess_cid_test.dart
index 3759cb9..ea5629ad 100644
--- a/tests/language/guess_cid_test.dart
+++ b/tests/language/guess_cid_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program to test cid guessing optimizations.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -17,17 +17,17 @@
   Expect.equals(3, compareInt(3));
   Expect.equals(-2, compareInt(-2));
   Expect.equals(0, compareInt(-1));
-  
+
   Expect.equals(3, binOpInt(3, 3));
   Expect.equals(0, binOpInt(-2, -2));
-  
+
   Expect.equals(3.0, binOpDouble(3.0, 3.0));
   Expect.equals(0.0, binOpDouble(-2.0, -2.0));
-  
+
   Expect.equals(3.0, compareDouble(3.0));
   Expect.equals(-2.0, compareDouble(-2.0));
   Expect.equals(0.0, compareDouble(-1.0));
-  
+
   testOSR();
 }
 
diff --git a/tests/language/identical_test.dart b/tests/language/identical_test.dart
index 23be3ad..244f814 100644
--- a/tests/language/identical_test.dart
+++ b/tests/language/identical_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test efficient and correct implementation of !identical(a, b).
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/inline_add_constants_to_initial_env_test.dart b/tests/language/inline_add_constants_to_initial_env_test.dart
index 4417834..cd64f44 100644
--- a/tests/language/inline_add_constants_to_initial_env_test.dart
+++ b/tests/language/inline_add_constants_to_initial_env_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test that SSA values are correctly numbered after inlining that adds
 // constants to original environment.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 h(x, y) => x == y;
 
diff --git a/tests/language/inline_closure_with_constant_arguments_test.dart b/tests/language/inline_closure_with_constant_arguments_test.dart
index 94bf524..87bf4eb 100644
--- a/tests/language/inline_closure_with_constant_arguments_test.dart
+++ b/tests/language/inline_closure_with_constant_arguments_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/inline_effect_context_test.dart b/tests/language/inline_effect_context_test.dart
index e10e493..0fc2afe 100644
--- a/tests/language/inline_effect_context_test.dart
+++ b/tests/language/inline_effect_context_test.dart
@@ -4,7 +4,7 @@
 // Test inlining of simple function with control flow in an effect context.
 // Optimize function foo with instance of A and inlined function bar. Call later
 // with instance of B and cause deoptimization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/inline_getter_test.dart b/tests/language/inline_getter_test.dart
index ba83a23..41430d3 100644
--- a/tests/language/inline_getter_test.dart
+++ b/tests/language/inline_getter_test.dart
@@ -4,7 +4,7 @@
 // Test inlining of instance getters.
 // Three classes access always the same field. Optimize method foo and inline
 // getter for classes 'A' and 'B'. Call later via 'C' and cause deoptimization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/inline_test_context_test.dart b/tests/language/inline_test_context_test.dart
index 89a3e74..2c8fe29 100644
--- a/tests/language/inline_test_context_test.dart
+++ b/tests/language/inline_test_context_test.dart
@@ -4,7 +4,7 @@
 // Test inlining of simple function with control flow in a test context.
 // Optimize function foo with instance of A and inlined function bar. Call later
 // with instance of B and cause deoptimization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/inline_value_context_test.dart b/tests/language/inline_value_context_test.dart
index 5ffb694..5e8aee9 100644
--- a/tests/language/inline_value_context_test.dart
+++ b/tests/language/inline_value_context_test.dart
@@ -4,7 +4,7 @@
 // Test inlining of simple function with control flow in a value context.
 // Optimize function foo with instance of A and inlined function bar. Call later
 // with instance of B and cause deoptimization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/instance_incr_deopt_test.dart b/tests/language/instance_incr_deopt_test.dart
index 04a02a1..eb864a5 100644
--- a/tests/language/instance_incr_deopt_test.dart
+++ b/tests/language/instance_incr_deopt_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/instanceof4_test.dart b/tests/language/instanceof4_test.dart
index 86282da..be5a068c 100644
--- a/tests/language/instanceof4_test.dart
+++ b/tests/language/instanceof4_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing the instanceof operation.
 // Regression test for issue 5216.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/instanceof_optimized_test.dart b/tests/language/instanceof_optimized_test.dart
index e3f5965..820504f 100644
--- a/tests/language/instanceof_optimized_test.dart
+++ b/tests/language/instanceof_optimized_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Testing optimized 'is' tests.
-// VMOptions=--optimization-counter-threshold=5 --no-use-osr
+// VMOptions=--optimization-counter-threshold=5 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/integer_division_by_zero_test.dart b/tests/language/integer_division_by_zero_test.dart
index 98aab8c..defb6cb 100644
--- a/tests/language/integer_division_by_zero_test.dart
+++ b/tests/language/integer_division_by_zero_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test integer division by zero.
 // Test that results before and after optimization are the same.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/issue7513_test.dart b/tests/language/issue7513_test.dart
index b7c0b31..3c1fe9f 100644
--- a/tests/language/issue7513_test.dart
+++ b/tests/language/issue7513_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/issue7525_test.dart b/tests/language/issue7525_test.dart
index eab03a2..c7fe377 100644
--- a/tests/language/issue7525_test.dart
+++ b/tests/language/issue7525_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/language.status b/tests/language/language.status
index 42bb58b..673b6b1 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -45,11 +45,6 @@
 async_star_cancel_while_paused_test: RuntimeError
 async_star_await_pauses_test: Skip # Times out. Issue 23996
 
-accessor_conflict_export2_test: RuntimeError # Issue 25625
-accessor_conflict_import2_test: RuntimeError # Issue 25625
-accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25625
-accessor_conflict_import_prefixed_test: RuntimeError # Issue 25625
-
 [ ($compiler == none || $compiler == precompiler || $compiler == dart2app) && ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) ]
 
 class_keyword_test/02: MissingCompileTimeError # Issue 13627
@@ -96,12 +91,7 @@
 [ $compiler == none && $runtime == drt ]
 disassemble_test: Pass, Fail # Issue 18122
 
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $arch == mips && $checked ]
-generic_instanceof3_test: Pass, Crash # Issue 17440.
-
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $arch == mips && $mode == debug ]
-stack_overflow_test: Skip # Crashes. Issue 17440.
-stack_overflow_stacktrace_test: Skip # Crashes. Issue 17440.
 large_class_declaration_test: SkipSlow # Times out. Issue 20352
 
 [ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_product) && $arch == arm64 ]
@@ -129,7 +119,7 @@
 stacktrace_rethrow_nonerror_test: Pass, RuntimeError
 stacktrace_test: Pass, RuntimeError
 
-[ $noopt || $compiler == precompiler || $runtime == dart_product ]
+[ $noopt || $compiler == precompiler || $mode == product ]
 # Imports dart:mirrors
 const_evaluation_test: SkipByDesign
 deferred_constraints_constants_test: SkipByDesign
diff --git a/tests/language/language_analyzer2.status b/tests/language/language_analyzer2.status
index 5e0c4af..d3dfe4e 100644
--- a/tests/language/language_analyzer2.status
+++ b/tests/language/language_analyzer2.status
@@ -517,3 +517,6 @@
 accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25624
 accessor_conflict_import_prefixed_test: StaticWarning # Issue 25624
 accessor_conflict_import_test: StaticWarning # Issue 25624
+
+for_in3_test: StaticWarning, OK # Test should have warning by design.
+for_in_side_effects_test: StaticWarning, OK # Test uses custom class that does not implement Iterable in for-in.
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index a3327e4..1d68288 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -309,8 +309,14 @@
 regress_21795_test: Pass, RuntimeError # Due to inlining?
 
 [ $compiler == dart2js && $cps_ir && $host_checked ]
+accessor_conflict_export2_test: Crash # Duplicate export of 'x'
+accessor_conflict_export_test: Crash # Duplicate export of 'x'
 async_throw_in_catch_test/forceAwait: Crash # Issue 24485
 async_throw_in_catch_test/none: Crash # Issue 24485
 execute_finally9_test: Crash # Issue 24485
 regress_21795_test: Crash # Issue 24485
 regress_23537_test: Crash # Issue 24485
+try_finally_regress_25333_test: Crash # Issue 24485
+
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented
diff --git a/tests/language/large_implicit_getter_test.dart b/tests/language/large_implicit_getter_test.dart
index 8dac849..cd76da4 100644
--- a/tests/language/large_implicit_getter_test.dart
+++ b/tests/language/large_implicit_getter_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing compilation of large implicit getters.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 List<List> panels = [
 [6853.940039224797,6050.837897021371]
diff --git a/tests/language/load_indexed_constant_test.dart b/tests/language/load_indexed_constant_test.dart
index cf45b18..57e4802 100644
--- a/tests/language/load_indexed_constant_test.dart
+++ b/tests/language/load_indexed_constant_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test constant propgation of load-indexed operations
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/many_generic_instanceof_test.dart b/tests/language/many_generic_instanceof_test.dart
index a37e84e..ffaccd7 100644
--- a/tests/language/many_generic_instanceof_test.dart
+++ b/tests/language/many_generic_instanceof_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 library GenericInstanceofTest.dart;
 import "package:expect/expect.dart";
diff --git a/tests/language/many_overridden_no_such_method_test.dart b/tests/language/many_overridden_no_such_method_test.dart
index a9eb62e..e5c32ce 100644
--- a/tests/language/many_overridden_no_such_method_test.dart
+++ b/tests/language/many_overridden_no_such_method_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 library OverriddenNoSuchMethodTest.dart;
 
diff --git a/tests/language/mega_load_test.dart b/tests/language/mega_load_test.dart
index e7fc237..19be6ab 100644
--- a/tests/language/mega_load_test.dart
+++ b/tests/language/mega_load_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test megamorphic, but single target field load.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/megamorphic_no_such_method_test.dart b/tests/language/megamorphic_no_such_method_test.dart
index 92e0826..603fba4 100644
--- a/tests/language/megamorphic_no_such_method_test.dart
+++ b/tests/language/megamorphic_no_such_method_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test program for correct optimizations related to types fo allocated lists.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/mint_arithmetic_test.dart b/tests/language/mint_arithmetic_test.dart
index f8bf705..c9575f4 100644
--- a/tests/language/mint_arithmetic_test.dart
+++ b/tests/language/mint_arithmetic_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/mint_compares_test.dart b/tests/language/mint_compares_test.dart
index c2afbaf..7f51ce2d 100644
--- a/tests/language/mint_compares_test.dart
+++ b/tests/language/mint_compares_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/modulo_test.dart b/tests/language/modulo_test.dart
index f14d3c5..f94d756 100644
--- a/tests/language/modulo_test.dart
+++ b/tests/language/modulo_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test optimization of modulo operator on Smi.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -15,7 +15,7 @@
     Expect.equals(i % 256, foo(i));
     Expect.equals(i % -256, boo(i));
     Expect.throws(() => hoo(i), (e) => e is IntegerDivisionByZeroException);
-    
+
     Expect.equals(i ~/ 254 + i % 254, fooTwo(i));
     Expect.equals(i ~/ -254 + i % -254, booTwo(i));
     Expect.throws(() => hooTwo(i), (e) => e is IntegerDivisionByZeroException);
@@ -26,7 +26,7 @@
     }
     Expect.equals((i ~/ 10) + (i % 10) + (i % 10), threeOp(i));
     Expect.equals((i ~/ 10) + (i ~/ 12) + (i % 10) + (i % 12), fourOp(i));
-    
+
     // Zero test is done outside the loop.
     if (i < 0) {
       Expect.equals(i % -i, foo2(i));
@@ -69,13 +69,13 @@
 fourOp(a) {
   var x0 = a ~/ 10;
   var x1 = a ~/ 12;
-  var y0 = a % 10; 
+  var y0 = a % 10;
   var y1 = a % 12;
   return x0 + x1 + y0 + y1;
 }
 
 foo2(i) {
-  // Make sure x has a range computed. 
+  // Make sure x has a range computed.
   var x = 0;
   if (i < 0) {
     x = -i;
@@ -87,7 +87,7 @@
 
 
 fooTwo2(i) {
-  // Make sure x has a range computed. 
+  // Make sure x has a range computed.
   var x = 0;
   if (i < 0) {
     x = -i;
diff --git a/tests/language/mul_recipr_test.dart b/tests/language/mul_recipr_test.dart
index da4d7a1..3c3534c 100644
--- a/tests/language/mul_recipr_test.dart
+++ b/tests/language/mul_recipr_test.dart
@@ -5,7 +5,7 @@
 // incorrect:
 // - (a * (1.0 / b))
 //
-// VMOptions=--optimization-counter-threshold=8 --no-use-osr
+// VMOptions=--optimization-counter-threshold=8 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/named_parameters_with_conversions_test.dart b/tests/language/named_parameters_with_conversions_test.dart
index a20b60d..213b8da 100644
--- a/tests/language/named_parameters_with_conversions_test.dart
+++ b/tests/language/named_parameters_with_conversions_test.dart
@@ -4,7 +4,7 @@
 //
 // Test named arguments work as expected regardless of whether the function or
 // method is called via function call syntax or method call syntax.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/nan_identical_test.dart b/tests/language/nan_identical_test.dart
index a567f80..5f171be 100644
--- a/tests/language/nan_identical_test.dart
+++ b/tests/language/nan_identical_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test a new statement by itself.
-// VMOptions=--optimization-counter-threshold=4
+// VMOptions=--optimization-counter-threshold=4 --no-background-compilation
 
 import 'dart:typed_data';
 
diff --git a/tests/language/no_such_method3_test.dart b/tests/language/no_such_method3_test.dart
index 1a69e42..ba0d0ca 100644
--- a/tests/language/no_such_method3_test.dart
+++ b/tests/language/no_such_method3_test.dart
@@ -4,7 +4,7 @@
 
 // Test that a static type inferrer takes [noSuchMethod] into account.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/no_such_method_dispatcher_test.dart b/tests/language/no_such_method_dispatcher_test.dart
index ca115913..3aad16f 100644
--- a/tests/language/no_such_method_dispatcher_test.dart
+++ b/tests/language/no_such_method_dispatcher_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/null_test.dart b/tests/language/null_test.dart
index ecb2e00..4439bd5 100644
--- a/tests/language/null_test.dart
+++ b/tests/language/null_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Second dart test program.
 
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 import "dart:mirrors";
 import "package:expect/expect.dart";
diff --git a/tests/language/nullaware_opt_test.dart b/tests/language/nullaware_opt_test.dart
index e83757a..853284a 100644
--- a/tests/language/nullaware_opt_test.dart
+++ b/tests/language/nullaware_opt_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
-// VMOptions=--optimization_counter_threshold=5
+// VMOptions=--optimization_counter_threshold=5 --no-background_compilation
 //
 // Basic null-aware operator test that invokes the optimizing compiler.
 
diff --git a/tests/language/number_identity2_test.dart b/tests/language/number_identity2_test.dart
index 655ac51..c4737f5 100644
--- a/tests/language/number_identity2_test.dart
+++ b/tests/language/number_identity2_test.dart
@@ -5,7 +5,7 @@
 //
 // Contains test that is failing on dart2js. Merge this test with
 // 'number_identity_test.dart' once fixed.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 import 'dart:typed_data';
diff --git a/tests/language/number_identity_test.dart b/tests/language/number_identity_test.dart
index fa072ea..6d41b4c 100644
--- a/tests/language/number_identity_test.dart
+++ b/tests/language/number_identity_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing params.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimize_redundant_array_load_test.dart b/tests/language/optimize_redundant_array_load_test.dart
index 14549d2..856b225 100644
--- a/tests/language/optimize_redundant_array_load_test.dart
+++ b/tests/language/optimize_redundant_array_load_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_constant_array_string_access_test.dart b/tests/language/optimized_constant_array_string_access_test.dart
index 22f3771..632e6bb 100644
--- a/tests/language/optimized_constant_array_string_access_test.dart
+++ b/tests/language/optimized_constant_array_string_access_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_hoisting_checked_mode_assert_test.dart b/tests/language/optimized_hoisting_checked_mode_assert_test.dart
index 81ff2e2..3399678 100644
--- a/tests/language/optimized_hoisting_checked_mode_assert_test.dart
+++ b/tests/language/optimized_hoisting_checked_mode_assert_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_isempty_test.dart b/tests/language/optimized_isempty_test.dart
index d223c8b..d32f932 100644
--- a/tests/language/optimized_isempty_test.dart
+++ b/tests/language/optimized_isempty_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 // Test optimization and polymorphic inlining of String.isEmpty.
 
diff --git a/tests/language/optimized_lists_test.dart b/tests/language/optimized_lists_test.dart
index d92fe3d..e55fa83 100644
--- a/tests/language/optimized_lists_test.dart
+++ b/tests/language/optimized_lists_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test program for correct optimizations related to types fo allocated lists.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_setter_test.dart b/tests/language/optimized_setter_test.dart
index e1c4f3d..2c81877 100644
--- a/tests/language/optimized_setter_test.dart
+++ b/tests/language/optimized_setter_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test various setter situations, testing special cases in optimizing compiler.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_string_charat_test.dart b/tests/language/optimized_string_charat_test.dart
index b7ca22f..176ecd4 100644
--- a/tests/language/optimized_string_charat_test.dart
+++ b/tests/language/optimized_string_charat_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/optimized_string_charcodeat_test.dart b/tests/language/optimized_string_charcodeat_test.dart
index 98f4397..1493db6 100644
--- a/tests/language/optimized_string_charcodeat_test.dart
+++ b/tests/language/optimized_string_charcodeat_test.dart
@@ -1,7 +1,7 @@
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 // for 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=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 // Test optimized CodeUnitAt and array access.
 
diff --git a/tests/language/osr_test.dart b/tests/language/osr_test.dart
index 6d31b85..e4afb7b 100644
--- a/tests/language/osr_test.dart
+++ b/tests/language/osr_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 // Test correct OSR (issue 16151).
 
 import "dart:collection";
@@ -9,18 +9,18 @@
 
 List create([int length]) {
   return new MyList(length);
-}  
+}
 
 main() {
-  test(create);  
+  test(create);
 }
 
 
 class MyList<E> extends ListBase<E> {
   List<E> _list;
-  
+
   MyList([int length]): _list = (length==null ? new List() : new List(length));
-  
+
   E operator [](int index) => _list[index];
 
   void operator []=(int index, E value) {
@@ -36,7 +36,7 @@
 
 
 test(List create([int length])) {
-  sort_A01_t02_test(create);  
+  sort_A01_t02_test(create);
 }
 
 //  From library co19 sort_A01_t02.
diff --git a/tests/language/range_analysis_test.dart b/tests/language/range_analysis_test.dart
index 8226a68..240073e 100644
--- a/tests/language/range_analysis_test.dart
+++ b/tests/language/range_analysis_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for constructors and initializers.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/regress_11800_test.dart b/tests/language/regress_11800_test.dart
index 14c8a6f..8b7217b 100644
--- a/tests/language/regress_11800_test.dart
+++ b/tests/language/regress_11800_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/smi_type_test.dart b/tests/language/smi_type_test.dart
index dddfdbe..2b5af74 100644
--- a/tests/language/smi_type_test.dart
+++ b/tests/language/smi_type_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=8
+// VMOptions=--optimization-counter-threshold=8 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/strict_equal_test.dart b/tests/language/strict_equal_test.dart
index be7ab0f..0fddafb 100644
--- a/tests/language/strict_equal_test.dart
+++ b/tests/language/strict_equal_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/string_charcode_test.dart b/tests/language/string_charcode_test.dart
index 8e3f883..d81f1ac 100644
--- a/tests/language/string_charcode_test.dart
+++ b/tests/language/string_charcode_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/string_intrinsics_test.dart b/tests/language/string_intrinsics_test.dart
index 8daf75c..c3e8cc7 100644
--- a/tests/language/string_intrinsics_test.dart
+++ b/tests/language/string_intrinsics_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Replace with shared test once interface issues clarified.
 // Test various String intrinsics
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/sync_generator1_test.dart b/tests/language/sync_generator1_test.dart
index 6c2b7d7..88e1fd4 100644
--- a/tests/language/sync_generator1_test.dart
+++ b/tests/language/sync_generator1_test.dart
@@ -4,7 +4,7 @@
 
 // Simple test program for sync* generator functions.
 
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/truncdiv_test.dart b/tests/language/truncdiv_test.dart
index 8a00c73..5bbcf10 100644
--- a/tests/language/truncdiv_test.dart
+++ b/tests/language/truncdiv_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test optimization of modulo operator on Smi.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -24,7 +24,7 @@
 foo(i, x) => i % x;
 
 foo2(i) {
-  // Make sure x has a range computed. 
+  // Make sure x has a range computed.
   var x = 0;
   if (i < 0) {
     x = -i;
diff --git a/tests/language/try_catch2_test.dart b/tests/language/try_catch2_test.dart
index 003255d..9ccc5c7 100644
--- a/tests/language/try_catch2_test.dart
+++ b/tests/language/try_catch2_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing try/catch statement without any exceptions
 // being thrown. (Nested try/catch blocks).
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch3_test.dart b/tests/language/try_catch3_test.dart
index 09cf98b..a022965 100644
--- a/tests/language/try_catch3_test.dart
+++ b/tests/language/try_catch3_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Dart test program for testing try/catch statement without any exceptions
 // being thrown.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch4_test.dart b/tests/language/try_catch4_test.dart
index 9d39f11..14bba33 100644
--- a/tests/language/try_catch4_test.dart
+++ b/tests/language/try_catch4_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Check that our SSA graph does have the try body a predecessor of a
 // try/finally.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch5_test.dart b/tests/language/try_catch5_test.dart
index 5aa16e9..97dc857 100644
--- a/tests/language/try_catch5_test.dart
+++ b/tests/language/try_catch5_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Check that our SSA graph does have the try body a predecessor of a
 // try/finally.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch_optimized1_test.dart b/tests/language/try_catch_optimized1_test.dart
index d1be3da..850506b 100644
--- a/tests/language/try_catch_optimized1_test.dart
+++ b/tests/language/try_catch_optimized1_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch_optimized2_test.dart b/tests/language/try_catch_optimized2_test.dart
index aa7a9f3..a88ca8f 100644
--- a/tests/language/try_catch_optimized2_test.dart
+++ b/tests/language/try_catch_optimized2_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch_optimized3_test.dart b/tests/language/try_catch_optimized3_test.dart
index e0e8437..d8bb851 100644
--- a/tests/language/try_catch_optimized3_test.dart
+++ b/tests/language/try_catch_optimized3_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch_optimized4_test.dart b/tests/language/try_catch_optimized4_test.dart
index 7cad947..b3dd0dd 100644
--- a/tests/language/try_catch_optimized4_test.dart
+++ b/tests/language/try_catch_optimized4_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/try_catch_osr_test.dart b/tests/language/try_catch_osr_test.dart
index 7533ba0..5348560 100644
--- a/tests/language/try_catch_osr_test.dart
+++ b/tests/language/try_catch_osr_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Test OSR in different places of a try-catch.
 
diff --git a/tests/language/try_catch_test.dart b/tests/language/try_catch_test.dart
index fb36300..dcf4cba 100644
--- a/tests/language/try_catch_test.dart
+++ b/tests/language/try_catch_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -172,7 +172,7 @@
       Expect.fail("unreachable");
     }
   }
-      
+
 
   static void testMain() {
     test1();
diff --git a/tests/language/type_propagation_assert_assignable_test.dart b/tests/language/type_propagation_assert_assignable_test.dart
index 352a5842..3a694c3 100644
--- a/tests/language/type_propagation_assert_assignable_test.dart
+++ b/tests/language/type_propagation_assert_assignable_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Check that type of the AssertAssignable is recomputed correctly.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/allocation_sinking_vm_test.dart b/tests/language/vm/allocation_sinking_vm_test.dart
index 55b5f35..bda372f 100644
--- a/tests/language/vm/allocation_sinking_vm_test.dart
+++ b/tests/language/vm/allocation_sinking_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test allocation sinking optimization.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import 'dart:typed_data';
 import 'package:expect/expect.dart';
diff --git a/tests/language/vm/canonicalization_preserves_deopt_test.dart b/tests/language/vm/canonicalization_preserves_deopt_test.dart
index 76c97a6..d030bf1 100644
--- a/tests/language/vm/canonicalization_preserves_deopt_test.dart
+++ b/tests/language/vm/canonicalization_preserves_deopt_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10 --no-use-osr
+// VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/debug_break_enabled_vm_test.dart b/tests/language/vm/debug_break_enabled_vm_test.dart
index e9b3f05..4003e77 100644
--- a/tests/language/vm/debug_break_enabled_vm_test.dart
+++ b/tests/language/vm/debug_break_enabled_vm_test.dart
@@ -1,7 +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.
-// VMOptions=--optimization-counter-threshold=5 --enable-debug-break
+// VMOptions=--optimization-counter-threshold=5 --enable-debug-break --no-background-compilation
 
 // Verify that the optimizer does not trip over the debug break (StopInstr).
 
diff --git a/tests/language/vm/deopt_hoisted_smi_check_vm_test.dart b/tests/language/vm/deopt_hoisted_smi_check_vm_test.dart
index 6f6381d..091eed0 100644
--- a/tests/language/vm/deopt_hoisted_smi_check_vm_test.dart
+++ b/tests/language/vm/deopt_hoisted_smi_check_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test deoptimization on an optimistically hoisted smi check.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10  --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/if_conversion_vm_test.dart b/tests/language/vm/if_conversion_vm_test.dart
index 2d97d4d..8fbcc3b 100644
--- a/tests/language/vm/if_conversion_vm_test.dart
+++ b/tests/language/vm/if_conversion_vm_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 // Test if-convertion pass in the optimizing compiler.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/issue11087_vm_test.dart b/tests/language/vm/issue11087_vm_test.dart
index f2a8fba..fbfab0e 100644
--- a/tests/language/vm/issue11087_vm_test.dart
+++ b/tests/language/vm/issue11087_vm_test.dart
@@ -5,7 +5,7 @@
 // Regression test for VM's IfConverted pass not keeping graph structure and
 // use lists in sync.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 class A {
   int x;
diff --git a/tests/language/vm/licm_constant_redefinition_vm_test.dart b/tests/language/vm/licm_constant_redefinition_vm_test.dart
index 24f481e..662cb4b 100644
--- a/tests/language/vm/licm_constant_redefinition_vm_test.dart
+++ b/tests/language/vm/licm_constant_redefinition_vm_test.dart
@@ -1,7 +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.
-// VMOptions=--optimization_counter_threshold=100 --no-use-osr
+// VMOptions=--optimization_counter_threshold=100 --no-use-osr --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/load_to_load_forwarding_vm_test.dart b/tests/language/vm/load_to_load_forwarding_vm_test.dart
index f97e662..9fca276 100644
--- a/tests/language/vm/load_to_load_forwarding_vm_test.dart
+++ b/tests/language/vm/load_to_load_forwarding_vm_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test correctness of side effects tracking used by load to load forwarding.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 import "dart:typed_data";
diff --git a/tests/language/vm/load_to_load_unaligned_forwarding_vm_test.dart b/tests/language/vm/load_to_load_unaligned_forwarding_vm_test.dart
index 0d9790f..fbfd10b 100644
--- a/tests/language/vm/load_to_load_unaligned_forwarding_vm_test.dart
+++ b/tests/language/vm/load_to_load_unaligned_forwarding_vm_test.dart
@@ -4,7 +4,7 @@
 // Test correctness of side effects tracking used by load to load forwarding.
 // Should be merged into load_to_load_forwarding once Issue 22151 is fixed.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 import "dart:typed_data";
diff --git a/tests/language/vm/math_vm_test.dart b/tests/language/vm/math_vm_test.dart
index e672e9c..c38b3a0 100644
--- a/tests/language/vm/math_vm_test.dart
+++ b/tests/language/vm/math_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Tests that the VM does not crash on weird corner cases of class Math.
-// VMOptions=--optimization_counter_threshold=100
+// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
 
 library math_vm_test;
 
diff --git a/tests/language/vm/no_such_method_error_message_vm_test.dart b/tests/language/vm/no_such_method_error_message_vm_test.dart
index 481e3fe0..6be2738 100644
--- a/tests/language/vm/no_such_method_error_message_vm_test.dart
+++ b/tests/language/vm/no_such_method_error_message_vm_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/null_hashcode_optimized_vm_test.dart b/tests/language/vm/null_hashcode_optimized_vm_test.dart
index a214c29..d7263a7 100644
--- a/tests/language/vm/null_hashcode_optimized_vm_test.dart
+++ b/tests/language/vm/null_hashcode_optimized_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test that optimized Object.hashCode works for the null receiver.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 main() {
   for (int i = 0; i < 20; i++) {
diff --git a/tests/language/vm/optimization_test.dart b/tests/language/vm/optimization_test.dart
index 0b54b5e..1dea3bd 100644
--- a/tests/language/vm/optimization_test.dart
+++ b/tests/language/vm/optimization_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test various optimizations and deoptimizations of optimizing compiler..
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/optimized_await_regress_test.dart b/tests/language/vm/optimized_await_regress_test.dart
index 86337bf..b7bedb9 100644
--- a/tests/language/vm/optimized_await_regress_test.dart
+++ b/tests/language/vm/optimized_await_regress_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // This tests that captured parameters (by the async-closure) are
 // correctly treated in try-catch generated in the async function.
diff --git a/tests/language/vm/optimized_check_class_test.dart b/tests/language/vm/optimized_check_class_test.dart
index c1e32bf..07757b2 100644
--- a/tests/language/vm/optimized_check_class_test.dart
+++ b/tests/language/vm/optimized_check_class_test.dart
@@ -1,7 +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.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/optimized_guarded_field_isolates_test.dart b/tests/language/vm/optimized_guarded_field_isolates_test.dart
index a150656..3c6a9c2 100644
--- a/tests/language/vm/optimized_guarded_field_isolates_test.dart
+++ b/tests/language/vm/optimized_guarded_field_isolates_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=100
+// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
 
 // Test field type tracking and field list-length tracking in the presence of
 // multiple isolates.
diff --git a/tests/language/vm/optimized_guarded_field_test.dart b/tests/language/vm/optimized_guarded_field_test.dart
index aefdace..1a0748e 100644
--- a/tests/language/vm/optimized_guarded_field_test.dart
+++ b/tests/language/vm/optimized_guarded_field_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test correct handling of phis with only environment uses that were inserted
 // by store to load forwarding.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import "package:expect/expect.dart";
 import "dart:typed_data";
diff --git a/tests/language/vm/optimized_identical_test.dart b/tests/language/vm/optimized_identical_test.dart
index 84a69ca..c7a0202 100644
--- a/tests/language/vm/optimized_identical_test.dart
+++ b/tests/language/vm/optimized_identical_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test various optimizations and deoptimizations of optimizing compiler..
-// VMOptions=--optimization-counter-threshold=10 --no-constant-propagation
+// VMOptions=--optimization-counter-threshold=10 --no-constant-propagation --no-background-compilation
 
 import "package:expect/expect.dart";
 
@@ -13,7 +13,7 @@
 test(a) {
   var dbl = a + 1.0;
   if (!identical(dbl, true)) {
-    return "ok"; 
+    return "ok";
   }
   throw "fail";
 }
diff --git a/tests/language/vm/optimized_polymorphic_list_access_test.dart b/tests/language/vm/optimized_polymorphic_list_access_test.dart
index 6ab48f9..77e5c12 100644
--- a/tests/language/vm/optimized_polymorphic_list_access_test.dart
+++ b/tests/language/vm/optimized_polymorphic_list_access_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/optimized_shl_test.dart b/tests/language/vm/optimized_shl_test.dart
index 559506c..0134248 100644
--- a/tests/language/vm/optimized_shl_test.dart
+++ b/tests/language/vm/optimized_shl_test.dart
@@ -2,7 +2,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/optimized_testsmi_test.dart b/tests/language/vm/optimized_testsmi_test.dart
index c5ac9e2..f5ef8c7 100644
--- a/tests/language/vm/optimized_testsmi_test.dart
+++ b/tests/language/vm/optimized_testsmi_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 // Test branch optimization for TestSmiInstr
 
diff --git a/tests/language/vm/regress_14903_test.dart b/tests/language/vm/regress_14903_test.dart
index b7eaaaa..68616d4 100644
--- a/tests/language/vm/regress_14903_test.dart
+++ b/tests/language/vm/regress_14903_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10 
+// VMOptions=--optimization-counter-threshold=10  --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/regress_21245_test.dart b/tests/language/vm/regress_21245_test.dart
index 8fa7bb0..2e588fb 100644
--- a/tests/language/vm/regress_21245_test.dart
+++ b/tests/language/vm/regress_21245_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10 --no-use-osr
+// VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background_compilation
 
 test(a) {
   var e;
diff --git a/tests/language/vm/regress_22480_test.dart b/tests/language/vm/regress_22480_test.dart
index 3cbe98a..f0425a1 100644
--- a/tests/language/vm/regress_22480_test.dart
+++ b/tests/language/vm/regress_22480_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/regress_22541_vm_test.dart b/tests/language/vm/regress_22541_vm_test.dart
index 36b4618..0d121ac 100644
--- a/tests/language/vm/regress_22541_vm_test.dart
+++ b/tests/language/vm/regress_22541_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test range inference for multiplication of two negative values.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/regress_22693_vm_test.dart b/tests/language/vm/regress_22693_vm_test.dart
index 1cd07f9..6df2a46 100644
--- a/tests/language/vm/regress_22693_vm_test.dart
+++ b/tests/language/vm/regress_22693_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test location summary for Uint32 multiplication.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 const MASK = 0xFFFFFFFF;
 
diff --git a/tests/language/vm/regress_23117_vm_test.dart b/tests/language/vm/regress_23117_vm_test.dart
index 550d550..9b781ef 100644
--- a/tests/language/vm/regress_23117_vm_test.dart
+++ b/tests/language/vm/regress_23117_vm_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test location summary for Uint32 multiplication.
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/reusable_boxes_test.dart b/tests/language/vm/reusable_boxes_test.dart
index a70cade..4e88e4a 100644
--- a/tests/language/vm/reusable_boxes_test.dart
+++ b/tests/language/vm/reusable_boxes_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test correct handling reusable boxes.
-// VMOptions=--optimization_counter_threshold=100
+// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
 
 library reusable_boxes_test;
 
diff --git a/tests/language/vm/store_elimination_vm_test.dart b/tests/language/vm/store_elimination_vm_test.dart
index 8a3dcd7..21e2102 100644
--- a/tests/language/vm/store_elimination_vm_test.dart
+++ b/tests/language/vm/store_elimination_vm_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test correctness of side effects tracking used by load to load forwarding.
 
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/language/vm/store_to_load_forwarding_phis_vm_test.dart b/tests/language/vm/store_to_load_forwarding_phis_vm_test.dart
index 72ee9b3..9157795 100644
--- a/tests/language/vm/store_to_load_forwarding_phis_vm_test.dart
+++ b/tests/language/vm/store_to_load_forwarding_phis_vm_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test correct handling of phis with only environment uses that were inserted
 // by store to load forwarding.
-// VMOptions=--optimization_counter_threshold=100
+// VMOptions=--optimization_counter_threshold=100 --no-background_compilation
 
 library store_to_load_forwarding_phis_vm_test;
 
diff --git a/tests/language/vm/string_polymorphic_test.dart b/tests/language/vm/string_polymorphic_test.dart
index e7c6410..72eac28 100644
--- a/tests/language/vm/string_polymorphic_test.dart
+++ b/tests/language/vm/string_polymorphic_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Tests that the VM does not crash on weird corner cases of class Math.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/type_propagation_test.dart b/tests/language/vm/type_propagation_test.dart
index 2783654..e42aca24 100644
--- a/tests/language/vm/type_propagation_test.dart
+++ b/tests/language/vm/type_propagation_test.dart
@@ -1,10 +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.
-// VMOptions=--optimization-counter-threshold=1000 --max-polymorphic-checks=1
+// VMOptions=--optimization-counter-threshold=1000 --max-polymorphic-checks=1 --no-background-compilation
 
 // Test correct loop invariant code motion and type propagation from is-checks
-// and null-comparisons. 
+// and null-comparisons.
 
 class B {
   var b;
diff --git a/tests/language/vm/typed_data_polymorphic_view_test.dart b/tests/language/vm/typed_data_polymorphic_view_test.dart
index 94952e2..694c899 100644
--- a/tests/language/vm/typed_data_polymorphic_view_test.dart
+++ b/tests/language/vm/typed_data_polymorphic_view_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Tests that the VM does not crash on weird corner cases of class Math.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'dart:typed_data';
 import 'package:expect/expect.dart';
diff --git a/tests/language/vm/uint32_add_test.dart b/tests/language/vm/uint32_add_test.dart
index 46723be..4b66d0e 100644
--- a/tests/language/vm/uint32_add_test.dart
+++ b/tests/language/vm/uint32_add_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/uint32_right_shift_test.dart b/tests/language/vm/uint32_right_shift_test.dart
index 6c7ae5f..d44b84e 100644
--- a/tests/language/vm/uint32_right_shift_test.dart
+++ b/tests/language/vm/uint32_right_shift_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/language/vm/uint32_shift_test.dart b/tests/language/vm/uint32_shift_test.dart
index fa8cb38..3f9f7e2 100644
--- a/tests/language/vm/uint32_shift_test.dart
+++ b/tests/language/vm/uint32_shift_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 import 'package:expect/expect.dart';
 
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index a8623b4..87b74f2 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -336,11 +336,17 @@
 async/stream_iterator_test: Crash # (Stream createCancel...  cannot handle sync*/async* functions
 mirrors/parameter_annotation_mirror_test: Pass, Fail # Issue 25501.  Depends on inlining.
 
-[ $compiler == dart2js && $cps_ir && $host_checked ]
-mirrors/circular_factory_redirection_test/02: Crash # Assertion failure: Constant constructor already computed for generative_constructor(A#circular2)
-mirrors/mirrors_used_typedef_declaration_test/01: Crash # Assertion failure: typedef(Foo) has not been checked for cycles.
-mirrors/mirrors_used_typedef_declaration_test/none: Crash # Assertion failure: typedef(Foo) has not been checked for cycles.
-mirrors/typedef_library_test: Crash # Assertion failure: typedef(G) has not been checked for cycles.
+[ $compiler == dart2js && $host_checked ]
+mirrors/circular_factory_redirection_test/02: Crash # Assertion failure: Constant constructor already computed for generative_constructor(A#circular2).  Issue 25911
+mirrors/metadata_allowed_values_test/28: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/29: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/30: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/31: Crash # Issue 25911
+
+[ $compiler == dart2js && $host_checked && $unchecked ]
+mirrors/mirrors_used_typedef_declaration_test/01: Crash # Assertion failure: typedef(Foo) has not been checked for cycles. Issue 25911
+mirrors/mirrors_used_typedef_declaration_test/none: Crash # Assertion failure: typedef(Foo) has not been checked for cycles. Issue 25911
+mirrors/typedef_library_test: Crash # Assertion failure: typedef(G) has not been checked for cycles. Issue 25911
 
 [ $compiler != dart2js ]
 async/dart2js_uncaught_error_test: Skip  # JS-integration only test
@@ -348,11 +354,9 @@
 [ $noopt && $arch == simarm64 ]
 async/slow_consumer2_test: Pass, RuntimeError # Issue 25726
 
-[ $noopt || $compiler == precompiler ]
+[ $noopt || $compiler == precompiler || $mode == product ]
 mirrors/*: SkipByDesign
+
+[ $noopt || $compiler == precompiler ]
 convert/chunked_conversion_utf88_test: Pass, Timeout
 convert/utf85_test: Pass, Timeout
-
-[ $runtime == vm && $mode == product ]
-mirrors/mirrors_reader_test: Fail,OK  # Expects exact type name.
-
diff --git a/tests/lib/math/double_pow_test.dart b/tests/lib/math/double_pow_test.dart
index 4736b5c..83a8ece 100644
--- a/tests/lib/math/double_pow_test.dart
+++ b/tests/lib/math/double_pow_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=5
+// VMOptions=--optimization-counter-threshold=5 --no-background-compilation
 
 library math_test;
 import "package:expect/expect.dart";
diff --git a/tests/lib/math/min_max_test.dart b/tests/lib/math/min_max_test.dart
index 1f89185..cf58169 100644
--- a/tests/lib/math/min_max_test.dart
+++ b/tests/lib/math/min_max_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Dart test for testing Math.min and Math.max.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 library min_max_test;
 import "package:expect/expect.dart";
diff --git a/tests/lib/typed_data/float32x4_clamp_test.dart b/tests/lib/typed_data/float32x4_clamp_test.dart
index 816fe0d..0109478 100644
--- a/tests/lib/typed_data/float32x4_clamp_test.dart
+++ b/tests/lib/typed_data/float32x4_clamp_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_clamp_test;
diff --git a/tests/lib/typed_data/float32x4_cross_test.dart b/tests/lib/typed_data/float32x4_cross_test.dart
index 3268488..1bfeb5d 100644
--- a/tests/lib/typed_data/float32x4_cross_test.dart
+++ b/tests/lib/typed_data/float32x4_cross_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_cross_test;
diff --git a/tests/lib/typed_data/float32x4_list_test.dart b/tests/lib/typed_data/float32x4_list_test.dart
index d0e509b..901f712 100644
--- a/tests/lib/typed_data/float32x4_list_test.dart
+++ b/tests/lib/typed_data/float32x4_list_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background_compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_list_test;
diff --git a/tests/lib/typed_data/float32x4_shuffle_test.dart b/tests/lib/typed_data/float32x4_shuffle_test.dart
index 751ad2d..651d2e0 100644
--- a/tests/lib/typed_data/float32x4_shuffle_test.dart
+++ b/tests/lib/typed_data/float32x4_shuffle_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_shuffle_test;
diff --git a/tests/lib/typed_data/float32x4_sign_mask_test.dart b/tests/lib/typed_data/float32x4_sign_mask_test.dart
index 95825d4..06a0bb0 100644
--- a/tests/lib/typed_data/float32x4_sign_mask_test.dart
+++ b/tests/lib/typed_data/float32x4_sign_mask_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_sign_mask;
diff --git a/tests/lib/typed_data/float32x4_test.dart b/tests/lib/typed_data/float32x4_test.dart
index 782aca4..0e5eeb2 100644
--- a/tests/lib/typed_data/float32x4_test.dart
+++ b/tests/lib/typed_data/float32x4_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_test;
diff --git a/tests/lib/typed_data/float32x4_transpose_test.dart b/tests/lib/typed_data/float32x4_transpose_test.dart
index ecb39fb..c75b8ef 100644
--- a/tests/lib/typed_data/float32x4_transpose_test.dart
+++ b/tests/lib/typed_data/float32x4_transpose_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_transpose_test;
diff --git a/tests/lib/typed_data/float32x4_two_arg_shuffle_test.dart b/tests/lib/typed_data/float32x4_two_arg_shuffle_test.dart
index d0df59d..ebd1ac6 100644
--- a/tests/lib/typed_data/float32x4_two_arg_shuffle_test.dart
+++ b/tests/lib/typed_data/float32x4_two_arg_shuffle_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_two_arg_shuffle_test;
diff --git a/tests/lib/typed_data/float32x4_unbox_phi_test.dart b/tests/lib/typed_data/float32x4_unbox_phi_test.dart
index 9309642..c44ae5e 100644
--- a/tests/lib/typed_data/float32x4_unbox_phi_test.dart
+++ b/tests/lib/typed_data/float32x4_unbox_phi_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_unbox_regress_test;
diff --git a/tests/lib/typed_data/float32x4_unbox_regress_test.dart b/tests/lib/typed_data/float32x4_unbox_regress_test.dart
index 155804f..abb00d6 100644
--- a/tests/lib/typed_data/float32x4_unbox_regress_test.dart
+++ b/tests/lib/typed_data/float32x4_unbox_regress_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library float32x4_unbox_regress_test;
diff --git a/tests/lib/typed_data/float64x2_functional_test.dart b/tests/lib/typed_data/float64x2_functional_test.dart
index 7ae6cee..67359e1 100644
--- a/tests/lib/typed_data/float64x2_functional_test.dart
+++ b/tests/lib/typed_data/float64x2_functional_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 library float64x2_functional_test;
 
diff --git a/tests/lib/typed_data/float64x2_typed_list_test.dart b/tests/lib/typed_data/float64x2_typed_list_test.dart
index b00cfd4..95db6c6 100644
--- a/tests/lib/typed_data/float64x2_typed_list_test.dart
+++ b/tests/lib/typed_data/float64x2_typed_list_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 library float64x2_typed_list_test;
 
diff --git a/tests/lib/typed_data/int32x4_arithmetic_test.dart b/tests/lib/typed_data/int32x4_arithmetic_test.dart
index 0cf81b7..f558840 100644
--- a/tests/lib/typed_data/int32x4_arithmetic_test.dart
+++ b/tests/lib/typed_data/int32x4_arithmetic_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library uint32x4_arithmetic_test;
diff --git a/tests/lib/typed_data/int32x4_bigint_test.dart b/tests/lib/typed_data/int32x4_bigint_test.dart
index c4b8ab1..282a7fb 100644
--- a/tests/lib/typed_data/int32x4_bigint_test.dart
+++ b/tests/lib/typed_data/int32x4_bigint_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library int32x4_bigint_test;
diff --git a/tests/lib/typed_data/int32x4_list_test.dart b/tests/lib/typed_data/int32x4_list_test.dart
index 4fa1976..70480bd 100644
--- a/tests/lib/typed_data/int32x4_list_test.dart
+++ b/tests/lib/typed_data/int32x4_list_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library int32x4_list_test;
diff --git a/tests/lib/typed_data/int32x4_shuffle_test.dart b/tests/lib/typed_data/int32x4_shuffle_test.dart
index d2b4bc6..79d81c7 100644
--- a/tests/lib/typed_data/int32x4_shuffle_test.dart
+++ b/tests/lib/typed_data/int32x4_shuffle_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library uint32x4_shuffle_test;
diff --git a/tests/lib/typed_data/int32x4_sign_mask_test.dart b/tests/lib/typed_data/int32x4_sign_mask_test.dart
index b4e620e..522054d 100644
--- a/tests/lib/typed_data/int32x4_sign_mask_test.dart
+++ b/tests/lib/typed_data/int32x4_sign_mask_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library int32x4_sign_mask;
diff --git a/tests/lib/typed_data/int32x4_test.dart b/tests/lib/typed_data/int32x4_test.dart
index 7e7d258..06fd62b 100644
--- a/tests/lib/typed_data/int32x4_test.dart
+++ b/tests/lib/typed_data/int32x4_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 library int32x4_test;
 
diff --git a/tests/lib/typed_data/int64_list_load_store_test.dart b/tests/lib/typed_data/int64_list_load_store_test.dart
index 6dd09c6..de8cd4e 100644
--- a/tests/lib/typed_data/int64_list_load_store_test.dart
+++ b/tests/lib/typed_data/int64_list_load_store_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Test that the compiler's load elimination phase sees interfering writes to
 // the array's buffer.
diff --git a/tests/lib/typed_data/simd_store_to_load_forward_test.dart b/tests/lib/typed_data/simd_store_to_load_forward_test.dart
index 4fae48f..d7757b7 100644
--- a/tests/lib/typed_data/simd_store_to_load_forward_test.dart
+++ b/tests/lib/typed_data/simd_store_to_load_forward_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library simd_store_to_load_forward_test;
diff --git a/tests/lib/typed_data/simd_type_check_removal.dart b/tests/lib/typed_data/simd_type_check_removal.dart
index 8aaef06..bffb456 100644
--- a/tests/lib/typed_data/simd_type_check_removal.dart
+++ b/tests/lib/typed_data/simd_type_check_removal.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library simd_store_to_load_forward_test;
diff --git a/tests/lib/typed_data/typed_data_hierarchy_int64_test.dart b/tests/lib/typed_data/typed_data_hierarchy_int64_test.dart
index 3b38bb6..a96c86a 100644
--- a/tests/lib/typed_data/typed_data_hierarchy_int64_test.dart
+++ b/tests/lib/typed_data/typed_data_hierarchy_int64_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library typed_data_hierarchy_int64_test;
diff --git a/tests/lib/typed_data/typed_data_hierarchy_test.dart b/tests/lib/typed_data/typed_data_hierarchy_test.dart
index eba0e7b..242c2c2 100644
--- a/tests/lib/typed_data/typed_data_hierarchy_test.dart
+++ b/tests/lib/typed_data/typed_data_hierarchy_test.dart
@@ -1,7 +1,7 @@
 // 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.
-// VMOptions=--optimization-counter-threshold=10
+// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
 
 // Library tag to be able to run in html test framework.
 library typed_data_hierarchy_test;
diff --git a/tests/standalone/array_bounds_check_generalization_test.dart b/tests/standalone/array_bounds_check_generalization_test.dart
index 2b6099d..c9326e6 100644
--- a/tests/standalone/array_bounds_check_generalization_test.dart
+++ b/tests/standalone/array_bounds_check_generalization_test.dart
@@ -4,7 +4,7 @@
 //
 // We are using --complete-timeline below to ensure that we get timeline events
 // generated during all phases of compilation and deoptimization.
-// VMOptions=--optimization_counter_threshold=10 --no-use-osr --complete-timeline
+// VMOptions=--optimization_counter_threshold=10 --no-use-osr --complete-timeline --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/standalone/double_smi_comparison_test.dart b/tests/standalone/double_smi_comparison_test.dart
index 1e18c46..fff6015 100644
--- a/tests/standalone/double_smi_comparison_test.dart
+++ b/tests/standalone/double_smi_comparison_test.dart
@@ -5,7 +5,7 @@
 // Smi arguments. We convert Smi to doubles and to the operation. This is
 // not correct in 64-bit mode where not every Smi can be converted to a
 // double without loss of precision.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/standalone/float_array_test.dart b/tests/standalone/float_array_test.dart
index 2be1711..bf4588a 100644
--- a/tests/standalone/float_array_test.dart
+++ b/tests/standalone/float_array_test.dart
@@ -4,7 +4,7 @@
 //
 // Dart test program for testing native float arrays.
 
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 // Library tag to be able to run in html test framework.
 library FloatArrayTest;
diff --git a/tests/standalone/int_list_test.dart b/tests/standalone/int_list_test.dart
index c3510ff..2f13b01 100644
--- a/tests/standalone/int_list_test.dart
+++ b/tests/standalone/int_list_test.dart
@@ -5,7 +5,7 @@
 // Dart Mint representations and type propagation issue.
 // Testing Int32List and Uint32List loads.
 //
-// VMOptions=--optimization-counter-threshold=5 --no-use-osr
+// VMOptions=--optimization-counter-threshold=5 --no-use-osr --no-background-compilation
 
 import 'dart:typed_data';
 import "package:expect/expect.dart";
diff --git a/tests/standalone/io/security_context_argument_test.dart b/tests/standalone/io/security_context_argument_test.dart
index e5332ac..6e9ddcf 100644
--- a/tests/standalone/io/security_context_argument_test.dart
+++ b/tests/standalone/io/security_context_argument_test.dart
@@ -44,10 +44,10 @@
         tlsException);
     Expect.throws(() => c.setClientAuthorities(
         localFile('certificates/server_key.p12')),
-        argumentError);
+        tlsException);
     Expect.throws(() => c.setClientAuthorities(
         localFile('certificates/server_key.p12'), password: "iHackSites"),
-        argumentError);
+        tlsException);
 
     // File does not exist
     Expect.throws(() => c.usePrivateKey(
@@ -97,7 +97,7 @@
         tlsException);
     Expect.throws(() => c.setTrustedCertificatesBytes([]), tlsException);
     Expect.throws(() => c.useCertificateChainBytes([]), tlsException);
-    Expect.throws(() => c.setClientAuthoritiesBytes([]), argumentError);
+    Expect.throws(() => c.setClientAuthoritiesBytes([]), tlsException);
 
     // Malformed PEM certs.
     Expect.throws(() => c.usePrivateKey(
@@ -115,7 +115,7 @@
         tlsException);
     Expect.throws(() => c.setClientAuthorities(
         localFile('certificates/client_authority_malformed.pem')),
-        argumentError);
+        tlsException);
 
     c.usePrivateKey(
         localFile('certificates/server_key.pem'), password: "dartdart");
diff --git a/tests/standalone/map_literal_oom_test.dart b/tests/standalone/map_insert_remove_oom_test.dart
similarity index 100%
rename from tests/standalone/map_literal_oom_test.dart
rename to tests/standalone/map_insert_remove_oom_test.dart
diff --git a/tests/standalone/pair_location_remapping_test.dart b/tests/standalone/pair_location_remapping_test.dart
index 277ccc5..98abdf1 100644
--- a/tests/standalone/pair_location_remapping_test.dart
+++ b/tests/standalone/pair_location_remapping_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test that pair locations are remaped in slow path environments.
-// VMOptions=--optimization_counter_threshold=10 --no-use-osr
+// VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background_compilation
 
 import "package:expect/expect.dart";
 
diff --git a/tests/standalone/precompilation_dart2js_test.dart b/tests/standalone/precompilation_dart2js_test.dart
index 0deafcb..b964726 100644
--- a/tests/standalone/precompilation_dart2js_test.dart
+++ b/tests/standalone/precompilation_dart2js_test.dart
@@ -49,7 +49,7 @@
   Directory tmp;
   try {
     tmp = Directory.current.createTempSync("temp_precompilation_test");
-    var exec = "${dart_executable}_no_snapshot";
+    var exec = "${dart_executable}_bootstrap";
     var args = ["--package-root=$abs_package_root",
                 "--gen-precompiled-snapshot",
                 "${abs_package_root}compiler/src/dart2js.dart"];
diff --git a/tests/standalone/precompilation_test.dart b/tests/standalone/precompilation_test.dart
index e65bf17..ad493c9 100644
--- a/tests/standalone/precompilation_test.dart
+++ b/tests/standalone/precompilation_test.dart
@@ -49,7 +49,7 @@
   try {
     tmp = Directory.current.createTempSync("temp_precompilation_test");
     var result = Process.runSync(
-       "${dart_executable}_no_snapshot",
+       "${dart_executable}_bootstrap",
        ["--gen-precompiled-snapshot", Platform.script.path],
        workingDirectory: tmp.path);
     if (result.exitCode != 0) {
diff --git a/tests/standalone/regress_25335_test.dart b/tests/standalone/regress_25335_test.dart
index e4551a2..c20ed6d 100644
--- a/tests/standalone/regress_25335_test.dart
+++ b/tests/standalone/regress_25335_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 //
 // Test that canonicalization inserts constants with correct representation.
-// VMOptions=--optimization-counter-threshold=10 --optimization-filter=bar
+// VMOptions=--optimization-counter-threshold=10 --optimization-filter=bar --no-background-compilation
 
 import 'dart:typed_data';
 
diff --git a/tests/standalone/slowpath_safepoints_test.dart b/tests/standalone/slowpath_safepoints_test.dart
index 254ad76..e15723c 100644
--- a/tests/standalone/slowpath_safepoints_test.dart
+++ b/tests/standalone/slowpath_safepoints_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 // Test that safepoints associated with slowpaths don't mark non-existing values
 // alive.
-// VMOptions=--optimization-counter-threshold=5 --no-inline_alloc --gc_at_instance_allocation=_Double
+// VMOptions=--optimization-counter-threshold=5 --no-inline_alloc --gc_at_instance_allocation=_Double --no-background-compilation
 
 class C {
   final next;
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index 41f4d09..7efc16b 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -109,6 +109,9 @@
 precompilation_dart2js_test: Skip # Standalone only test.
 regress_25335_test: Skip # Int64List not supported.
 
+[ $compiler == dart2js && $cps_ir && $checked ]
+*: Skip # `assert` not implemented
+
 [ ($runtime == vm || $runtime == dart_product) && $mode == debug ]
 precompilation_dart2js_test: Pass, Slow
 
@@ -139,11 +142,9 @@
 oom_error_stacktrace_test: Skip # Fails on Linux
 
 [ $arch == mips ]
-io/signals_test: Fail # Issue 17440
 io/file_stat_test: Fail # Issue 17440
 io/process_sync_test: Skip # Starts 10 dart subprocesses, uses too much memory.
 io/signals_test: Skip # Starts 10 dart subprocesses, uses too much memory
-io/file_read_special_device_test: Fail # Issue 17440
 io/socket_source_address_test: Fail # Issue 22597
 
 [ $arch == mips && $mode == debug ]
@@ -156,7 +157,7 @@
 assert_test: Fail # Issue 14651.
 
 [ $compiler == none && $runtime == drt ]
-map_literal_oom_test: RuntimeError # Issue 24571
+map_insert_remove_oom_test: RuntimeError # Issue 24571
 
 [ $compiler == dartanalyzer || $compiler == dart2analyzer ]
 io/directory_invalid_arguments_test: StaticWarning
@@ -216,7 +217,7 @@
 assert_test: Pass, RuntimeError
 
 [ $noopt || $compiler == precompiler ]
-map_literal_oom_test: Pass, Crash # Issue 24678
+map_insert_remove_oom_test: Skip # Heap limit too low. Increasing iteration count to make a higher limit a meaningful test makes it too slow for simarm[64] bots.
 io/web_socket_test: Pass, RuntimeError # Issue 24674
 precompilation_test: Skip # Platform.executable
 precompilation_dart2js_test: Skip  # Platform.executable
diff --git a/tests/standalone/typed_data_test.dart b/tests/standalone/typed_data_test.dart
index 1b44624..a7e4c11 100644
--- a/tests/standalone/typed_data_test.dart
+++ b/tests/standalone/typed_data_test.dart
@@ -4,7 +4,7 @@
 //
 // Dart test program for testing typed data.
 
-// VMOptions=--optimization_counter_threshold=10
+// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
 
 // Library tag to be able to run in html test framework.
 library TypedDataTest;
diff --git a/tests/standalone/unboxed_int_converter_test.dart b/tests/standalone/unboxed_int_converter_test.dart
index 2b75a01..297861d 100644
--- a/tests/standalone/unboxed_int_converter_test.dart
+++ b/tests/standalone/unboxed_int_converter_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 // Test UnboxedIntConverter for int32.
-// VMOptions=--optimization-counter-threshold=10 --no-use-osr
+// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
 
 import "package:expect/expect.dart";
 import "dart:typed_data";
diff --git a/tests/utils/utils.status b/tests/utils/utils.status
index 4ca122e..7037f46 100644
--- a/tests/utils/utils.status
+++ b/tests/utils/utils.status
@@ -2,10 +2,7 @@
 # for details. All rights reserved. Use of this source code is governed by a
 # BSD-style license that can be found in the LICENSE file.
 
-[ $compiler == dart2js && $host_checked ]
-dummy_compiler_test: Crash # Issue 22809
-
-[ $compiler == dart2js && $host_checked == false ]
+[ $compiler == dart2js ]
 dummy_compiler_test: Slow, Pass
 
 [ $compiler == dart2js ]
@@ -18,9 +15,19 @@
 [ ($compiler == none || $compiler == precompiler) && $runtime != vm ]
 dart2js_test: SkipByDesign # Uses dart:io.
 
-
 [ $compiler == dart2js && $mode == debug ]
 dummy_compiler_test: Slow, Pass
 
-[ $noopt || $compiler == precompiler || $compiler == dart2app ]
+[ $noopt || $compiler == precompiler || $mode == product ]
 source_mirrors_test: SkipByDesign # Imports dart:mirrors
+
+[ $compiler == dart2analyzer ]
+dart2js_test: StaticWarning # https://github.com/dart-lang/sdk/issues/25943
+recursive_import_test: StaticWarning # https://github.com/dart-lang/sdk/issues/25943
+dummy_compiler_test: StaticWarning # https://github.com/dart-lang/sdk/issues/25943
+source_mirrors_test: StaticWarning # https://github.com/dart-lang/sdk/issues/25943
+
+[ $compiler == dart2js && $cps_ir && $host_checked ]
+dummy_compiler_test: Crash # Issue 24485
+recursive_import_test: Crash # Issue 24485
+source_mirrors_test: Crash # Issue 24485
diff --git a/tools/.gitignore b/tools/.gitignore
new file mode 100644
index 0000000..2814b7b
--- /dev/null
+++ b/tools/.gitignore
@@ -0,0 +1,3 @@
+# tools/idl_parser is populated by gclient sync
+idl_parser
+
diff --git a/tools/VERSION b/tools/VERSION
index 81183ef7..597af30 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -25,7 +25,7 @@
 #
 CHANNEL dev
 MAJOR 1
-MINOR 15
+MINOR 16
 PATCH 0
-PRERELEASE 5
-PRERELEASE_PATCH 1
+PRERELEASE 0
+PRERELEASE_PATCH 0
diff --git a/tools/android_link.py b/tools/android_link.py
index 28edce5..6efea04 100755
--- a/tools/android_link.py
+++ b/tools/android_link.py
@@ -48,9 +48,9 @@
   link_args = sys.argv[4:]
 
   # Check arguments.
-  if target_arch not in ['arm', 'arm64', 'ia32']:
+  if target_arch not in ['arm', 'arm64', 'ia32', 'x64']:
     raise Exception(sys.argv[0] +
-        " first argument must be 'arm', 'arm64', or 'ia32'")
+        " first argument must be 'arm', 'arm64', 'ia32', or 'x64'")
   if link_type not in ['executable', 'library', 'shared_library']:
     raise Exception(sys.argv[0] +
                     " second argument must be 'executable' or 'library'")
@@ -81,6 +81,8 @@
     toolchain_arch = 'aarch64-linux-android-4.9'
   if target_arch == 'ia32':
     toolchain_arch = 'x86-4.9'
+  if target_arch == 'x64':
+    toolchain_arch = 'x86_64-4.9'
   toolchain_dir = 'linux-x86_64'
   android_toolchain = os.path.join(android_ndk_root,
       'toolchains', toolchain_arch,
@@ -94,6 +96,8 @@
         android_toolchain, 'aarch64-linux-android-c++')
   if target_arch == 'ia32':
     android_linker = os.path.join(android_toolchain, 'i686-linux-android-g++')
+  if target_arch == 'x64':
+    android_linker = os.path.join(android_toolchain, 'x86_64-linux-android-g++')
 
   # Grab the path to libgcc.a, which we must explicitly add to the link,
   # by invoking the cross-compiler with the -print-libgcc-file-name flag.
@@ -102,6 +106,8 @@
     android_gcc = os.path.join(android_toolchain, 'aarch64-linux-android-gcc')
   if target_arch == 'ia32':
     android_gcc = os.path.join(android_toolchain, 'i686-linux-android-gcc')
+  if target_arch == 'x64':
+    android_gcc = os.path.join(android_toolchain, 'x86_64-linux-android-gcc')
   android_libgcc = subprocess.check_output(
       [android_gcc, '-print-libgcc-file-name']).strip()
 
@@ -109,14 +115,19 @@
   # Android specific system includes and libraries.
   android_ndk_sysroot = os.path.join(android_ndk_root,
       'platforms', 'android-14', 'arch-arm')
+  libdir = 'lib'
   if target_arch == 'arm64':
     android_ndk_sysroot = os.path.join(android_ndk_root,
       'platforms', 'android-21', 'arch-arm64')
   if target_arch == 'ia32':
     android_ndk_sysroot = os.path.join(android_ndk_root,
         'platforms', 'android-14', 'arch-x86')
+  if target_arch == 'x64':
+    android_ndk_sysroot = os.path.join(android_ndk_root,
+        'platforms', 'android-21', 'arch-x86_64')
+    libdir = 'lib64'
   CheckDirExists(android_ndk_sysroot, 'Android sysroot')
-  android_ndk_lib = os.path.join(android_ndk_sysroot,'usr','lib')
+  android_ndk_lib = os.path.join(android_ndk_sysroot, 'usr', libdir)
   crtend_android = os.path.join(android_ndk_lib, 'crtend_android.o')
 
   if link_target == 'target':
diff --git a/tools/build.py b/tools/build.py
index 62717d7..3ec70d2 100755
--- a/tools/build.py
+++ b/tools/build.py
@@ -119,7 +119,7 @@
         print ("Cross-compilation to %s is not supported on host os %s."
                % (os_name, HOST_OS))
         return False
-      if not arch in ['ia32', 'arm', 'armv6', 'armv5te', 'arm64', 'mips']:
+      if not arch in ['ia32', 'x64', 'arm', 'armv6', 'armv5te', 'arm64', 'mips']:
         print ("Cross-compilation to %s is not supported for architecture %s."
                % (os_name, arch))
         return False
@@ -143,6 +143,8 @@
       return os.path.join(android_toolchain, 'aarch64-linux-android')
     if arch == 'ia32':
       return os.path.join(android_toolchain, 'i686-linux-android')
+    if arch == 'x64':
+      return os.path.join(android_toolchain, 'x86_64-linux-android')
 
   # If no cross compiler is specified, only try to figure one out on Linux.
   if not HOST_OS in ['linux']:
@@ -195,7 +197,7 @@
   global THIRD_PARTY_ROOT
   if host_os not in ['linux']:
     raise Exception('Unsupported host os %s' % host_os)
-  if target_arch not in ['ia32', 'arm', 'arm64']:
+  if target_arch not in ['ia32', 'x64', 'arm', 'arm64']:
     raise Exception('Unsupported target architecture %s' % target_arch)
 
   # Set up path to the Android NDK.
@@ -211,6 +213,8 @@
     toolchain_arch = 'aarch64-linux-android-4.9'
   if target_arch == 'ia32':
     toolchain_arch = 'x86-4.9'
+  if target_arch == 'x64':
+    toolchain_arch = 'x86_64-4.9'
   toolchain_dir = 'linux-x86_64'
   android_toolchain = os.path.join(android_ndk_root,
       'toolchains', toolchain_arch,
diff --git a/tools/dom/dom.json b/tools/dom/dom.json
index c35f98cd..f22b2a4 100644
--- a/tools/dom/dom.json
+++ b/tools/dom/dom.json
@@ -88,7 +88,49 @@
   },
   "Animation": {
     "members": {
-      "Animation": {}
+      "Animation": {},
+      "cancel": {
+        "support_level": "untriaged"
+      },
+      "currentTime": {
+        "support_level": "untriaged"
+      },
+      "effect": {
+        "support_level": "untriaged"
+      },
+      "endClip": {
+        "support_level": "untriaged"
+      },
+      "finish": {
+        "support_level": "untriaged"
+      },
+      "finished": {
+        "support_level": "untriaged"
+      },
+      "pause": {
+        "support_level": "untriaged"
+      },
+      "play": {
+        "support_level": "untriaged"
+      },
+      "playState": {
+        "support_level": "untriaged"
+      },
+      "playbackRate": {
+        "support_level": "untriaged"
+      },
+      "ready": {
+        "support_level": "untriaged"
+      },
+      "reverse": {
+        "support_level": "untriaged"
+      },
+      "startClip": {
+        "support_level": "untriaged"
+      },
+      "startTime": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "untriaged"
   },
@@ -96,6 +138,61 @@
     "members": {},
     "support_level": "untriaged"
   },
+  "AnimationEffectReadOnly": {
+    "members": {
+      "computedTiming": {
+        "support_level": "untriaged"
+      },
+      "timing": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "AnimationEffectTiming": {
+    "members": {
+      "delay": {
+        "support_level": "untriaged"
+      },
+      "direction": {
+        "support_level": "untriaged"
+      },
+      "duration": {
+        "support_level": "untriaged"
+      },
+      "easing": {
+        "support_level": "untriaged"
+      },
+      "endDelay": {
+        "support_level": "untriaged"
+      },
+      "fill": {
+        "support_level": "untriaged"
+      },
+      "iterationStart": {
+        "support_level": "untriaged"
+      },
+      "iterations": {
+        "support_level": "untriaged"
+      },
+      "playbackRate": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "AnimationEvent": {
+    "members": {
+      "AnimationEvent": {},
+      "animationName": {
+        "support_level": "untriaged"
+      },
+      "elapsedTime": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "AnimationNode": {
     "members": {
       "activeDuration": {
@@ -171,6 +268,7 @@
   },
   "AnimationPlayerEvent": {
     "members": {
+      "AnimationPlayerEvent": {},
       "currentTime": {
         "support_level": "untriaged"
       },
@@ -188,8 +286,25 @@
       "getAnimationPlayers": {
         "support_level": "untriaged"
       },
+      "getAnimations": {
+        "support_level": "untriaged"
+      },
       "play": {
         "support_level": "untriaged"
+      },
+      "playbackRate": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "AppBannerPromptResult": {
+    "members": {
+      "outcome": {
+        "support_level": "untriaged"
+      },
+      "platform": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -224,6 +339,7 @@
   },
   "ApplicationCacheErrorEvent": {
     "members": {
+      "ApplicationCacheErrorEvent": {},
       "message": {
         "support_level": "untriaged"
       },
@@ -288,6 +404,12 @@
   "AudioBuffer": {
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section",
     "members": {
+      "copyFromChannel": {
+        "support_level": "untriaged"
+      },
+      "copyToChannel": {
+        "support_level": "untriaged"
+      },
       "duration": {},
       "gain": {},
       "getChannelData": {},
@@ -312,6 +434,9 @@
       "SCHEDULED_STATE": {},
       "UNSCHEDULED_STATE": {},
       "buffer": {},
+      "detune": {
+        "support_level": "untriaged"
+      },
       "gain": {},
       "loop": {},
       "loopEnd": {},
@@ -337,6 +462,9 @@
       "addEventListener": {
         "support_level": "untriaged"
       },
+      "close": {
+        "support_level": "untriaged"
+      },
       "createAnalyser": {},
       "createBiquadFilter": {},
       "createBuffer": {},
@@ -361,6 +489,9 @@
         "support_level": "untriaged"
       },
       "createScriptProcessor": {},
+      "createStereoPanner": {
+        "support_level": "untriaged"
+      },
       "createWaveShaper": {},
       "createWaveTable": {},
       "currentTime": {},
@@ -374,8 +505,17 @@
       "removeEventListener": {
         "support_level": "untriaged"
       },
+      "resume": {
+        "support_level": "untriaged"
+      },
       "sampleRate": {},
-      "startRendering": {}
+      "startRendering": {},
+      "state": {
+        "support_level": "untriaged"
+      },
+      "suspend": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -490,6 +630,7 @@
   "AutocompleteErrorEvent": {
     "comment": "http://wiki.whatwg.org/wiki/RequestAutocomplete",
     "members": {
+      "AutocompleteErrorEvent": {},
       "reason": {}
     },
     "support_level": "experimental"
@@ -520,6 +661,21 @@
     },
     "support_level": "stable"
   },
+  "BeforeInstallPromptEvent": {
+    "members": {
+      "BeforeInstallPromptEvent": {},
+      "platforms": {
+        "support_level": "untriaged"
+      },
+      "prompt": {
+        "support_level": "untriaged"
+      },
+      "userChoice": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "BeforeLoadEvent": {
     "members": {
       "url": {}
@@ -566,6 +722,102 @@
     },
     "support_level": "stable"
   },
+  "Bluetooth": {
+    "members": {
+      "requestDevice": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "BluetoothDevice": {
+    "members": {
+      "connectGATT": {
+        "support_level": "untriaged"
+      },
+      "deviceClass": {
+        "support_level": "untriaged"
+      },
+      "instanceID": {
+        "support_level": "untriaged"
+      },
+      "name": {
+        "support_level": "untriaged"
+      },
+      "paired": {
+        "support_level": "untriaged"
+      },
+      "productID": {
+        "support_level": "untriaged"
+      },
+      "productVersion": {
+        "support_level": "untriaged"
+      },
+      "vendorID": {
+        "support_level": "untriaged"
+      },
+      "vendorIDSource": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "BluetoothGATTCharacteristic": {
+    "members": {
+      "readValue": {
+        "support_level": "untriaged"
+      },
+      "uuid": {
+        "support_level": "untriaged"
+      },
+      "writeValue": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "BluetoothGATTRemoteServer": {
+    "members": {
+      "connected": {
+        "support_level": "untriaged"
+      },
+      "getPrimaryService": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "BluetoothGATTService": {
+    "members": {
+      "getCharacteristic": {
+        "support_level": "untriaged"
+      },
+      "isPrimary": {
+        "support_level": "untriaged"
+      },
+      "uuid": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "BluetoothUUID": {
+    "members": {
+      "canonicalUUID": {
+        "support_level": "untriaged"
+      },
+      "getCharacteristic": {
+        "support_level": "untriaged"
+      },
+      "getDescriptor": {
+        "support_level": "untriaged"
+      },
+      "getService": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Body": {
     "members": {
       "arrayBuffer": {
@@ -592,6 +844,42 @@
     "members": {},
     "support_level": "deprecated"
   },
+  "CHROMIUMSubscribeUniform": {
+    "members": {
+      "MOUSE_POSITION_CHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "SUBSCRIBED_VALUES_BUFFER_CHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "bindValuebufferCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "createValuebufferCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "deleteValuebufferCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "isValuebufferCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "populateSubscribedValuesCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "subscribeValueCHROMIUM": {
+        "support_level": "untriaged"
+      },
+      "uniformValuebufferCHROMIUM": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "CHROMIUMValuebuffer": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "CSS": {
     "comment": "http://www.w3.org/TR/css3-conditional/#the-css-interface",
     "dart_action": "experimental",
@@ -626,6 +914,20 @@
     },
     "support_level": "stable"
   },
+  "CSSGroupingRule": {
+    "members": {
+      "cssRules": {
+        "support_level": "untriaged"
+      },
+      "deleteRule": {
+        "support_level": "untriaged"
+      },
+      "insertRule": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "CSSHostRule": {
     "comment": "https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface",
     "members": {
@@ -661,6 +963,9 @@
       "__getter__": {
         "support_level": "untriaged"
       },
+      "appendRule": {
+        "support_level": "untriaged"
+      },
       "cssRules": {
         "support_level": "untriaged"
       },
@@ -969,6 +1274,12 @@
       },
       "keys": {
         "support_level": "untriaged"
+      },
+      "match": {
+        "support_level": "untriaged"
+      },
+      "open": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -1099,6 +1410,9 @@
       "fillRect": {},
       "fillStyle": {},
       "fillText": {},
+      "filter": {
+        "support_level": "untriaged"
+      },
       "font": {},
       "getContextAttributes": {
         "comment": "http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL",
@@ -1221,7 +1535,13 @@
   "CharacterData": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-FF21A306",
     "members": {
+      "after": {
+        "support_level": "untriaged"
+      },
       "appendData": {},
+      "before": {
+        "support_level": "untriaged"
+      },
       "data": {},
       "deleteData": {},
       "insertData": {},
@@ -1242,6 +1562,12 @@
   },
   "ChildNode": {
     "members": {
+      "after": {
+        "support_level": "untriaged"
+      },
+      "before": {
+        "support_level": "untriaged"
+      },
       "nextElementSibling": {
         "support_level": "untriaged"
       },
@@ -1298,11 +1624,17 @@
   },
   "Client": {
     "members": {
+      "frameType": {
+        "support_level": "untriaged"
+      },
       "id": {
         "support_level": "untriaged"
       },
       "postMessage": {
         "support_level": "untriaged"
+      },
+      "url": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -1322,11 +1654,28 @@
   "ClientRectList": {
     "comment": "http://www.w3.org/TR/cssom-view/#the-clientrectlist-interface",
     "members": {
+      "__getter__": {
+        "support_level": "untriaged"
+      },
       "item": {},
       "length": {}
     },
     "support_level": "stable"
   },
+  "Clients": {
+    "members": {
+      "claim": {
+        "support_level": "untriaged"
+      },
+      "matchAll": {
+        "support_level": "untriaged"
+      },
+      "openWindow": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Clipboard": {
     "comment": "http://www.w3.org/html/wg/drafts/html/master/editing.html#the-datatransfer-interface (Should be DataTransfer)",
     "members": {
@@ -1342,9 +1691,18 @@
     },
     "support_level": "stable"
   },
+  "ClipboardEvent": {
+    "members": {
+      "clipboardData": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "CloseEvent": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#closeevent",
     "members": {
+      "CloseEvent": {},
       "code": {},
       "reason": {},
       "wasClean": {}
@@ -1375,6 +1733,7 @@
   "CompositionEvent": {
     "comment": "http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-CompositionEvent",
     "members": {
+      "CompositionEvent": {},
       "activeSegmentEnd": {
         "support_level": "untriaged"
       },
@@ -1389,6 +1748,65 @@
     },
     "support_level": "stable"
   },
+  "CompositorProxy": {
+    "members": {
+      "CompositorProxy": {},
+      "disconnect": {
+        "support_level": "untriaged"
+      },
+      "opacity": {
+        "support_level": "untriaged"
+      },
+      "scrollLeft": {
+        "support_level": "untriaged"
+      },
+      "scrollTop": {
+        "support_level": "untriaged"
+      },
+      "supports": {
+        "support_level": "untriaged"
+      },
+      "transform": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "CompositorWorker": {
+    "members": {
+      "CompositorWorker": {},
+      "onerror": {
+        "support_level": "untriaged"
+      },
+      "onmessage": {
+        "support_level": "untriaged"
+      },
+      "postMessage": {
+        "support_level": "untriaged"
+      },
+      "terminate": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "CompositorWorkerGlobalScope": {
+    "members": {
+      "cancelAnimationFrame": {
+        "support_level": "untriaged"
+      },
+      "onmessage": {
+        "support_level": "untriaged"
+      },
+      "postMessage": {
+        "support_level": "untriaged"
+      },
+      "requestAnimationFrame": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Console": {
     "members": {
       "assert": {
@@ -1558,11 +1976,17 @@
       "avatarURL": {
         "support_level": "untriaged"
       },
+      "iconURL": {
+        "support_level": "untriaged"
+      },
       "id": {
         "support_level": "untriaged"
       },
       "name": {
         "support_level": "untriaged"
+      },
+      "type": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -1580,6 +2004,34 @@
       },
       "request": {
         "support_level": "untriaged"
+      },
+      "requireUserMediation": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "CrossOriginConnectEvent": {
+    "members": {
+      "acceptConnection": {
+        "support_level": "untriaged"
+      },
+      "client": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "CrossOriginServiceWorkerClient": {
+    "members": {
+      "origin": {
+        "support_level": "untriaged"
+      },
+      "postMessage": {
+        "support_level": "untriaged"
+      },
+      "targetUrl": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -1643,6 +2095,7 @@
   "CustomEvent": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-Events/#interface-CustomEvent",
     "members": {
+      "CustomEvent": {},
       "_detail": {
         "support_level": "untriaged"
       },
@@ -2137,6 +2590,9 @@
     "members": {
       "DOMSettableTokenList": {},
       "__getter__": {},
+      "item": {
+        "support_level": "untriaged"
+      },
       "value": {}
     },
     "support_level": "stable"
@@ -2144,6 +2600,9 @@
   "DOMStringList": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList",
     "members": {
+      "__getter__": {
+        "support_level": "untriaged"
+      },
       "contains": {},
       "item": {},
       "length": {}
@@ -2156,7 +2615,10 @@
       "DOMStringMap": {},
       "__delete__": {},
       "__getter__": {},
-      "__setter__": {}
+      "__setter__": {},
+      "item": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "stable"
   },
@@ -2313,6 +2775,15 @@
     },
     "support_level": "untriaged"
   },
+  "DefaultSessionStartEvent": {
+    "members": {
+      "DefaultSessionStartEvent": {},
+      "session": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "DelayNode": {
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DelayNode",
     "members": {
@@ -2359,6 +2830,7 @@
   },
   "DeviceLightEvent": {
     "members": {
+      "DeviceLightEvent": {},
       "value": {
         "support_level": "untriaged"
       }
@@ -2535,6 +3007,9 @@
       "documentURI": {},
       "domain": {},
       "elementFromPoint": {},
+      "elementsFromPoint": {
+        "support_level": "untriaged"
+      },
       "evaluate": {
         "dart_action": "suppress"
       },
@@ -2765,6 +3240,9 @@
       "onwheel": {
         "support_level": "untriaged"
       },
+      "origin": {
+        "support_level": "untriaged"
+      },
       "pointerLockElement": {
         "support_level": "untriaged"
       },
@@ -2783,6 +3261,9 @@
       "rootElement": {
         "support_level": "untriaged"
       },
+      "scrollingElement": {
+        "support_level": "untriaged"
+      },
       "securityPolicy": {
         "comment": "https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#idl-def-SecurityPolicy",
         "support_level": "experimental"
@@ -2972,6 +3453,27 @@
     },
     "support_level": "experimental"
   },
+  "EXTsRGB": {
+    "members": {
+      "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT": {
+        "support_level": "untriaged"
+      },
+      "SRGB8_ALPHA8_EXT": {
+        "support_level": "untriaged"
+      },
+      "SRGB_ALPHA_EXT": {
+        "support_level": "untriaged"
+      },
+      "SRGB_EXT": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "EffectModel": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "Element": {
     "comment": "http://dom.spec.whatwg.org/#interface-element",
     "members": {
@@ -2980,10 +3482,16 @@
         "dart_action": "suppress",
         "support_level": "deprecated"
       },
+      "after": {
+        "support_level": "untriaged"
+      },
       "animate": {
         "support_level": "untriaged"
       },
       "attributes": {},
+      "before": {
+        "support_level": "untriaged"
+      },
       "blur": {},
       "childElementCount": {},
       "children": {
@@ -3004,6 +3512,15 @@
       "clientLeft": {},
       "clientTop": {},
       "clientWidth": {},
+      "closest": {
+        "support_level": "untriaged"
+      },
+      "computedName": {
+        "support_level": "untriaged"
+      },
+      "computedRole": {
+        "support_level": "untriaged"
+      },
       "contentEditable": {
         "comment": "http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-elements.html#htmlelement",
         "dart_action": "stable",
@@ -3034,6 +3551,9 @@
       "getAnimationPlayers": {
         "support_level": "untriaged"
       },
+      "getAnimations": {
+        "support_level": "untriaged"
+      },
       "getAttribute": {
         "support_level": "untriaged"
       },
@@ -3311,6 +3831,12 @@
       "requestPointerLock": {
         "support_level": "untriaged"
       },
+      "scroll": {
+        "support_level": "untriaged"
+      },
+      "scrollBy": {
+        "support_level": "untriaged"
+      },
       "scrollByLines": {},
       "scrollByPages": {},
       "scrollHeight": {},
@@ -3322,6 +3848,9 @@
         "support_level": "nonstandard"
       },
       "scrollLeft": {},
+      "scrollTo": {
+        "support_level": "untriaged"
+      },
       "scrollTop": {},
       "scrollWidth": {},
       "setAttribute": {},
@@ -3508,6 +4037,7 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#errorevent",
     "dart_action": "unstable",
     "members": {
+      "ErrorEvent": {},
       "colno": {
         "support_level": "untriaged"
       },
@@ -3550,6 +4080,7 @@
         "dart_action": "suppress",
         "support_level": "deprecated"
       },
+      "Event": {},
       "FOCUS": {
         "comment": "https://developer.mozilla.org/en-US/docs/DOM/window.captureEvents",
         "dart_action": "suppress",
@@ -3701,6 +4232,7 @@
   },
   "ExtendableEvent": {
     "members": {
+      "ExtendableEvent": {},
       "waitUntil": {
         "support_level": "untriaged"
       }
@@ -3712,6 +4244,12 @@
       "FederatedCredential": {},
       "federation": {
         "support_level": "untriaged"
+      },
+      "protocol": {
+        "support_level": "untriaged"
+      },
+      "provider": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -3735,6 +4273,7 @@
   },
   "FetchEvent": {
     "members": {
+      "FetchEvent": {},
       "isReload": {
         "support_level": "untriaged"
       },
@@ -3750,6 +4289,7 @@
   "File": {
     "comment": "http://www.w3.org/TR/FileAPI/#dfn-file",
     "members": {
+      "File": {},
       "lastModified": {
         "support_level": "untriaged"
       },
@@ -3949,6 +4489,7 @@
   },
   "FocusEvent": {
     "members": {
+      "FocusEvent": {},
       "relatedTarget": {}
     },
     "support_level": "stable"
@@ -4066,10 +4607,29 @@
       "FormData": {},
       "append": {},
       "appendBlob": {},
-      "appendString": {}
+      "appendString": {},
+      "delete": {
+        "support_level": "untriaged"
+      },
+      "get": {
+        "support_level": "untriaged"
+      },
+      "getAll": {
+        "support_level": "untriaged"
+      },
+      "has": {
+        "support_level": "untriaged"
+      },
+      "set": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "stable"
   },
+  "FrameRequestCallback": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "GainNode": {
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode",
     "members": {
@@ -4107,6 +4667,7 @@
   },
   "GamepadEvent": {
     "members": {
+      "GamepadEvent": {},
       "gamepad": {
         "support_level": "untriaged"
       }
@@ -4135,6 +4696,17 @@
     },
     "support_level": "untriaged"
   },
+  "GeofencingEvent": {
+    "members": {
+      "id": {
+        "support_level": "untriaged"
+      },
+      "region": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "GeofencingRegion": {
     "members": {
       "id": {
@@ -4326,6 +4898,17 @@
     },
     "support_level": "untriaged"
   },
+  "HMDVRDevice": {
+    "members": {
+      "getEyeParameters": {
+        "support_level": "untriaged"
+      },
+      "setFieldOfView": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "HTMLAllCollection": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dom-document-all",
     "dart_action": "suppress",
@@ -4573,6 +5156,9 @@
         "dart_action": "unstable"
       },
       "name": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "setCustomValidity": {},
       "type": {},
       "validationMessage": {},
@@ -4762,6 +5348,9 @@
     "comment": "http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-elements.html#htmlelement",
     "members": {
       "accessKey": {},
+      "blur": {
+        "support_level": "untriaged"
+      },
       "children": {},
       "click": {},
       "contentEditable": {},
@@ -4770,6 +5359,9 @@
       },
       "dir": {},
       "draggable": {},
+      "focus": {
+        "support_level": "untriaged"
+      },
       "getInputContext": {
         "comment": "http://www.w3.org/TR/ime-api/#the-getinputcontext-method",
         "support_level": "experimental"
@@ -4964,6 +5556,9 @@
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
+      "style": {
+        "support_level": "untriaged"
+      },
       "tabIndex": {},
       "title": {},
       "translate": {},
@@ -5012,6 +5607,9 @@
       "elements": {},
       "form": {},
       "name": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "setCustomValidity": {},
       "type": {},
       "validationMessage": {},
@@ -5035,6 +5633,9 @@
     "members": {
       "HTMLFormControlsCollection": {},
       "__getter__": {},
+      "item": {
+        "support_level": "untriaged"
+      },
       "namedItem": {}
     },
     "support_level": "stable"
@@ -5054,6 +5655,9 @@
       "elements": {},
       "encoding": {},
       "enctype": {},
+      "item": {
+        "support_level": "untriaged"
+      },
       "length": {},
       "method": {},
       "name": {},
@@ -5066,6 +5670,9 @@
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofilling-form-controls:-the-autocomplete-attribute",
         "support_level": "experimental"
       },
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "requestAutocomplete": {
         "comment": "http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html",
         "support_level": "experimental"
@@ -5322,6 +5929,9 @@
         "support_level": "deprecated"
       },
       "alt": {},
+      "autocapitalize": {
+        "support_level": "untriaged"
+      },
       "autocomplete": {},
       "autofocus": {},
       "capture": {
@@ -5356,6 +5966,9 @@
       "max": {},
       "maxLength": {},
       "min": {},
+      "minLength": {
+        "support_level": "untriaged"
+      },
       "multiple": {},
       "name": {},
       "onspeechchange": {
@@ -5372,6 +5985,9 @@
       "pattern": {},
       "placeholder": {},
       "readOnly": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "required": {},
       "select": {},
       "selectionDirection": {},
@@ -5436,6 +6052,9 @@
         "dart_action": "unstable"
       },
       "name": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "setCustomValidity": {},
       "type": {},
       "validationMessage": {},
@@ -5690,9 +6309,18 @@
       "readyState": {},
       "seekable": {},
       "seeking": {},
+      "session": {
+        "support_level": "untriaged"
+      },
       "setMediaKeys": {
         "support_level": "untriaged"
       },
+      "setSinkId": {
+        "support_level": "untriaged"
+      },
+      "sinkId": {
+        "support_level": "untriaged"
+      },
       "src": {},
       "startTime": {
         "support_level": "nonstandard"
@@ -5772,9 +6400,15 @@
       "disabled": {
         "support_level": "untriaged"
       },
+      "icon": {
+        "support_level": "untriaged"
+      },
       "label": {
         "support_level": "untriaged"
       },
+      "radiogroup": {
+        "support_level": "untriaged"
+      },
       "type": {
         "support_level": "untriaged"
       }
@@ -5898,6 +6532,9 @@
         "support_level": "untriaged"
       },
       "name": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "setCustomValidity": {},
       "standby": {
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLObjectElement-partial",
@@ -5945,6 +6582,9 @@
   "HTMLOptionsCollection": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection-0",
     "members": {
+      "item": {
+        "support_level": "untriaged"
+      },
       "length": {},
       "namedItem": {},
       "numericIndexGetter": {},
@@ -5967,6 +6607,9 @@
         "dart_action": "unstable"
       },
       "name": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "setCustomValidity": {},
       "type": {},
       "validationMessage": {},
@@ -6109,6 +6752,9 @@
       "remove": {
         "support_level": "untriaged"
       },
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "required": {},
       "selectedIndex": {},
       "selectedOptions": {},
@@ -6427,6 +7073,9 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-textarea-element",
     "members": {
       "HTMLTextAreaElement": {},
+      "autocapitalize": {
+        "support_level": "untriaged"
+      },
       "autofocus": {},
       "checkValidity": {},
       "cols": {},
@@ -6445,9 +7094,15 @@
         "dart_action": "unstable"
       },
       "maxLength": {},
+      "minLength": {
+        "support_level": "untriaged"
+      },
       "name": {},
       "placeholder": {},
       "readOnly": {},
+      "reportValidity": {
+        "support_level": "untriaged"
+      },
       "required": {},
       "rows": {},
       "select": {},
@@ -6576,6 +7231,7 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#hashchangeevent",
     "dart_action": "unstable",
     "members": {
+      "HashChangeEvent": {},
       "initHashChangeEvent": {},
       "newURL": {},
       "oldURL": {}
@@ -6636,6 +7292,9 @@
       "forward": {},
       "go": {},
       "length": {},
+      "options": {
+        "support_level": "untriaged"
+      },
       "pushState": {},
       "replaceState": {},
       "state": {}
@@ -6752,6 +7411,12 @@
     "members": {
       "count": {},
       "get": {},
+      "getAll": {
+        "support_level": "untriaged"
+      },
+      "getAllKeys": {
+        "support_level": "untriaged"
+      },
       "getKey": {},
       "keyPath": {},
       "multiEntry": {},
@@ -6802,6 +7467,12 @@
       "delete": {},
       "deleteIndex": {},
       "get": {},
+      "getAll": {
+        "support_level": "untriaged"
+      },
+      "getAllKeys": {
+        "support_level": "untriaged"
+      },
       "index": {},
       "indexNames": {},
       "keyPath": {},
@@ -6855,6 +7526,9 @@
       "error": {},
       "mode": {},
       "objectStore": {},
+      "objectStoreNames": {
+        "support_level": "untriaged"
+      },
       "onabort": {},
       "oncomplete": {},
       "onerror": {},
@@ -6869,6 +7543,7 @@
     "comment": "http://www.w3.org/TR/IndexedDB/#idl-def-IDBVersionChangeEvent",
     "dart_action": "unstable",
     "members": {
+      "IDBVersionChangeEvent": {},
       "dataLoss": {
         "support_level": "untriaged"
       },
@@ -6921,6 +7596,15 @@
     },
     "support_level": "untriaged"
   },
+  "InputDevice": {
+    "members": {
+      "InputDevice": {},
+      "firesTouchEvents": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "InputMethodContext": {
     "comment": "http://www.w3.org/TR/ime-api/#idl-def-InputMethodContext",
     "members": {
@@ -7060,16 +7744,29 @@
       "DOM_KEY_LOCATION_STANDARD": {
         "support_level": "untriaged"
       },
+      "KeyboardEvent": {},
       "altGraphKey": {
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
       "altKey": {},
+      "charCode": {
+        "support_level": "untriaged"
+      },
+      "code": {
+        "support_level": "untriaged"
+      },
       "ctrlKey": {},
       "getModifierState": {
         "support_level": "untriaged"
       },
       "initKeyboardEvent": {},
+      "key": {
+        "support_level": "untriaged"
+      },
+      "keyCode": {
+        "support_level": "untriaged"
+      },
       "keyIdentifier": {
         "dart_action": "experimental",
         "support_level": "nonstandard"
@@ -7085,10 +7782,19 @@
       "repeat": {
         "support_level": "untriaged"
       },
-      "shiftKey": {}
+      "shiftKey": {},
+      "which": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "stable"
   },
+  "KeyframeEffect": {
+    "members": {
+      "KeyframeEffect": {}
+    },
+    "support_level": "untriaged"
+  },
   "LocalCredential": {
     "members": {
       "LocalCredential": {},
@@ -7179,6 +7885,7 @@
   "MIDIConnectionEvent": {
     "comment": "http://webaudio.github.io/web-midi-api/#midiconnectionevent-interface",
     "members": {
+      "MIDIConnectionEvent": {},
       "port": {}
     },
     "support_level": "experimental"
@@ -7221,6 +7928,7 @@
   "MIDIMessageEvent": {
     "comment": "http://webaudio.github.io/web-midi-api/#midimessageevent-interface",
     "members": {
+      "MIDIMessageEvent": {},
       "data": {},
       "receivedTime": {}
     },
@@ -7260,12 +7968,24 @@
     "comment": "http://webaudio.github.io/web-midi-api/#idl-def-MIDIPort",
     "members": {
       "addEventListener": {},
+      "close": {
+        "support_level": "untriaged"
+      },
+      "connection": {
+        "support_level": "untriaged"
+      },
       "dispatchEvent": {},
       "id": {},
       "manufacturer": {},
       "name": {},
       "ondisconnect": {},
+      "open": {
+        "support_level": "untriaged"
+      },
       "removeEventListener": {},
+      "state": {
+        "support_level": "untriaged"
+      },
       "type": {},
       "version": {}
     },
@@ -7320,6 +8040,17 @@
     "members": {},
     "support_level": "untriaged"
   },
+  "MediaDevices": {
+    "members": {
+      "enumerateDevices": {
+        "support_level": "untriaged"
+      },
+      "getUserMedia": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "MediaElementAudioSourceNode": {
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode",
     "members": {
@@ -7329,6 +8060,18 @@
     },
     "support_level": "experimental"
   },
+  "MediaEncryptedEvent": {
+    "members": {
+      "MediaEncryptedEvent": {},
+      "initData": {
+        "support_level": "untriaged"
+      },
+      "initDataType": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "MediaError": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#mediaerror",
     "dart_action": "unstable",
@@ -7364,6 +8107,7 @@
   "MediaKeyEvent": {
     "comment": "https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#event-definitions",
     "members": {
+      "MediaKeyEvent": {},
       "defaultURL": {},
       "errorCode": {},
       "initData": {},
@@ -7377,8 +8121,12 @@
   "MediaKeyMessageEvent": {
     "comment": "https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeymessageevent",
     "members": {
+      "MediaKeyMessageEvent": {},
       "destinationURL": {},
-      "message": {}
+      "message": {},
+      "messageType": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -7402,10 +8150,19 @@
       },
       "dispatchEvent": {},
       "error": {},
+      "expiration": {
+        "support_level": "untriaged"
+      },
       "generateRequest": {
         "support_level": "untriaged"
       },
+      "keyStatuses": {
+        "support_level": "untriaged"
+      },
       "keySystem": {},
+      "load": {
+        "support_level": "untriaged"
+      },
       "onkeyadded": {
         "support_level": "untriaged"
       },
@@ -7421,12 +8178,37 @@
       "release": {
         "support_level": "untriaged"
       },
+      "remove": {
+        "support_level": "untriaged"
+      },
       "removeEventListener": {},
       "sessionId": {},
       "update": {}
     },
     "support_level": "experimental"
   },
+  "MediaKeyStatusMap": {
+    "members": {
+      "size": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "MediaKeySystemAccess": {
+    "members": {
+      "createMediaKeys": {
+        "support_level": "untriaged"
+      },
+      "getConfiguration": {
+        "support_level": "untriaged"
+      },
+      "keySystem": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "MediaKeys": {
     "comment": "https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html",
     "members": {
@@ -7438,7 +8220,10 @@
       "isTypeSupported": {
         "support_level": "untriaged"
       },
-      "keySystem": {}
+      "keySystem": {},
+      "setServerCertificate": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -7470,6 +8255,7 @@
   },
   "MediaQueryListEvent": {
     "members": {
+      "MediaQueryListEvent": {},
       "matches": {
         "support_level": "untriaged"
       },
@@ -7487,6 +8273,18 @@
     },
     "support_level": "stable"
   },
+  "MediaSession": {
+    "members": {
+      "MediaSession": {},
+      "activate": {
+        "support_level": "untriaged"
+      },
+      "deactivate": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "MediaSource": {
     "comment": "https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#mediasource",
     "members": {
@@ -7509,6 +8307,9 @@
     "comment": "http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastream",
     "members": {
       "MediaStream": {},
+      "active": {
+        "support_level": "untriaged"
+      },
       "addEventListener": {},
       "addTrack": {},
       "clone": {
@@ -7552,6 +8353,7 @@
   "MediaStreamEvent": {
     "comment": "http://dev.w3.org/2011/webrtc/editor/getusermedia.html",
     "members": {
+      "MediaStreamEvent": {},
       "stream": {}
     },
     "support_level": "experimental"
@@ -7618,6 +8420,7 @@
   "MessageEvent": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#messageevent",
     "members": {
+      "MessageEvent": {},
       "data": {},
       "initMessageEvent": {},
       "lastEventId": {
@@ -7686,8 +8489,12 @@
   "MouseEvent": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-Events/#events-mouseevents",
     "members": {
+      "MouseEvent": {},
       "altKey": {},
       "button": {},
+      "buttons": {
+        "support_level": "untriaged"
+      },
       "clientX": {},
       "clientY": {},
       "ctrlKey": {},
@@ -7699,6 +8506,12 @@
         "support_level": "deprecated"
       },
       "initMouseEvent": {},
+      "layerX": {
+        "support_level": "untriaged"
+      },
+      "layerY": {
+        "support_level": "untriaged"
+      },
       "metaKey": {},
       "movementX": {
         "support_level": "untriaged"
@@ -7714,6 +8527,12 @@
         "dart_action": "unstable",
         "support_level": "nonstandard"
       },
+      "pageX": {
+        "support_level": "untriaged"
+      },
+      "pageY": {
+        "support_level": "untriaged"
+      },
       "region": {
         "support_level": "untriaged"
       },
@@ -7730,6 +8549,9 @@
       "webkitMovementY": {
         "support_level": "experimental"
       },
+      "which": {
+        "support_level": "untriaged"
+      },
       "x": {
         "dart_action": "suppress",
         "support_level": "nonstandard"
@@ -7818,6 +8640,9 @@
       "appVersion": {
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorid"
       },
+      "bluetooth": {
+        "support_level": "untriaged"
+      },
       "connection": {
         "support_level": "untriaged"
       },
@@ -7858,6 +8683,9 @@
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils",
         "support_level": "experimental"
       },
+      "getVRDevices": {
+        "support_level": "untriaged"
+      },
       "hardwareConcurrency": {
         "support_level": "untriaged"
       },
@@ -7877,6 +8705,9 @@
       "maxTouchPoints": {
         "support_level": "untriaged"
       },
+      "mediaDevices": {
+        "support_level": "untriaged"
+      },
       "mimeTypes": {
         "dart_action": "experimental",
         "support_level": "nonstandard"
@@ -7885,6 +8716,9 @@
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#navigatoronline",
         "dart_action": "unstable"
       },
+      "permissions": {
+        "support_level": "untriaged"
+      },
       "platform": {
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorid"
       },
@@ -7914,12 +8748,18 @@
       "requestMIDIAccess": {
         "support_level": "untriaged"
       },
+      "requestMediaKeySystemAccess": {
+        "support_level": "untriaged"
+      },
       "sendBeacon": {
         "support_level": "untriaged"
       },
       "serviceWorker": {
         "support_level": "untriaged"
       },
+      "services": {
+        "support_level": "untriaged"
+      },
       "storageQuota": {
         "support_level": "untriaged"
       },
@@ -8013,6 +8853,17 @@
     },
     "support_level": "untriaged"
   },
+  "NavigatorStorageUtils": {
+    "members": {
+      "cookieEnabled": {
+        "support_level": "untriaged"
+      },
+      "getStorageUpdates": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "NavigatorUserMediaError": {
     "comment": "http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaError",
     "members": {
@@ -8196,6 +9047,25 @@
     },
     "support_level": "stable"
   },
+  "NonDocumentTypeChildNode": {
+    "members": {
+      "nextElementSibling": {
+        "support_level": "untriaged"
+      },
+      "previousElementSibling": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "NonElementParentNode": {
+    "members": {
+      "getElementById": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Notation": {
     "comment": "http://dom.spec.whatwg.org/#notation",
     "dart_action": "suppress",
@@ -8219,6 +9089,9 @@
         "support_level": "nonstandard"
       },
       "close": {},
+      "data": {
+        "support_level": "untriaged"
+      },
       "dir": {
         "dart_action": "experimental",
         "support_level": "nonstandard"
@@ -8249,16 +9122,31 @@
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
+      "silent": {
+        "support_level": "untriaged"
+      },
       "tag": {
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
       "title": {
         "support_level": "untriaged"
+      },
+      "vibrate": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "experimental"
   },
+  "NotificationEvent": {
+    "members": {
+      "NotificationEvent": {},
+      "notification": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "NotificationPermissionCallback": {
     "comment": "http://www.w3.org/TR/notifications/#notificationpermissioncallback",
     "members": {
@@ -8326,7 +9214,10 @@
   "OfflineAudioContext": {
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioContext-section",
     "members": {
-      "OfflineAudioContext": {}
+      "OfflineAudioContext": {},
+      "startRendering": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -8408,6 +9299,7 @@
   "PageTransitionEvent": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent",
     "members": {
+      "PageTransitionEvent": {},
       "persisted": {}
     },
     "support_level": "experimental"
@@ -8482,6 +9374,18 @@
     },
     "support_level": "untriaged"
   },
+  "PasswordCredential": {
+    "members": {
+      "PasswordCredential": {},
+      "formData": {
+        "support_level": "untriaged"
+      },
+      "password": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Path": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects",
     "members": {
@@ -8539,6 +9443,9 @@
       "addEventListener": {
         "support_level": "untriaged"
       },
+      "clearFrameTimings": {
+        "support_level": "untriaged"
+      },
       "clearMarks": {
         "comment": "https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface",
         "support_level": "experimental"
@@ -8588,6 +9495,9 @@
       "removeEventListener": {
         "support_level": "untriaged"
       },
+      "setFrameTimingBufferSize": {
+        "support_level": "untriaged"
+      },
       "timing": {},
       "webkitClearResourceTimings": {
         "comment": "http://www.w3c-test.org/webperf/specs/ResourceTiming/#extensions-performance-interface",
@@ -8600,6 +9510,14 @@
     },
     "support_level": "stable"
   },
+  "PerformanceCompositeTiming": {
+    "members": {
+      "sourceFrame": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "PerformanceEntry": {
     "comment": "http://www.w3.org/TR/performance-timeline/#sec-PerformanceEntry-interface",
     "members": {
@@ -8641,6 +9559,14 @@
     },
     "support_level": "stable"
   },
+  "PerformanceRenderTiming": {
+    "members": {
+      "sourceFrame": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "PerformanceResourceTiming": {
     "comment": "http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming",
     "members": {
@@ -8664,7 +9590,10 @@
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
-      "secureConnectionStart": {}
+      "secureConnectionStart": {},
+      "workerStart": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -8696,10 +9625,81 @@
     },
     "support_level": "stable"
   },
+  "PeriodicSyncEvent": {
+    "members": {
+      "PeriodicSyncEvent": {},
+      "registration": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "PeriodicSyncManager": {
+    "members": {
+      "getRegistration": {
+        "support_level": "untriaged"
+      },
+      "getRegistrations": {
+        "support_level": "untriaged"
+      },
+      "minPossiblePeriod": {
+        "support_level": "untriaged"
+      },
+      "permissionState": {
+        "support_level": "untriaged"
+      },
+      "register": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "PeriodicSyncRegistration": {
+    "members": {
+      "minPeriod": {
+        "support_level": "untriaged"
+      },
+      "networkState": {
+        "support_level": "untriaged"
+      },
+      "powerState": {
+        "support_level": "untriaged"
+      },
+      "tag": {
+        "support_level": "untriaged"
+      },
+      "unregister": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "PeriodicWave": {
     "members": {},
     "support_level": "untriaged"
   },
+  "PermissionStatus": {
+    "members": {
+      "onchange": {
+        "support_level": "untriaged"
+      },
+      "state": {
+        "support_level": "untriaged"
+      },
+      "status": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "Permissions": {
+    "members": {
+      "query": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Player": {
     "members": {
       "cancel": {
@@ -8767,6 +9767,9 @@
   },
   "PluginPlaceholderElement": {
     "members": {
+      "closeable": {
+        "support_level": "untriaged"
+      },
       "createdCallback": {
         "support_level": "untriaged"
       },
@@ -8776,9 +9779,40 @@
     },
     "support_level": "untriaged"
   },
+  "PointerEvent": {
+    "members": {
+      "PointerEvent": {},
+      "height": {
+        "support_level": "untriaged"
+      },
+      "isPrimary": {
+        "support_level": "untriaged"
+      },
+      "pointerId": {
+        "support_level": "untriaged"
+      },
+      "pointerType": {
+        "support_level": "untriaged"
+      },
+      "pressure": {
+        "support_level": "untriaged"
+      },
+      "tiltX": {
+        "support_level": "untriaged"
+      },
+      "tiltY": {
+        "support_level": "untriaged"
+      },
+      "width": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "PopStateEvent": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#popstateevent",
     "members": {
+      "PopStateEvent": {},
       "state": {}
     },
     "support_level": "stable"
@@ -8811,8 +9845,69 @@
     },
     "support_level": "stable"
   },
+  "PositionSensorVRDevice": {
+    "members": {
+      "getImmediateState": {
+        "support_level": "untriaged"
+      },
+      "getState": {
+        "support_level": "untriaged"
+      },
+      "resetSensor": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Presentation": {
-    "members": {},
+    "members": {
+      "getAvailability": {
+        "support_level": "untriaged"
+      },
+      "joinSession": {
+        "support_level": "untriaged"
+      },
+      "session": {
+        "support_level": "untriaged"
+      },
+      "startSession": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "PresentationAvailability": {
+    "members": {
+      "onchange": {
+        "support_level": "untriaged"
+      },
+      "value": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "PresentationSession": {
+    "members": {
+      "binaryType": {
+        "support_level": "untriaged"
+      },
+      "close": {
+        "support_level": "untriaged"
+      },
+      "id": {
+        "support_level": "untriaged"
+      },
+      "onmessage": {
+        "support_level": "untriaged"
+      },
+      "send": {
+        "support_level": "untriaged"
+      },
+      "state": {
+        "support_level": "untriaged"
+      }
+    },
     "support_level": "untriaged"
   },
   "ProcessingInstruction": {
@@ -8832,6 +9927,7 @@
   "ProgressEvent": {
     "comment": "http://xhr.spec.whatwg.org/#interface-progressevent",
     "members": {
+      "ProgressEvent": {},
       "lengthComputable": {},
       "loaded": {},
       "total": {}
@@ -8870,6 +9966,18 @@
     },
     "support_level": "untriaged"
   },
+  "PromiseRejectionEvent": {
+    "members": {
+      "PromiseRejectionEvent": {},
+      "promise": {
+        "support_level": "untriaged"
+      },
+      "reason": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "PromiseResolver": {
     "members": {
       "fulfill": {
@@ -8886,6 +9994,7 @@
   },
   "PushEvent": {
     "members": {
+      "PushEvent": {},
       "data": {
         "support_level": "untriaged"
       }
@@ -8894,8 +10003,35 @@
   },
   "PushManager": {
     "members": {
+      "getSubscription": {
+        "support_level": "untriaged"
+      },
+      "permissionState": {
+        "support_level": "untriaged"
+      },
       "register": {
         "support_level": "untriaged"
+      },
+      "subscribe": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "PushMessageData": {
+    "members": {
+      "PushMessageData": {},
+      "arrayBuffer": {
+        "support_level": "untriaged"
+      },
+      "blob": {
+        "support_level": "untriaged"
+      },
+      "json": {
+        "support_level": "untriaged"
+      },
+      "text": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -8911,6 +10047,17 @@
     },
     "support_level": "untriaged"
   },
+  "PushSubscription": {
+    "members": {
+      "endpoint": {
+        "support_level": "untriaged"
+      },
+      "unsubscribe": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "RGBColor": {
     "comment": "http://dev.w3.org/csswg/cssom/",
     "dart_action": "suppress",
@@ -8940,6 +10087,7 @@
   "RTCDTMFToneChangeEvent": {
     "comment": "http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDTMFToneChangeEvent",
     "members": {
+      "RTCDTMFToneChangeEvent": {},
       "tone": {}
     },
     "support_level": "experimental"
@@ -9103,6 +10251,9 @@
   "RadioNodeList": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/#radionodelist",
     "members": {
+      "item": {
+        "support_level": "untriaged"
+      },
       "value": {}
     },
     "support_level": "stable"
@@ -9196,7 +10347,18 @@
     },
     "support_level": "deprecated"
   },
-  "ReadableStream": {
+  "ReadableByteStream": {
+    "members": {
+      "cancel": {
+        "support_level": "untriaged"
+      },
+      "getReader": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "ReadableByteStreamReader": {
     "members": {
       "cancel": {
         "support_level": "untriaged"
@@ -9207,6 +10369,26 @@
       "read": {
         "support_level": "untriaged"
       },
+      "releaseLock": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "ReadableStream": {
+    "members": {
+      "cancel": {
+        "support_level": "untriaged"
+      },
+      "closed": {
+        "support_level": "untriaged"
+      },
+      "getReader": {
+        "support_level": "untriaged"
+      },
+      "read": {
+        "support_level": "untriaged"
+      },
       "state": {
         "support_level": "untriaged"
       },
@@ -9216,6 +10398,23 @@
     },
     "support_level": "untriaged"
   },
+  "ReadableStreamReader": {
+    "members": {
+      "cancel": {
+        "support_level": "untriaged"
+      },
+      "closed": {
+        "support_level": "untriaged"
+      },
+      "read": {
+        "support_level": "untriaged"
+      },
+      "releaseLock": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Rect": {
     "comment": "http://dev.w3.org/csswg/cssom/",
     "dart_action": "suppress",
@@ -9229,6 +10428,7 @@
   },
   "RelatedEvent": {
     "members": {
+      "RelatedEvent": {},
       "relatedTarget": {
         "support_level": "untriaged"
       }
@@ -9241,6 +10441,9 @@
       "clone": {
         "support_level": "untriaged"
       },
+      "context": {
+        "support_level": "untriaged"
+      },
       "credentials": {
         "support_level": "untriaged"
       },
@@ -9941,9 +11144,15 @@
     "comment": "http://www.w3.org/TR/SVG/types.html#InterfaceSVGElement",
     "dart_action": "unstable",
     "members": {
+      "blur": {
+        "support_level": "untriaged"
+      },
       "className": {
         "support_level": "untriaged"
       },
+      "focus": {
+        "support_level": "untriaged"
+      },
       "getPresentationAttribute": {
         "support_level": "untriaged"
       },
@@ -10838,6 +12047,12 @@
         "comment": "http://www.w3.org/TR/SVG/filters.html#InterfaceSVGFilterPrimitiveStandardAttributes"
       },
       "in1": {},
+      "kernelUnitLengthX": {
+        "support_level": "untriaged"
+      },
+      "kernelUnitLengthY": {
+        "support_level": "untriaged"
+      },
       "result": {
         "comment": "http://www.w3.org/TR/SVG/filters.html#InterfaceSVGFilterPrimitiveStandardAttributes"
       },
@@ -12922,6 +14137,45 @@
     },
     "support_level": "experimental"
   },
+  "ScrollState": {
+    "members": {
+      "ScrollState": {},
+      "consumeDelta": {
+        "support_level": "untriaged"
+      },
+      "deltaGranularity": {
+        "support_level": "untriaged"
+      },
+      "deltaX": {
+        "support_level": "untriaged"
+      },
+      "deltaY": {
+        "support_level": "untriaged"
+      },
+      "fromUserInput": {
+        "support_level": "untriaged"
+      },
+      "inInertialPhase": {
+        "support_level": "untriaged"
+      },
+      "isBeginning": {
+        "support_level": "untriaged"
+      },
+      "isEnding": {
+        "support_level": "untriaged"
+      },
+      "shouldPropagate": {
+        "support_level": "untriaged"
+      },
+      "velocityX": {
+        "support_level": "untriaged"
+      },
+      "velocityY": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "SecurityPolicy": {
     "comment": "https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy",
     "members": {
@@ -12946,6 +14200,7 @@
   "SecurityPolicyViolationEvent": {
     "comment": "https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events",
     "members": {
+      "SecurityPolicyViolationEvent": {},
       "blockedURI": {},
       "columnNumber": {},
       "documentURI": {},
@@ -13013,6 +14268,58 @@
     },
     "support_level": "stable"
   },
+  "ServicePort": {
+    "members": {
+      "close": {
+        "support_level": "untriaged"
+      },
+      "data": {
+        "support_level": "untriaged"
+      },
+      "name": {
+        "support_level": "untriaged"
+      },
+      "postMessage": {
+        "support_level": "untriaged"
+      },
+      "targetURL": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "ServicePortCollection": {
+    "members": {
+      "connect": {
+        "support_level": "untriaged"
+      },
+      "match": {
+        "support_level": "untriaged"
+      },
+      "matchAll": {
+        "support_level": "untriaged"
+      },
+      "onmessage": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "ServicePortConnectEvent": {
+    "members": {
+      "ServicePortConnectEvent": {},
+      "origin": {
+        "support_level": "untriaged"
+      },
+      "respondWith": {
+        "support_level": "untriaged"
+      },
+      "targetURL": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "ServiceWorker": {
     "members": {},
     "support_level": "untriaged"
@@ -13050,9 +14357,15 @@
       "getRegistration": {
         "support_level": "untriaged"
       },
+      "getRegistrations": {
+        "support_level": "untriaged"
+      },
       "installing": {
         "support_level": "untriaged"
       },
+      "onmessage": {
+        "support_level": "untriaged"
+      },
       "ready": {
         "support_level": "untriaged"
       },
@@ -13088,8 +14401,38 @@
       "onmessage": {
         "support_level": "untriaged"
       },
+      "ports": {
+        "support_level": "untriaged"
+      },
+      "registration": {
+        "support_level": "untriaged"
+      },
       "scope": {
         "support_level": "untriaged"
+      },
+      "skipWaiting": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "ServiceWorkerMessageEvent": {
+    "members": {
+      "ServiceWorkerMessageEvent": {},
+      "data": {
+        "support_level": "untriaged"
+      },
+      "lastEventId": {
+        "support_level": "untriaged"
+      },
+      "origin": {
+        "support_level": "untriaged"
+      },
+      "ports": {
+        "support_level": "untriaged"
+      },
+      "source": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
@@ -13099,15 +14442,36 @@
       "active": {
         "support_level": "untriaged"
       },
+      "geofencing": {
+        "support_level": "untriaged"
+      },
+      "getNotifications": {
+        "support_level": "untriaged"
+      },
       "installing": {
         "support_level": "untriaged"
       },
+      "periodicSync": {
+        "support_level": "untriaged"
+      },
+      "pushManager": {
+        "support_level": "untriaged"
+      },
       "scope": {
         "support_level": "untriaged"
       },
+      "showNotification": {
+        "support_level": "untriaged"
+      },
+      "sync": {
+        "support_level": "untriaged"
+      },
       "unregister": {
         "support_level": "untriaged"
       },
+      "update": {
+        "support_level": "untriaged"
+      },
       "waiting": {
         "support_level": "untriaged"
       }
@@ -13120,7 +14484,13 @@
       "activeElement": {},
       "applyAuthorStyles": {},
       "cloneNode": {},
+      "delegatesFocus": {
+        "support_level": "untriaged"
+      },
       "elementFromPoint": {},
+      "elementsFromPoint": {
+        "support_level": "untriaged"
+      },
       "getElementById": {},
       "getElementsByClassName": {},
       "getElementsByTagName": {},
@@ -13140,6 +14510,14 @@
     },
     "support_level": "experimental"
   },
+  "SharedArrayBuffer": {
+    "members": {
+      "byteLength": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "SharedWorker": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-and-the-sharedworker-interface",
     "members": {
@@ -13228,6 +14606,9 @@
         "support_level": "untriaged"
       },
       "timestampOffset": {},
+      "trackDefaults": {
+        "support_level": "untriaged"
+      },
       "updating": {
         "support_level": "untriaged"
       }
@@ -13311,6 +14692,9 @@
       "SpeechRecognition": {},
       "abort": {},
       "addEventListener": {},
+      "audioTrack": {
+        "support_level": "untriaged"
+      },
       "continuous": {},
       "dispatchEvent": {},
       "grammars": {},
@@ -13329,6 +14713,9 @@
       "onspeechstart": {},
       "onstart": {},
       "removeEventListener": {},
+      "serviceURI": {
+        "support_level": "untriaged"
+      },
       "start": {},
       "stop": {}
     },
@@ -13345,6 +14732,7 @@
   "SpeechRecognitionError": {
     "comment": "https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error",
     "members": {
+      "SpeechRecognitionError": {},
       "error": {},
       "message": {}
     },
@@ -13353,6 +14741,7 @@
   "SpeechRecognitionEvent": {
     "comment": "https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-event",
     "members": {
+      "SpeechRecognitionEvent": {},
       "emma": {},
       "interpretation": {},
       "resultIndex": {},
@@ -13405,7 +14794,10 @@
     "members": {
       "charIndex": {},
       "elapsedTime": {},
-      "name": {}
+      "name": {},
+      "utterance": {
+        "support_level": "untriaged"
+      }
     },
     "support_level": "experimental"
   },
@@ -13452,6 +14844,33 @@
     },
     "support_level": "experimental"
   },
+  "StashedMessagePort": {
+    "members": {
+      "name": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "StashedPortCollection": {
+    "members": {
+      "add": {
+        "support_level": "untriaged"
+      },
+      "onmessage": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "StereoPannerNode": {
+    "members": {
+      "pan": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Storage": {
     "comment": "http://www.w3.org/TR/webstorage/#the-storage-interface",
     "dart_action": "unstable",
@@ -13480,6 +14899,7 @@
     "comment": "http://www.w3.org/TR/webstorage/#the-storage-event",
     "dart_action": "unstable",
     "members": {
+      "StorageEvent": {},
       "initStorageEvent": {},
       "key": {},
       "newValue": {},
@@ -13609,6 +15029,43 @@
     },
     "support_level": "untriaged"
   },
+  "SyncEvent": {
+    "members": {
+      "SyncEvent": {},
+      "registration": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "SyncManager": {
+    "members": {
+      "getRegistration": {
+        "support_level": "untriaged"
+      },
+      "getRegistrations": {
+        "support_level": "untriaged"
+      },
+      "permissionState": {
+        "support_level": "untriaged"
+      },
+      "register": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "SyncRegistration": {
+    "members": {
+      "tag": {
+        "support_level": "untriaged"
+      },
+      "unregister": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "Text": {
     "comment": "http://dom.spec.whatwg.org/#interface-text",
     "members": {
@@ -13919,6 +15376,9 @@
       "radiusY": {
         "support_level": "untriaged"
       },
+      "rotationAngle": {
+        "support_level": "untriaged"
+      },
       "screenX": {},
       "screenY": {},
       "target": {},
@@ -13959,10 +15419,44 @@
     },
     "support_level": "experimental"
   },
+  "TrackDefault": {
+    "members": {
+      "TrackDefault": {},
+      "byteStreamTrackID": {
+        "support_level": "untriaged"
+      },
+      "kinds": {
+        "support_level": "untriaged"
+      },
+      "label": {
+        "support_level": "untriaged"
+      },
+      "language": {
+        "support_level": "untriaged"
+      },
+      "type": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "TrackDefaultList": {
+    "members": {
+      "TrackDefaultList": {},
+      "item": {
+        "support_level": "untriaged"
+      },
+      "length": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "TrackEvent": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#trackevent",
     "dart_action": "unstable",
     "members": {
+      "TrackEvent": {},
       "track": {}
     },
     "support_level": "experimental"
@@ -13970,6 +15464,7 @@
   "TransitionEvent": {
     "comment": "http://dev.w3.org/csswg/css-transitions/#Events-TransitionEvent",
     "members": {
+      "TransitionEvent": {},
       "elapsedTime": {},
       "propertyName": {},
       "pseudoElement": {}
@@ -14002,6 +15497,7 @@
   "UIEvent": {
     "comment": "http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-UIEvent",
     "members": {
+      "UIEvent": {},
       "charCode": {
         "comment": "http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#legacy-key-attributes",
         "dart_action": "unstable",
@@ -14034,6 +15530,9 @@
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
+      "sourceDevice": {
+        "support_level": "untriaged"
+      },
       "view": {},
       "which": {
         "comment": "http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#legacy-key-attributes",
@@ -14211,6 +15710,87 @@
     },
     "support_level": "stable"
   },
+  "VRDevice": {
+    "members": {
+      "deviceId": {
+        "support_level": "untriaged"
+      },
+      "deviceName": {
+        "support_level": "untriaged"
+      },
+      "hardwareUnitId": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "VREyeParameters": {
+    "members": {
+      "currentFieldOfView": {
+        "support_level": "untriaged"
+      },
+      "eyeTranslation": {
+        "support_level": "untriaged"
+      },
+      "maximumFieldOfView": {
+        "support_level": "untriaged"
+      },
+      "minimumFieldOfView": {
+        "support_level": "untriaged"
+      },
+      "recommendedFieldOfView": {
+        "support_level": "untriaged"
+      },
+      "renderRect": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "VRFieldOfView": {
+    "members": {
+      "VRFieldOfView": {},
+      "downDegrees": {
+        "support_level": "untriaged"
+      },
+      "leftDegrees": {
+        "support_level": "untriaged"
+      },
+      "rightDegrees": {
+        "support_level": "untriaged"
+      },
+      "upDegrees": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "VRPositionState": {
+    "members": {
+      "angularAcceleration": {
+        "support_level": "untriaged"
+      },
+      "angularVelocity": {
+        "support_level": "untriaged"
+      },
+      "linearAcceleration": {
+        "support_level": "untriaged"
+      },
+      "linearVelocity": {
+        "support_level": "untriaged"
+      },
+      "orientation": {
+        "support_level": "untriaged"
+      },
+      "position": {
+        "support_level": "untriaged"
+      },
+      "timeStamp": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "VTTCue": {
     "members": {
       "VTTCue": {},
@@ -14301,6 +15881,9 @@
       "rangeUnderflow": {},
       "stepMismatch": {},
       "tooLong": {},
+      "tooShort": {
+        "support_level": "untriaged"
+      },
       "typeMismatch": {},
       "valid": {},
       "valueMissing": {}
@@ -14385,6 +15968,1587 @@
     "members": {},
     "support_level": "experimental"
   },
+  "WebGL2RenderingContext": {
+    "members": {
+      "ACTIVE_ATTRIBUTES": {
+        "support_level": "untriaged"
+      },
+      "ACTIVE_TEXTURE": {
+        "support_level": "untriaged"
+      },
+      "ACTIVE_UNIFORMS": {
+        "support_level": "untriaged"
+      },
+      "ALIASED_LINE_WIDTH_RANGE": {
+        "support_level": "untriaged"
+      },
+      "ALIASED_POINT_SIZE_RANGE": {
+        "support_level": "untriaged"
+      },
+      "ALPHA": {
+        "support_level": "untriaged"
+      },
+      "ALPHA_BITS": {
+        "support_level": "untriaged"
+      },
+      "ALWAYS": {
+        "support_level": "untriaged"
+      },
+      "ARRAY_BUFFER": {
+        "support_level": "untriaged"
+      },
+      "ARRAY_BUFFER_BINDING": {
+        "support_level": "untriaged"
+      },
+      "ATTACHED_SHADERS": {
+        "support_level": "untriaged"
+      },
+      "BACK": {
+        "support_level": "untriaged"
+      },
+      "BLEND": {
+        "support_level": "untriaged"
+      },
+      "BLEND_COLOR": {
+        "support_level": "untriaged"
+      },
+      "BLEND_DST_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "BLEND_DST_RGB": {
+        "support_level": "untriaged"
+      },
+      "BLEND_EQUATION": {
+        "support_level": "untriaged"
+      },
+      "BLEND_EQUATION_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "BLEND_EQUATION_RGB": {
+        "support_level": "untriaged"
+      },
+      "BLEND_SRC_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "BLEND_SRC_RGB": {
+        "support_level": "untriaged"
+      },
+      "BLUE_BITS": {
+        "support_level": "untriaged"
+      },
+      "BOOL": {
+        "support_level": "untriaged"
+      },
+      "BOOL_VEC2": {
+        "support_level": "untriaged"
+      },
+      "BOOL_VEC3": {
+        "support_level": "untriaged"
+      },
+      "BOOL_VEC4": {
+        "support_level": "untriaged"
+      },
+      "BROWSER_DEFAULT_WEBGL": {
+        "support_level": "untriaged"
+      },
+      "BUFFER_SIZE": {
+        "support_level": "untriaged"
+      },
+      "BUFFER_USAGE": {
+        "support_level": "untriaged"
+      },
+      "BYTE": {
+        "support_level": "untriaged"
+      },
+      "CCW": {
+        "support_level": "untriaged"
+      },
+      "CLAMP_TO_EDGE": {
+        "support_level": "untriaged"
+      },
+      "COLOR_ATTACHMENT0": {
+        "support_level": "untriaged"
+      },
+      "COLOR_BUFFER_BIT": {
+        "support_level": "untriaged"
+      },
+      "COLOR_CLEAR_VALUE": {
+        "support_level": "untriaged"
+      },
+      "COLOR_WRITEMASK": {
+        "support_level": "untriaged"
+      },
+      "COMPILE_STATUS": {
+        "support_level": "untriaged"
+      },
+      "COMPRESSED_TEXTURE_FORMATS": {
+        "support_level": "untriaged"
+      },
+      "CONSTANT_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "CONSTANT_COLOR": {
+        "support_level": "untriaged"
+      },
+      "CONTEXT_LOST_WEBGL": {
+        "support_level": "untriaged"
+      },
+      "CULL_FACE": {
+        "support_level": "untriaged"
+      },
+      "CULL_FACE_MODE": {
+        "support_level": "untriaged"
+      },
+      "CURRENT_PROGRAM": {
+        "support_level": "untriaged"
+      },
+      "CURRENT_VERTEX_ATTRIB": {
+        "support_level": "untriaged"
+      },
+      "CW": {
+        "support_level": "untriaged"
+      },
+      "DECR": {
+        "support_level": "untriaged"
+      },
+      "DECR_WRAP": {
+        "support_level": "untriaged"
+      },
+      "DELETE_STATUS": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_ATTACHMENT": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_BITS": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_BUFFER_BIT": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_CLEAR_VALUE": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_COMPONENT": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_COMPONENT16": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_FUNC": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_RANGE": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_STENCIL": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_STENCIL_ATTACHMENT": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_TEST": {
+        "support_level": "untriaged"
+      },
+      "DEPTH_WRITEMASK": {
+        "support_level": "untriaged"
+      },
+      "DITHER": {
+        "support_level": "untriaged"
+      },
+      "DONT_CARE": {
+        "support_level": "untriaged"
+      },
+      "DST_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "DST_COLOR": {
+        "support_level": "untriaged"
+      },
+      "DYNAMIC_DRAW": {
+        "support_level": "untriaged"
+      },
+      "ELEMENT_ARRAY_BUFFER": {
+        "support_level": "untriaged"
+      },
+      "ELEMENT_ARRAY_BUFFER_BINDING": {
+        "support_level": "untriaged"
+      },
+      "EQUAL": {
+        "support_level": "untriaged"
+      },
+      "FASTEST": {
+        "support_level": "untriaged"
+      },
+      "FLOAT": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_MAT2": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_MAT3": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_MAT4": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_VEC2": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_VEC3": {
+        "support_level": "untriaged"
+      },
+      "FLOAT_VEC4": {
+        "support_level": "untriaged"
+      },
+      "FRAGMENT_SHADER": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_BINDING": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_COMPLETE": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_INCOMPLETE_ATTACHMENT": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_INCOMPLETE_DIMENSIONS": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT": {
+        "support_level": "untriaged"
+      },
+      "FRAMEBUFFER_UNSUPPORTED": {
+        "support_level": "untriaged"
+      },
+      "FRONT": {
+        "support_level": "untriaged"
+      },
+      "FRONT_AND_BACK": {
+        "support_level": "untriaged"
+      },
+      "FRONT_FACE": {
+        "support_level": "untriaged"
+      },
+      "FUNC_ADD": {
+        "support_level": "untriaged"
+      },
+      "FUNC_REVERSE_SUBTRACT": {
+        "support_level": "untriaged"
+      },
+      "FUNC_SUBTRACT": {
+        "support_level": "untriaged"
+      },
+      "GENERATE_MIPMAP_HINT": {
+        "support_level": "untriaged"
+      },
+      "GEQUAL": {
+        "support_level": "untriaged"
+      },
+      "GREATER": {
+        "support_level": "untriaged"
+      },
+      "GREEN_BITS": {
+        "support_level": "untriaged"
+      },
+      "HIGH_FLOAT": {
+        "support_level": "untriaged"
+      },
+      "HIGH_INT": {
+        "support_level": "untriaged"
+      },
+      "IMPLEMENTATION_COLOR_READ_FORMAT": {
+        "support_level": "untriaged"
+      },
+      "IMPLEMENTATION_COLOR_READ_TYPE": {
+        "support_level": "untriaged"
+      },
+      "INCR": {
+        "support_level": "untriaged"
+      },
+      "INCR_WRAP": {
+        "support_level": "untriaged"
+      },
+      "INT": {
+        "support_level": "untriaged"
+      },
+      "INT_VEC2": {
+        "support_level": "untriaged"
+      },
+      "INT_VEC3": {
+        "support_level": "untriaged"
+      },
+      "INT_VEC4": {
+        "support_level": "untriaged"
+      },
+      "INVALID_ENUM": {
+        "support_level": "untriaged"
+      },
+      "INVALID_FRAMEBUFFER_OPERATION": {
+        "support_level": "untriaged"
+      },
+      "INVALID_OPERATION": {
+        "support_level": "untriaged"
+      },
+      "INVALID_VALUE": {
+        "support_level": "untriaged"
+      },
+      "INVERT": {
+        "support_level": "untriaged"
+      },
+      "KEEP": {
+        "support_level": "untriaged"
+      },
+      "LEQUAL": {
+        "support_level": "untriaged"
+      },
+      "LESS": {
+        "support_level": "untriaged"
+      },
+      "LINEAR": {
+        "support_level": "untriaged"
+      },
+      "LINEAR_MIPMAP_LINEAR": {
+        "support_level": "untriaged"
+      },
+      "LINEAR_MIPMAP_NEAREST": {
+        "support_level": "untriaged"
+      },
+      "LINES": {
+        "support_level": "untriaged"
+      },
+      "LINE_LOOP": {
+        "support_level": "untriaged"
+      },
+      "LINE_STRIP": {
+        "support_level": "untriaged"
+      },
+      "LINE_WIDTH": {
+        "support_level": "untriaged"
+      },
+      "LINK_STATUS": {
+        "support_level": "untriaged"
+      },
+      "LOW_FLOAT": {
+        "support_level": "untriaged"
+      },
+      "LOW_INT": {
+        "support_level": "untriaged"
+      },
+      "LUMINANCE": {
+        "support_level": "untriaged"
+      },
+      "LUMINANCE_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "MAX_COMBINED_TEXTURE_IMAGE_UNITS": {
+        "support_level": "untriaged"
+      },
+      "MAX_CUBE_MAP_TEXTURE_SIZE": {
+        "support_level": "untriaged"
+      },
+      "MAX_FRAGMENT_UNIFORM_VECTORS": {
+        "support_level": "untriaged"
+      },
+      "MAX_RENDERBUFFER_SIZE": {
+        "support_level": "untriaged"
+      },
+      "MAX_TEXTURE_IMAGE_UNITS": {
+        "support_level": "untriaged"
+      },
+      "MAX_TEXTURE_SIZE": {
+        "support_level": "untriaged"
+      },
+      "MAX_VARYING_VECTORS": {
+        "support_level": "untriaged"
+      },
+      "MAX_VERTEX_ATTRIBS": {
+        "support_level": "untriaged"
+      },
+      "MAX_VERTEX_TEXTURE_IMAGE_UNITS": {
+        "support_level": "untriaged"
+      },
+      "MAX_VERTEX_UNIFORM_VECTORS": {
+        "support_level": "untriaged"
+      },
+      "MAX_VIEWPORT_DIMS": {
+        "support_level": "untriaged"
+      },
+      "MEDIUM_FLOAT": {
+        "support_level": "untriaged"
+      },
+      "MEDIUM_INT": {
+        "support_level": "untriaged"
+      },
+      "MIRRORED_REPEAT": {
+        "support_level": "untriaged"
+      },
+      "NEAREST": {
+        "support_level": "untriaged"
+      },
+      "NEAREST_MIPMAP_LINEAR": {
+        "support_level": "untriaged"
+      },
+      "NEAREST_MIPMAP_NEAREST": {
+        "support_level": "untriaged"
+      },
+      "NEVER": {
+        "support_level": "untriaged"
+      },
+      "NICEST": {
+        "support_level": "untriaged"
+      },
+      "NONE": {
+        "support_level": "untriaged"
+      },
+      "NOTEQUAL": {
+        "support_level": "untriaged"
+      },
+      "NO_ERROR": {
+        "support_level": "untriaged"
+      },
+      "ONE": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_CONSTANT_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_CONSTANT_COLOR": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_DST_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_DST_COLOR": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_SRC_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "ONE_MINUS_SRC_COLOR": {
+        "support_level": "untriaged"
+      },
+      "OUT_OF_MEMORY": {
+        "support_level": "untriaged"
+      },
+      "PACK_ALIGNMENT": {
+        "support_level": "untriaged"
+      },
+      "POINTS": {
+        "support_level": "untriaged"
+      },
+      "POLYGON_OFFSET_FACTOR": {
+        "support_level": "untriaged"
+      },
+      "POLYGON_OFFSET_FILL": {
+        "support_level": "untriaged"
+      },
+      "POLYGON_OFFSET_UNITS": {
+        "support_level": "untriaged"
+      },
+      "RED_BITS": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_ALPHA_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_BINDING": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_BLUE_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_DEPTH_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_GREEN_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_HEIGHT": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_INTERNAL_FORMAT": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_RED_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_STENCIL_SIZE": {
+        "support_level": "untriaged"
+      },
+      "RENDERBUFFER_WIDTH": {
+        "support_level": "untriaged"
+      },
+      "RENDERER": {
+        "support_level": "untriaged"
+      },
+      "REPEAT": {
+        "support_level": "untriaged"
+      },
+      "REPLACE": {
+        "support_level": "untriaged"
+      },
+      "RGB": {
+        "support_level": "untriaged"
+      },
+      "RGB565": {
+        "support_level": "untriaged"
+      },
+      "RGB5_A1": {
+        "support_level": "untriaged"
+      },
+      "RGBA": {
+        "support_level": "untriaged"
+      },
+      "RGBA4": {
+        "support_level": "untriaged"
+      },
+      "SAMPLER_2D": {
+        "support_level": "untriaged"
+      },
+      "SAMPLER_CUBE": {
+        "support_level": "untriaged"
+      },
+      "SAMPLES": {
+        "support_level": "untriaged"
+      },
+      "SAMPLE_ALPHA_TO_COVERAGE": {
+        "support_level": "untriaged"
+      },
+      "SAMPLE_BUFFERS": {
+        "support_level": "untriaged"
+      },
+      "SAMPLE_COVERAGE": {
+        "support_level": "untriaged"
+      },
+      "SAMPLE_COVERAGE_INVERT": {
+        "support_level": "untriaged"
+      },
+      "SAMPLE_COVERAGE_VALUE": {
+        "support_level": "untriaged"
+      },
+      "SCISSOR_BOX": {
+        "support_level": "untriaged"
+      },
+      "SCISSOR_TEST": {
+        "support_level": "untriaged"
+      },
+      "SHADER_TYPE": {
+        "support_level": "untriaged"
+      },
+      "SHADING_LANGUAGE_VERSION": {
+        "support_level": "untriaged"
+      },
+      "SHORT": {
+        "support_level": "untriaged"
+      },
+      "SRC_ALPHA": {
+        "support_level": "untriaged"
+      },
+      "SRC_ALPHA_SATURATE": {
+        "support_level": "untriaged"
+      },
+      "SRC_COLOR": {
+        "support_level": "untriaged"
+      },
+      "STATIC_DRAW": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_ATTACHMENT": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_FAIL": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_FUNC": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_PASS_DEPTH_FAIL": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_PASS_DEPTH_PASS": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_REF": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_VALUE_MASK": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BACK_WRITEMASK": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BITS": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_BUFFER_BIT": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_CLEAR_VALUE": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_FAIL": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_FUNC": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_INDEX": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_INDEX8": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_PASS_DEPTH_FAIL": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_PASS_DEPTH_PASS": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_REF": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_TEST": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_VALUE_MASK": {
+        "support_level": "untriaged"
+      },
+      "STENCIL_WRITEMASK": {
+        "support_level": "untriaged"
+      },
+      "STREAM_DRAW": {
+        "support_level": "untriaged"
+      },
+      "SUBPIXEL_BITS": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE0": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE1": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE10": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE11": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE12": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE13": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE14": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE15": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE16": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE17": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE18": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE19": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE2": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE20": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE21": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE22": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE23": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE24": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE25": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE26": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE27": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE28": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE29": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE3": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE30": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE31": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE4": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE5": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE6": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE7": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE8": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE9": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_2D": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_BINDING_2D": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_BINDING_CUBE_MAP": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_NEGATIVE_X": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_NEGATIVE_Y": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_NEGATIVE_Z": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_POSITIVE_X": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_POSITIVE_Y": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_CUBE_MAP_POSITIVE_Z": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_MAG_FILTER": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_MIN_FILTER": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_WRAP_S": {
+        "support_level": "untriaged"
+      },
+      "TEXTURE_WRAP_T": {
+        "support_level": "untriaged"
+      },
+      "TRIANGLES": {
+        "support_level": "untriaged"
+      },
+      "TRIANGLE_FAN": {
+        "support_level": "untriaged"
+      },
+      "TRIANGLE_STRIP": {
+        "support_level": "untriaged"
+      },
+      "UNPACK_ALIGNMENT": {
+        "support_level": "untriaged"
+      },
+      "UNPACK_COLORSPACE_CONVERSION_WEBGL": {
+        "support_level": "untriaged"
+      },
+      "UNPACK_FLIP_Y_WEBGL": {
+        "support_level": "untriaged"
+      },
+      "UNPACK_PREMULTIPLY_ALPHA_WEBGL": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_BYTE": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_INT": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_SHORT": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_SHORT_4_4_4_4": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_SHORT_5_5_5_1": {
+        "support_level": "untriaged"
+      },
+      "UNSIGNED_SHORT_5_6_5": {
+        "support_level": "untriaged"
+      },
+      "VALIDATE_STATUS": {
+        "support_level": "untriaged"
+      },
+      "VENDOR": {
+        "support_level": "untriaged"
+      },
+      "VERSION": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_ENABLED": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_NORMALIZED": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_POINTER": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_SIZE": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_STRIDE": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_ATTRIB_ARRAY_TYPE": {
+        "support_level": "untriaged"
+      },
+      "VERTEX_SHADER": {
+        "support_level": "untriaged"
+      },
+      "VIEWPORT": {
+        "support_level": "untriaged"
+      },
+      "ZERO": {
+        "support_level": "untriaged"
+      },
+      "activeTexture": {
+        "support_level": "untriaged"
+      },
+      "attachShader": {
+        "support_level": "untriaged"
+      },
+      "beginQuery": {
+        "support_level": "untriaged"
+      },
+      "beginTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "bindAttribLocation": {
+        "support_level": "untriaged"
+      },
+      "bindBuffer": {
+        "support_level": "untriaged"
+      },
+      "bindBufferBase": {
+        "support_level": "untriaged"
+      },
+      "bindBufferRange": {
+        "support_level": "untriaged"
+      },
+      "bindFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "bindRenderbuffer": {
+        "support_level": "untriaged"
+      },
+      "bindSampler": {
+        "support_level": "untriaged"
+      },
+      "bindTexture": {
+        "support_level": "untriaged"
+      },
+      "bindTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "bindVertexArray": {
+        "support_level": "untriaged"
+      },
+      "blendColor": {
+        "support_level": "untriaged"
+      },
+      "blendEquation": {
+        "support_level": "untriaged"
+      },
+      "blendEquationSeparate": {
+        "support_level": "untriaged"
+      },
+      "blendFunc": {
+        "support_level": "untriaged"
+      },
+      "blendFuncSeparate": {
+        "support_level": "untriaged"
+      },
+      "blitFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "bufferData": {
+        "support_level": "untriaged"
+      },
+      "bufferSubData": {
+        "support_level": "untriaged"
+      },
+      "canvas": {
+        "support_level": "untriaged"
+      },
+      "checkFramebufferStatus": {
+        "support_level": "untriaged"
+      },
+      "clear": {
+        "support_level": "untriaged"
+      },
+      "clearBufferfi": {
+        "support_level": "untriaged"
+      },
+      "clearBufferfv": {
+        "support_level": "untriaged"
+      },
+      "clearBufferiv": {
+        "support_level": "untriaged"
+      },
+      "clearBufferuiv": {
+        "support_level": "untriaged"
+      },
+      "clearColor": {
+        "support_level": "untriaged"
+      },
+      "clearDepth": {
+        "support_level": "untriaged"
+      },
+      "clearStencil": {
+        "support_level": "untriaged"
+      },
+      "clientWaitSync": {
+        "support_level": "untriaged"
+      },
+      "colorMask": {
+        "support_level": "untriaged"
+      },
+      "compileShader": {
+        "support_level": "untriaged"
+      },
+      "compressedTexImage2D": {
+        "support_level": "untriaged"
+      },
+      "compressedTexImage3D": {
+        "support_level": "untriaged"
+      },
+      "compressedTexSubImage2D": {
+        "support_level": "untriaged"
+      },
+      "compressedTexSubImage3D": {
+        "support_level": "untriaged"
+      },
+      "copyBufferSubData": {
+        "support_level": "untriaged"
+      },
+      "copyTexImage2D": {
+        "support_level": "untriaged"
+      },
+      "copyTexSubImage2D": {
+        "support_level": "untriaged"
+      },
+      "copyTexSubImage3D": {
+        "support_level": "untriaged"
+      },
+      "createBuffer": {
+        "support_level": "untriaged"
+      },
+      "createFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "createProgram": {
+        "support_level": "untriaged"
+      },
+      "createQuery": {
+        "support_level": "untriaged"
+      },
+      "createRenderbuffer": {
+        "support_level": "untriaged"
+      },
+      "createSampler": {
+        "support_level": "untriaged"
+      },
+      "createShader": {
+        "support_level": "untriaged"
+      },
+      "createTexture": {
+        "support_level": "untriaged"
+      },
+      "createTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "createVertexArray": {
+        "support_level": "untriaged"
+      },
+      "cullFace": {
+        "support_level": "untriaged"
+      },
+      "deleteBuffer": {
+        "support_level": "untriaged"
+      },
+      "deleteFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "deleteProgram": {
+        "support_level": "untriaged"
+      },
+      "deleteQuery": {
+        "support_level": "untriaged"
+      },
+      "deleteRenderbuffer": {
+        "support_level": "untriaged"
+      },
+      "deleteSampler": {
+        "support_level": "untriaged"
+      },
+      "deleteShader": {
+        "support_level": "untriaged"
+      },
+      "deleteSync": {
+        "support_level": "untriaged"
+      },
+      "deleteTexture": {
+        "support_level": "untriaged"
+      },
+      "deleteTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "deleteVertexArray": {
+        "support_level": "untriaged"
+      },
+      "depthFunc": {
+        "support_level": "untriaged"
+      },
+      "depthMask": {
+        "support_level": "untriaged"
+      },
+      "depthRange": {
+        "support_level": "untriaged"
+      },
+      "detachShader": {
+        "support_level": "untriaged"
+      },
+      "disable": {
+        "support_level": "untriaged"
+      },
+      "disableVertexAttribArray": {
+        "support_level": "untriaged"
+      },
+      "drawArrays": {
+        "support_level": "untriaged"
+      },
+      "drawArraysInstanced": {
+        "support_level": "untriaged"
+      },
+      "drawBuffers": {
+        "support_level": "untriaged"
+      },
+      "drawElements": {
+        "support_level": "untriaged"
+      },
+      "drawElementsInstanced": {
+        "support_level": "untriaged"
+      },
+      "drawRangeElements": {
+        "support_level": "untriaged"
+      },
+      "drawingBufferHeight": {
+        "support_level": "untriaged"
+      },
+      "drawingBufferWidth": {
+        "support_level": "untriaged"
+      },
+      "enable": {
+        "support_level": "untriaged"
+      },
+      "enableVertexAttribArray": {
+        "support_level": "untriaged"
+      },
+      "endQuery": {
+        "support_level": "untriaged"
+      },
+      "endTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "fenceSync": {
+        "support_level": "untriaged"
+      },
+      "finish": {
+        "support_level": "untriaged"
+      },
+      "flush": {
+        "support_level": "untriaged"
+      },
+      "framebufferRenderbuffer": {
+        "support_level": "untriaged"
+      },
+      "framebufferTexture2D": {
+        "support_level": "untriaged"
+      },
+      "framebufferTextureLayer": {
+        "support_level": "untriaged"
+      },
+      "frontFace": {
+        "support_level": "untriaged"
+      },
+      "generateMipmap": {
+        "support_level": "untriaged"
+      },
+      "getActiveAttrib": {
+        "support_level": "untriaged"
+      },
+      "getActiveUniform": {
+        "support_level": "untriaged"
+      },
+      "getActiveUniformBlockName": {
+        "support_level": "untriaged"
+      },
+      "getActiveUniformBlockParameter": {
+        "support_level": "untriaged"
+      },
+      "getActiveUniforms": {
+        "support_level": "untriaged"
+      },
+      "getAttachedShaders": {
+        "support_level": "untriaged"
+      },
+      "getAttribLocation": {
+        "support_level": "untriaged"
+      },
+      "getBufferParameter": {
+        "support_level": "untriaged"
+      },
+      "getBufferSubData": {
+        "support_level": "untriaged"
+      },
+      "getContextAttributes": {
+        "support_level": "untriaged"
+      },
+      "getError": {
+        "support_level": "untriaged"
+      },
+      "getExtension": {
+        "support_level": "untriaged"
+      },
+      "getFragDataLocation": {
+        "support_level": "untriaged"
+      },
+      "getFramebufferAttachmentParameter": {
+        "support_level": "untriaged"
+      },
+      "getIndexedParameter": {
+        "support_level": "untriaged"
+      },
+      "getInternalformatParameter": {
+        "support_level": "untriaged"
+      },
+      "getParameter": {
+        "support_level": "untriaged"
+      },
+      "getProgramInfoLog": {
+        "support_level": "untriaged"
+      },
+      "getProgramParameter": {
+        "support_level": "untriaged"
+      },
+      "getQuery": {
+        "support_level": "untriaged"
+      },
+      "getQueryParameter": {
+        "support_level": "untriaged"
+      },
+      "getRenderbufferParameter": {
+        "support_level": "untriaged"
+      },
+      "getSamplerParameter": {
+        "support_level": "untriaged"
+      },
+      "getShaderInfoLog": {
+        "support_level": "untriaged"
+      },
+      "getShaderParameter": {
+        "support_level": "untriaged"
+      },
+      "getShaderPrecisionFormat": {
+        "support_level": "untriaged"
+      },
+      "getShaderSource": {
+        "support_level": "untriaged"
+      },
+      "getSupportedExtensions": {
+        "support_level": "untriaged"
+      },
+      "getSyncParameter": {
+        "support_level": "untriaged"
+      },
+      "getTexParameter": {
+        "support_level": "untriaged"
+      },
+      "getTransformFeedbackVarying": {
+        "support_level": "untriaged"
+      },
+      "getUniform": {
+        "support_level": "untriaged"
+      },
+      "getUniformBlockIndex": {
+        "support_level": "untriaged"
+      },
+      "getUniformIndices": {
+        "support_level": "untriaged"
+      },
+      "getUniformLocation": {
+        "support_level": "untriaged"
+      },
+      "getVertexAttrib": {
+        "support_level": "untriaged"
+      },
+      "getVertexAttribOffset": {
+        "support_level": "untriaged"
+      },
+      "hint": {
+        "support_level": "untriaged"
+      },
+      "invalidateFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "invalidateSubFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "isBuffer": {
+        "support_level": "untriaged"
+      },
+      "isContextLost": {
+        "support_level": "untriaged"
+      },
+      "isEnabled": {
+        "support_level": "untriaged"
+      },
+      "isFramebuffer": {
+        "support_level": "untriaged"
+      },
+      "isProgram": {
+        "support_level": "untriaged"
+      },
+      "isQuery": {
+        "support_level": "untriaged"
+      },
+      "isRenderbuffer": {
+        "support_level": "untriaged"
+      },
+      "isSampler": {
+        "support_level": "untriaged"
+      },
+      "isShader": {
+        "support_level": "untriaged"
+      },
+      "isSync": {
+        "support_level": "untriaged"
+      },
+      "isTexture": {
+        "support_level": "untriaged"
+      },
+      "isTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "isVertexArray": {
+        "support_level": "untriaged"
+      },
+      "lineWidth": {
+        "support_level": "untriaged"
+      },
+      "linkProgram": {
+        "support_level": "untriaged"
+      },
+      "pauseTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "pixelStorei": {
+        "support_level": "untriaged"
+      },
+      "polygonOffset": {
+        "support_level": "untriaged"
+      },
+      "readBuffer": {
+        "support_level": "untriaged"
+      },
+      "readPixels": {
+        "support_level": "untriaged"
+      },
+      "renderbufferStorage": {
+        "support_level": "untriaged"
+      },
+      "renderbufferStorageMultisample": {
+        "support_level": "untriaged"
+      },
+      "resumeTransformFeedback": {
+        "support_level": "untriaged"
+      },
+      "sampleCoverage": {
+        "support_level": "untriaged"
+      },
+      "samplerParameterf": {
+        "support_level": "untriaged"
+      },
+      "samplerParameteri": {
+        "support_level": "untriaged"
+      },
+      "scissor": {
+        "support_level": "untriaged"
+      },
+      "shaderSource": {
+        "support_level": "untriaged"
+      },
+      "stencilFunc": {
+        "support_level": "untriaged"
+      },
+      "stencilFuncSeparate": {
+        "support_level": "untriaged"
+      },
+      "stencilMask": {
+        "support_level": "untriaged"
+      },
+      "stencilMaskSeparate": {
+        "support_level": "untriaged"
+      },
+      "stencilOp": {
+        "support_level": "untriaged"
+      },
+      "stencilOpSeparate": {
+        "support_level": "untriaged"
+      },
+      "texImage2D": {
+        "support_level": "untriaged"
+      },
+      "texImage3D": {
+        "support_level": "untriaged"
+      },
+      "texParameterf": {
+        "support_level": "untriaged"
+      },
+      "texParameteri": {
+        "support_level": "untriaged"
+      },
+      "texStorage2D": {
+        "support_level": "untriaged"
+      },
+      "texStorage3D": {
+        "support_level": "untriaged"
+      },
+      "texSubImage2D": {
+        "support_level": "untriaged"
+      },
+      "texSubImage3D": {
+        "support_level": "untriaged"
+      },
+      "transformFeedbackVaryings": {
+        "support_level": "untriaged"
+      },
+      "uniform1f": {
+        "support_level": "untriaged"
+      },
+      "uniform1fv": {
+        "support_level": "untriaged"
+      },
+      "uniform1i": {
+        "support_level": "untriaged"
+      },
+      "uniform1iv": {
+        "support_level": "untriaged"
+      },
+      "uniform1ui": {
+        "support_level": "untriaged"
+      },
+      "uniform1uiv": {
+        "support_level": "untriaged"
+      },
+      "uniform2f": {
+        "support_level": "untriaged"
+      },
+      "uniform2fv": {
+        "support_level": "untriaged"
+      },
+      "uniform2i": {
+        "support_level": "untriaged"
+      },
+      "uniform2iv": {
+        "support_level": "untriaged"
+      },
+      "uniform2ui": {
+        "support_level": "untriaged"
+      },
+      "uniform2uiv": {
+        "support_level": "untriaged"
+      },
+      "uniform3f": {
+        "support_level": "untriaged"
+      },
+      "uniform3fv": {
+        "support_level": "untriaged"
+      },
+      "uniform3i": {
+        "support_level": "untriaged"
+      },
+      "uniform3iv": {
+        "support_level": "untriaged"
+      },
+      "uniform3ui": {
+        "support_level": "untriaged"
+      },
+      "uniform3uiv": {
+        "support_level": "untriaged"
+      },
+      "uniform4f": {
+        "support_level": "untriaged"
+      },
+      "uniform4fv": {
+        "support_level": "untriaged"
+      },
+      "uniform4i": {
+        "support_level": "untriaged"
+      },
+      "uniform4iv": {
+        "support_level": "untriaged"
+      },
+      "uniform4ui": {
+        "support_level": "untriaged"
+      },
+      "uniform4uiv": {
+        "support_level": "untriaged"
+      },
+      "uniformBlockBinding": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix2fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix2x3fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix2x4fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix3fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix3x2fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix3x4fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix4fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix4x2fv": {
+        "support_level": "untriaged"
+      },
+      "uniformMatrix4x3fv": {
+        "support_level": "untriaged"
+      },
+      "useProgram": {
+        "support_level": "untriaged"
+      },
+      "validateProgram": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib1f": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib1fv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib2f": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib2fv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib3f": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib3fv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib4f": {
+        "support_level": "untriaged"
+      },
+      "vertexAttrib4fv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribDivisor": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribI4i": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribI4iv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribI4ui": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribI4uiv": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribIPointer": {
+        "support_level": "untriaged"
+      },
+      "vertexAttribPointer": {
+        "support_level": "untriaged"
+      },
+      "viewport": {
+        "support_level": "untriaged"
+      },
+      "waitSync": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
+  "WebGL2RenderingContextBase": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLActiveInfo": {
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.11",
     "dart_action": "unstable",
@@ -14460,6 +17624,7 @@
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#WEBGLCONTEXTEVENT",
     "dart_action": "unstable",
     "members": {
+      "WebGLContextEvent": {},
       "statusMessage": {}
     },
     "support_level": "stable"
@@ -14551,6 +17716,10 @@
     "members": {},
     "support_level": "stable"
   },
+  "WebGLQuery": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLRenderbuffer": {
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.7",
     "dart_action": "unstable",
@@ -16380,6 +19549,10 @@
     },
     "support_level": "untriaged"
   },
+  "WebGLSampler": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLShader": {
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.8",
     "members": {},
@@ -16394,16 +19567,28 @@
     },
     "support_level": "stable"
   },
+  "WebGLSync": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLTexture": {
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.9",
     "members": {},
     "support_level": "stable"
   },
+  "WebGLTransformFeedback": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLUniformLocation": {
     "comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.10",
     "members": {},
     "support_level": "stable"
   },
+  "WebGLVertexArrayObject": {
+    "members": {},
+    "support_level": "untriaged"
+  },
   "WebGLVertexArrayObjectOES": {
     "comment": "http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/",
     "dart_action": "experimental",
@@ -16647,6 +19832,7 @@
       "DOM_DELTA_LINE": {},
       "DOM_DELTA_PAGE": {},
       "DOM_DELTA_PIXEL": {},
+      "WheelEvent": {},
       "deltaMode": {},
       "deltaX": {},
       "deltaY": {},
@@ -16675,6 +19861,12 @@
       },
       "Window": {},
       "__getter__": {},
+      "_setInterval_String": {
+        "support_level": "untriaged"
+      },
+      "_setTimeout_String": {
+        "support_level": "untriaged"
+      },
       "addEventListener": {},
       "alert": {},
       "applicationCache": {},
@@ -16684,6 +19876,9 @@
         "support_level": "deprecated"
       },
       "btoa": {},
+      "caches": {
+        "support_level": "untriaged"
+      },
       "cancelAnimationFrame": {},
       "captureEvents": {
         "comment": "http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture",
@@ -16722,6 +19917,9 @@
         "dart_action": "suppress",
         "support_level": "deprecated"
       },
+      "fetch": {
+        "support_level": "untriaged"
+      },
       "find": {
         "support_level": "nonstandard"
       },
@@ -17023,6 +20221,20 @@
     },
     "support_level": "untriaged"
   },
+  "WindowClient": {
+    "members": {
+      "focus": {
+        "support_level": "untriaged"
+      },
+      "focused": {
+        "support_level": "untriaged"
+      },
+      "visibilityState": {
+        "support_level": "untriaged"
+      }
+    },
+    "support_level": "untriaged"
+  },
   "WindowEventHandlers": {
     "members": {
       "onbeforeunload": {
@@ -17057,6 +20269,12 @@
   },
   "WindowTimers": {
     "members": {
+      "_setInterval_String": {
+        "support_level": "untriaged"
+      },
+      "_setTimeout_String": {
+        "support_level": "untriaged"
+      },
       "clearInterval": {
         "support_level": "untriaged"
       },
@@ -17194,6 +20412,12 @@
       "TEMPORARY": {
         "support_level": "untriaged"
       },
+      "_setInterval_String": {
+        "support_level": "untriaged"
+      },
+      "_setTimeout_String": {
+        "support_level": "untriaged"
+      },
       "addEventListener": {
         "support_level": "untriaged"
       },
@@ -17203,6 +20427,9 @@
       "btoa": {
         "support_level": "untriaged"
       },
+      "caches": {
+        "support_level": "untriaged"
+      },
       "clearInterval": {
         "support_level": "untriaged"
       },
@@ -17224,6 +20451,9 @@
       "dispatchEvent": {
         "support_level": "untriaged"
       },
+      "fetch": {
+        "support_level": "untriaged"
+      },
       "importScripts": {
         "support_level": "untriaged"
       },
@@ -17344,11 +20574,38 @@
   },
   "WorkerPerformance": {
     "members": {
+      "clearMarks": {
+        "support_level": "untriaged"
+      },
+      "clearMeasures": {
+        "support_level": "untriaged"
+      },
+      "getEntries": {
+        "support_level": "untriaged"
+      },
+      "getEntriesByName": {
+        "support_level": "untriaged"
+      },
+      "getEntriesByType": {
+        "support_level": "untriaged"
+      },
+      "mark": {
+        "support_level": "untriaged"
+      },
+      "measure": {
+        "support_level": "untriaged"
+      },
       "memory": {
         "support_level": "untriaged"
       },
       "now": {
         "support_level": "untriaged"
+      },
+      "webkitClearResourceTimings": {
+        "support_level": "untriaged"
+      },
+      "webkitSetResourceTimingBufferSize": {
+        "support_level": "untriaged"
       }
     },
     "support_level": "untriaged"
diff --git a/tools/dom/idl/dart/dart.idl b/tools/dom/idl/dart/dart.idl
index bf857a8..533a448 100644
--- a/tools/dom/idl/dart/dart.idl
+++ b/tools/dom/idl/dart/dart.idl
@@ -60,6 +60,11 @@
   void handleEvent();
 };
 
+[Callback]
+interface RequestAnimationFrameCallback{
+    void handleEvent(double highResTime);
+};
+
 // FIXME(leafp): This is a temporary hack to get things running while
 // we are still generating _blink from the dart side idl files.
 // Once we are up and running generating dart:_blink in dartium
@@ -418,3 +423,10 @@
 };
 
 Element implements GlobalEventHandlers;
+
+
+// This only exists in Safari, and is deprecated there. But include it anyway
+// because otherwise iterating CSSRules in Safari can yield unknown JS objects.
+interface CSSCharsetRule : CSSRule {
+    [MeasureAs=CSSCharsetRuleEncoding] attribute DOMString encoding;
+};
diff --git a/tools/dom/scripts/dartdomgenerator.py b/tools/dom/scripts/dartdomgenerator.py
index 8194dfc..b528141 100755
--- a/tools/dom/scripts/dartdomgenerator.py
+++ b/tools/dom/scripts/dartdomgenerator.py
@@ -29,6 +29,14 @@
   # location is dartium-git/src/third_party 
   third_party_dir = os.path.join(dart_dir, '..', 'third_party')
   assert(os.path.exists(third_party_dir))
+else:
+  # It's Dart we need to make sure that tools in injected in our search path
+  # because this is where idl_parser is located for a Dart enlistment.  Dartium
+  # can figure out the tools directory because of the location of where the
+  # scripts blink scripts are located.
+  tools_dir = os.path.join(dart_dir, 'tools')
+  sys.path.insert(1, tools_dir)
+
 sys.path.insert(1, third_party_dir)
 
 sys.path.insert(1, os.path.join(dart_dir, 'tools/dom/scripts'))
@@ -177,7 +185,7 @@
     cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir)
     dart_output_dir = os.path.join(dartium_output_dir, 'dart')
     backend_factory = lambda interface:\
-        DartiumBackend(interface, cpp_library_emitter, backend_options)
+        DartiumBackend(interface, cpp_library_emitter, backend_options, _logger)
     dart_libraries = DartLibraries(
         HTML_LIBRARY_NAMES, template_loader, 'dartium', dartium_output_dir, dart_js_interop)
 
diff --git a/tools/dom/scripts/dartgenerator.py b/tools/dom/scripts/dartgenerator.py
index e3e9625..e03a0fa 100755
--- a/tools/dom/scripts/dartgenerator.py
+++ b/tools/dom/scripts/dartgenerator.py
@@ -12,7 +12,7 @@
 import re
 import shutil
 from generator import *
-from idlnode import IDLType
+from idlnode import IDLType, resolveTypedef
 
 _logger = logging.getLogger('dartgenerator')
 
@@ -98,6 +98,15 @@
               type_name.endswith('Constructor')):
             _logger.warn('removing %s in %s which has unidentified type %s' %
                        (node_name, interface.id, type_name))
+
+          # One last check is the type a typedef in an IDL file (the typedefs
+          # are treated as global).
+          resolvedType = resolveTypedef(idl_type)
+          if (resolvedType != idl_type):
+            idl_type.id = resolvedType.id
+            idl_type.nullable = resolvedType.nullable
+            continue
+
           return False
         return True
 
diff --git a/tools/dom/scripts/dartmetadata.py b/tools/dom/scripts/dartmetadata.py
index b90a2b3..fefbd2d 100644
--- a/tools/dom/scripts/dartmetadata.py
+++ b/tools/dom/scripts/dartmetadata.py
@@ -29,6 +29,11 @@
 
 _dart2js_annotations = monitored.Dict('dartmetadata._dart2js_annotations', {
 
+    'AnimationEffectTiming.duration': [
+      "@Creates('Null')",
+      "@Returns('num|String')",
+     ],
+
     'ArrayBufferView': [
       "@Creates('TypedData')",
       "@Returns('TypedData|Null')",
@@ -56,6 +61,10 @@
       "@Returns('String|CanvasGradient|CanvasPattern')",
     ],
 
+    'CryptoKey.algorithm': [
+      "@Creates('Null')",
+    ],
+
     'CustomEvent._detail': [
       "@Creates('Null')",
     ],
@@ -276,6 +285,11 @@
       "@Returns('EventTarget|=Object')",
     ],
 
+    'Notification.data': [
+      "@annotation_Creates_SerializedScriptValue",
+      "@annotation_Returns_SerializedScriptValue",
+    ],
+
     'PopStateEvent.state': [
       "@annotation_Creates_SerializedScriptValue",
       "@annotation_Returns_SerializedScriptValue",
@@ -290,6 +304,16 @@
       "@annotation_Returns_SerializedScriptValue",
     ],
 
+    'ServiceWorkerMessageEvent.data': [
+      "@annotation_Creates_SerializedScriptValue",
+      "@annotation_Returns_SerializedScriptValue",
+    ],
+
+    'ServiceWorkerMessageEvent.source': [
+      "@Creates('Null')",
+      "@Returns('_ServiceWorker|MessagePort')",
+     ],
+
     'ShadowRoot.getElementsByClassName': [
       "@Creates('NodeList|HtmlCollection')",
       "@Returns('NodeList|HtmlCollection')",
@@ -317,6 +341,14 @@
       "@Creates('Null')",
     ],
 
+    'VTTCue.line': [
+       "@Returns('num|String')",
+    ],
+
+    'VTTCue.position': [
+       "@Returns('num|String')",
+    ],
+
     'WebGLRenderingContext.getBufferParameter': [
       "@Creates('int|Null')",
       "@Returns('int|Null')",
diff --git a/tools/dom/scripts/databasebuilder.py b/tools/dom/scripts/databasebuilder.py
index ceb6eb1..b0977ad 100755
--- a/tools/dom/scripts/databasebuilder.py
+++ b/tools/dom/scripts/databasebuilder.py
@@ -617,6 +617,9 @@
 
     end_time = time.time()
 
+    for warning in report_unions_to_any():
+      _logger.warning(warning)
+
     print 'Total %s files %sprocessed in databasebuilder in %s seconds' % \
     (len(file_paths), '', round((end_time - start_time), 2))
 
diff --git a/tools/dom/scripts/htmldartgenerator.py b/tools/dom/scripts/htmldartgenerator.py
index c944fc3..8e62fac 100644
--- a/tools/dom/scripts/htmldartgenerator.py
+++ b/tools/dom/scripts/htmldartgenerator.py
@@ -37,7 +37,7 @@
 ]
 
 class HtmlDartGenerator(object):
-  def __init__(self, interface, options, dart_use_blink):
+  def __init__(self, interface, options, dart_use_blink, logger):
     self._dart_use_blink = dart_use_blink
     self._database = options.database
     self._interface = interface
@@ -46,6 +46,7 @@
     self._renamer = options.renamer
     self._metadata = options.metadata
     self._library_name = self._renamer.GetLibraryName(self._interface)
+    _logger.setLevel(logger.level)
 
   def EmitSupportCheck(self):
     if self.HasSupportCheck():
@@ -252,7 +253,7 @@
         operation.id != '__getter__' and
         operation.id != '__setter__' and
         operation.id != '__delete__'):
-      _logger.error('Multiple type signatures for %s.%s. Please file a bug with'
+      _logger.warn('Multiple type signatures for %s.%s. Please file a bug with'
           ' the dart:html team to determine if one of these functions should be'
           ' renamed.' % (
           interface.id, operation.id))
diff --git a/tools/dom/scripts/htmleventgenerator.py b/tools/dom/scripts/htmleventgenerator.py
index 372ecca..6e83fd3 100644
--- a/tools/dom/scripts/htmleventgenerator.py
+++ b/tools/dom/scripts/htmleventgenerator.py
@@ -43,8 +43,8 @@
   '*.change': ('change', 'Event'),
   '*.click': ('click', 'MouseEvent'),
   '*.contextmenu': ('contextMenu', 'MouseEvent'),
-  '*.copy': ('copy', 'Event'),
-  '*.cut': ('cut', 'Event'),
+  '*.copy': ('copy', 'ClipboardEvent'),
+  '*.cut': ('cut', 'ClipboardEvent'),
   '*.dblclick': ('doubleClick', 'Event'),
   '*.drag': ('drag', 'MouseEvent'),
   '*.dragend': ('dragEnd', 'MouseEvent'),
@@ -79,7 +79,7 @@
   '*.mousewheel': ('mouseWheel', 'WheelEvent'),
   '*.offline': ('offline', 'Event'),
   '*.online': ('online', 'Event'),
-  '*.paste': ('paste', 'Event'),
+  '*.paste': ('paste', 'ClipboardEvent'),
   '*.pause': ('pause', 'Event'),
   '*.play': ('play', 'Event'),
   '*.playing': ('playing', 'Event'),
diff --git a/tools/dom/scripts/htmlrenamer.py b/tools/dom/scripts/htmlrenamer.py
index addddd9..7bb618a 100644
--- a/tools/dom/scripts/htmlrenamer.py
+++ b/tools/dom/scripts/htmlrenamer.py
@@ -380,6 +380,7 @@
   'UIEvent.layerY',
   'UIEvent.pageX',
   'UIEvent.pageY',
+  'UIEvent.which',
   'WheelEvent.initWebKitWheelEvent',
   'WheelEvent.deltaX',
   'WheelEvent.deltaY',
@@ -563,6 +564,8 @@
     'CanvasRenderingContext2D.webkitImageSmoothingEnabled',
     'CharacterData.remove',
     'ChildNode.replaceWith',
+    'CSSStyleDeclaration.__getter__',
+    'CSSStyleDeclaration.__setter__',
     'Window.call:blur',
     'Window.call:focus',
     'Window.clientInformation',
@@ -794,6 +797,9 @@
     'HTMLUListElement.compact',
     'HTMLUListElement.type',
     'IDBDatabase.transaction', # We do this in a template without the generated implementation at all.
+    'KeyboardEvent.charCode',
+    'KeyboardEvent.keyCode',
+    'KeyboardEvent.which',
     'Location.valueOf',
     'MessageEvent.data',
     'MessageEvent.ports',
@@ -828,6 +834,7 @@
     'NodeList.item',
     'ParentNode.append',
     'ParentNode.prepend',
+    'ServiceWorkerMessageEvent.data',
     'ShadowRoot.getElementsByTagNameNS',
     'SVGElement.getPresentationAttribute',
     'SVGElementInstance.on:wheel',
@@ -850,6 +857,7 @@
 # Manual dart: library name lookup.
 _library_names = monitored.Dict('htmlrenamer._library_names', {
   'ANGLEInstancedArrays': 'web_gl',
+  'CHROMIUMSubscribeUniform': 'web_gl',
   'Database': 'web_sql',
   'Navigator': 'html',
   'Window': 'html',
@@ -857,6 +865,7 @@
 
 _library_ids = monitored.Dict('htmlrenamer._library_names', {
   'ANGLEInstancedArrays': 'WebGl',
+  'CHROMIUMSubscribeUniform': 'WebGl',
   'Database': 'WebSql',
   'Navigator': 'Html',
   'Window': 'Html',
diff --git a/tools/dom/scripts/idlnode.py b/tools/dom/scripts/idlnode.py
index 2d81988..5e4d156 100755
--- a/tools/dom/scripts/idlnode.py
+++ b/tools/dom/scripts/idlnode.py
@@ -12,18 +12,33 @@
 
 new_asts = {}
 
+# Report of union types mapped to any.
+_unions_to_any = []
+
+def report_unions_to_any():
+  global _unions_to_any
+
+  warnings = []
+  for union_id in sorted(_unions_to_any):
+    warnings.append('Union type %s is mapped to \'any\'' % union_id)
+
+  return warnings
+
 # Ugly but Chrome IDLs can reference typedefs in any IDL w/o an include.  So we
 # need to remember any typedef seen then alias any reference to a typedef.
-typeDefsFixup = []
+_typeDefsFixup = []
 
-def _resolveTypedef(type):
+def _addTypedef(typedef):
+  _typeDefsFixup.append(typedef)
+
+def resolveTypedef(type):
   """ Given a type if it's a known typedef (only typedef's that aren't union)
       are remembered for fixup.  typedefs that are union type are mapped to
       any so those we don't need to alias.  typedefs referenced in the file
       where the typedef was defined are automatically aliased to the real type.
       This resolves typedef where the declaration is in another IDL file.
   """
-  for typedef in typeDefsFixup:
+  for typedef in _typeDefsFixup:
     if typedef.id == type.id:
       return typedef.type
 
@@ -364,6 +379,8 @@
 
     filename_basename = os.path.basename(filename)
 
+    # Report of union types mapped to any.
+
     self.interfaces = self._convert_all(ast, 'Interface', IDLInterface)
     self.dictionaries = self._convert_all(ast, 'Dictionary', IDLDictionary)
 
@@ -425,7 +442,7 @@
         self.dictionaries.append(dictionary)
       else:
         # All other typedefs we record
-        typeDefsFixup.append(IDLTypeDef(typedef_type))
+        _addTypedef(IDLTypeDef(typedef_type))
 
     self.enums = self._convert_all(ast, 'Enum', IDLEnum)
 
@@ -556,6 +573,8 @@
   StringType, VoidType, IntegerType, etc."""
 
   def __init__(self, ast):
+    global _unions_to_any
+
     IDLNode.__init__(self, ast)
 
     if ast:
@@ -595,7 +614,9 @@
         if isinstance(ast, IdlType) or isinstance(ast, IdlArrayOrSequenceType) or \
            isinstance(ast, IdlNullableType):
           if isinstance(ast, IdlNullableType) and ast.inner_type.is_union_type:
-            print 'WARNING type %s is union mapped to \'any\'' % self.id
+            # Report of union types mapped to any.
+            if not(self.id in _unions_to_any):
+              _unions_to_any.append(self.id)
             # TODO(terry): For union types use any otherwise type is unionType is
             #              not found and is removed during merging.
             self.id = 'any'
@@ -616,19 +637,20 @@
         else:
           # IdlUnionType
           if ast.is_union_type:
-            print 'WARNING type %s is union mapped to \'any\'' % self.id
-          # TODO(terry): For union types use any otherwise type is unionType is
-          #              not found and is removed during merging.
+            if not(self.id in _unions_to_any):
+              _unions_to_any.append(self.id)
+            # TODO(terry): For union types use any otherwise type is unionType is
+            #              not found and is removed during merging.
             self.id = 'any'
-          # TODO(terry): Any union type e.g. 'type1 or type2 or type2',
-          #                            'typedef (Type1 or Type2) UnionType'
-          # Is a problem we need to extend IDLType and IDLTypeDef to handle more
-          # than one type.
-          #
-          # Also for typedef's e.g.,
-          #                 typedef (Type1 or Type2) UnionType
-          # should consider synthesizing a new interface (e.g., UnionType) that's
-          # both Type1 and Type2.
+            # TODO(terry): Any union type e.g. 'type1 or type2 or type2',
+            #                            'typedef (Type1 or Type2) UnionType'
+            # Is a problem we need to extend IDLType and IDLTypeDef to handle more
+            # than one type.
+            #
+            # Also for typedef's e.g.,
+            #                 typedef (Type1 or Type2) UnionType
+            # should consider synthesizing a new interface (e.g., UnionType) that's
+            # both Type1 and Type2.
       if not self.id:
         print '>>>> __module__ %s' % ast.__module__
         raise SyntaxError('Could not parse type %s' % (ast))
@@ -768,7 +790,7 @@
     IDLNode.__init__(self, ast)
 
     self.type = self._convert_first(ast, 'Type', IDLType)
-    self.type = _resolveTypedef(self.type)
+    self.type = resolveTypedef(self.type)
 
     self._convert_ext_attrs(ast)
     self._convert_annotations(ast)
@@ -784,7 +806,8 @@
     IDLMember.__init__(self, ast, doc_js_interface_name)
 
     self.type = self._convert_first(ast, 'ReturnType', IDLType)
-    self.type = _resolveTypedef(self.type)
+    self.type = resolveTypedef(self.type)
+
     self.arguments = self._convert_all(ast, 'Argument', IDLArgument)
     self.specials = self._find_all(ast, 'Special')
     # Special case: there are getters of the form
@@ -862,7 +885,7 @@
         self.default_value_is_null = False
 
     self.type = self._convert_first(ast, 'Type', IDLType)
-    self.type = _resolveTypedef(self.type)
+    self.type = resolveTypedef(self.type)
 
     self.optional = self._has(ast, 'Optional')
     self._convert_ext_attrs(ast)
diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py
index 7656695..b31b23d 100644
--- a/tools/dom/scripts/systemhtml.py
+++ b/tools/dom/scripts/systemhtml.py
@@ -737,7 +737,7 @@
   """
 
   def __init__(self, interface, options, logging_level=logging.WARNING):
-    super(Dart2JSBackend, self).__init__(interface, options, False)
+    super(Dart2JSBackend, self).__init__(interface, options, False, _logger)
 
     self._database = options.database
     self._template_loader = options.templates
@@ -747,7 +747,6 @@
     self._interface_type_info = self._type_registry.TypeInfo(self._interface.id)
     self._current_secondary_parent = None
     self._library_name = self._renamer.GetLibraryName(self._interface)
-
     _logger.setLevel(logging_level)
 
   def ImplementsMergedMembers(self):
diff --git a/tools/dom/scripts/systemnative.py b/tools/dom/scripts/systemnative.py
index 5470993..1fd37f4 100644
--- a/tools/dom/scripts/systemnative.py
+++ b/tools/dom/scripts/systemnative.py
@@ -7,12 +7,14 @@
 native binding from the IDL database."""
 
 import emitter
+import logging
 import os
 from generator import *
 from htmldartgenerator import *
 from idlnode import IDLArgument, IDLAttribute, IDLEnum, IDLMember
 from systemhtml import js_support_checks, GetCallbackInfo, HTML_LIBRARY_NAMES
 
+_logger = logging.getLogger('systemnative')
 
 # TODO(vsm): This should be recoverable from IDL, but we appear to not
 # track the necessary info.
@@ -76,9 +78,8 @@
 class DartiumBackend(HtmlDartGenerator):
   """Generates Dart implementation for one DOM IDL interface."""
 
-  def __init__(self, interface,
-               cpp_library_emitter, options):
-    super(DartiumBackend, self).__init__(interface, options, True)
+  def __init__(self, interface, cpp_library_emitter, options, loggerParent):
+    super(DartiumBackend, self).__init__(interface, options, True, loggerParent)
 
     self._interface = interface
     self._cpp_library_emitter = cpp_library_emitter
@@ -96,6 +97,7 @@
     self._cpp_definitions_emitter = None
     self._cpp_resolver_emitter = None
     self._dart_js_interop = options.dart_js_interop
+    _logger.setLevel(loggerParent.level)
 
   def ImplementsMergedMembers(self):
     # We could not add merged functions to implementation class because
diff --git a/tools/dom/src/dart2js_KeyEvent.dart b/tools/dom/src/dart2js_KeyEvent.dart
index 5dd0c06..0324f07 100644
--- a/tools/dom/src/dart2js_KeyEvent.dart
+++ b/tools/dom/src/dart2js_KeyEvent.dart
@@ -33,22 +33,22 @@
   /** The "fixed" value of whether the alt key is being pressed. */
   bool _shadowAltKey;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int _shadowCharCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int _shadowKeyCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get keyCode => _shadowKeyCode;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
 
-  /** Caculated value of whether the alt key is pressed is for this event. */
+  /** Calculated value of whether the alt key is pressed is for this event. */
   bool get altKey => _shadowAltKey;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get which => keyCode;
 
   /** Accessor to the underlying keyCode value is the parent event. */
@@ -185,23 +185,22 @@
   static EventStreamProvider<KeyEvent> keyPressEvent =
       new _KeyboardEventHandler('keypress');
 
-  /** Accessor to the clipboardData available for this event. */
-  DataTransfer get clipboardData => _parent.clipboardData;
+  String get code => _parent.code;
   /** True if the ctrl key is pressed during this event. */
   bool get ctrlKey => _parent.ctrlKey;
   int get detail => _parent.detail;
+  String get key => _parent.key;
   /**
    * Accessor to the part of the keyboard that the key was pressed from (one of
    * KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT,
    * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
    */
   int get keyLocation => _parent.keyLocation;
-  Point get layer => _parent.layer;
   /** True if the Meta (or Mac command) key is pressed during this event. */
   bool get metaKey => _parent.metaKey;
-  Point get page => _parent.page;
   /** True if the shift key was pressed during this event. */
   bool get shiftKey => _parent.shiftKey;
+  InputDevice get sourceDevice => _parent.sourceDevice;
   Window get view => _parent.view;
   void _initUIEvent(String type, bool canBubble, bool cancelable,
       Window view, int detail) {
@@ -211,6 +210,8 @@
 
   int get _charCode => charCode;
   int get _keyCode => keyCode;
+  int get _which => which;
+
   String get _keyIdentifier {
     throw new UnsupportedError("keyIdentifier is unsupported.");
   }
@@ -220,10 +221,6 @@
     throw new UnsupportedError(
         "Cannot initialize a KeyboardEvent from a KeyEvent.");
   }
-  int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
   @Experimental() // untriaged
   bool getModifierState(String keyArgument) => throw new UnimplementedError();
   @Experimental() // untriaged
diff --git a/tools/dom/src/dart2js_WrappedEvent.dart b/tools/dom/src/dart2js_WrappedEvent.dart
index e7e21a0..3f8789f 100644
--- a/tools/dom/src/dart2js_WrappedEvent.dart
+++ b/tools/dom/src/dart2js_WrappedEvent.dart
@@ -19,8 +19,6 @@
 
   bool get cancelable => wrapped.cancelable;
 
-  DataTransfer get clipboardData => wrapped.clipboardData;
-
   EventTarget get currentTarget => wrapped.currentTarget;
 
   bool get defaultPrevented => wrapped.defaultPrevented;
diff --git a/tools/dom/src/dartium_KeyEvent.dart b/tools/dom/src/dartium_KeyEvent.dart
index 327ddf0..9997689 100644
--- a/tools/dom/src/dartium_KeyEvent.dart
+++ b/tools/dom/src/dartium_KeyEvent.dart
@@ -43,22 +43,22 @@
   /** The "fixed" value of whether the alt key is being pressed. */
   bool _shadowAltKey;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int _shadowCharCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int _shadowKeyCode;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get keyCode => _shadowKeyCode;
 
-  /** Caculated value of what the estimated charCode is for this event. */
+  /** Calculated value of what the estimated charCode is for this event. */
   int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
 
-  /** Caculated value of whether the alt key is pressed is for this event. */
+  /** Calculated value of whether the alt key is pressed is for this event. */
   bool get altKey => _shadowAltKey;
 
-  /** Caculated value of what the estimated keyCode is for this event. */
+  /** Calculated value of what the estimated keyCode is for this event. */
   int get which => keyCode;
 
   /** Accessor to the underlying keyCode value is the parent event. */
@@ -113,8 +113,6 @@
   /** The currently registered target for this event. */
   EventTarget get currentTarget => _currentTarget;
 
-  /** Accessor to the clipboardData available for this event. */
-  DataTransfer get clipboardData => _parent.clipboardData;
   /** True if the ctrl key is pressed during this event. */
   bool get ctrlKey => _parent.ctrlKey;
   int get detail => _parent.detail;
@@ -124,10 +122,8 @@
    * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
    */
   int get keyLocation => _parent.keyLocation;
-  Point get layer => _parent.layer;
   /** True if the Meta (or Mac command) key is pressed during this event. */
   bool get metaKey => _parent.metaKey;
-  Point get page => _parent.page;
   /** True if the shift key was pressed during this event. */
   bool get shiftKey => _parent.shiftKey;
   Window get view => _parent.view;
@@ -139,6 +135,7 @@
 
   int get _charCode => charCode;
   int get _keyCode => keyCode;
+  int get _which => which;
   String get _keyIdentifier {
     throw new UnsupportedError("keyIdentifier is unsupported.");
   }
@@ -148,10 +145,6 @@
     throw new UnsupportedError(
         "Cannot initialize a KeyboardEvent from a KeyEvent.");
   }
-  int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent');
-  int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent');
   @Experimental() // untriaged
   bool getModifierState(String keyArgument) => throw new UnimplementedError();
   @Experimental() // untriaged
diff --git a/tools/dom/src/dartium_WrappedEvent.dart b/tools/dom/src/dartium_WrappedEvent.dart
index 18c43f0..2364158 100644
--- a/tools/dom/src/dartium_WrappedEvent.dart
+++ b/tools/dom/src/dartium_WrappedEvent.dart
@@ -26,8 +26,6 @@
 
   bool get cancelable => wrapped.cancelable;
 
-  DataTransfer get clipboardData => wrapped.clipboardData;
-
   EventTarget get currentTarget => wrapped.currentTarget;
 
   bool get defaultPrevented => wrapped.defaultPrevented;
diff --git a/tools/dom/templates/html/dart2js/impl_KeyboardEvent.darttemplate b/tools/dom/templates/html/dart2js/impl_KeyboardEvent.darttemplate
index 23e22bf..bbd6aeb 100644
--- a/tools/dom/templates/html/dart2js/impl_KeyboardEvent.darttemplate
+++ b/tools/dom/templates/html/dart2js/impl_KeyboardEvent.darttemplate
@@ -62,5 +62,8 @@
 
   @DomName('KeyboardEvent.charCode')
   int get charCode => _charCode;
+
+  @DomName('KeyboardEvent.which')
+  int get which => _which;
 $!MEMBERS
 }
diff --git a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
index 80ecea1..5d5d23a 100644
--- a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
+++ b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
@@ -60,4 +60,12 @@
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
   Point get screen => new Point(_screenX, _screenY);
+
+  @DomName('MouseEvent.layerX')
+  @DomName('MouseEvent.layerY')
+  Point get layer => new Point(_layerX, _layerY);
+
+  @DomName('MouseEvent.pageX')
+  @DomName('MouseEvent.pageY')
+  Point get page => new Point(_pageX, _pageY);
 }
diff --git a/tools/dom/templates/html/dartium/impl_KeyboardEvent.darttemplate b/tools/dom/templates/html/dartium/impl_KeyboardEvent.darttemplate
index 2cdb92b..7e4d026 100644
--- a/tools/dom/templates/html/dartium/impl_KeyboardEvent.darttemplate
+++ b/tools/dom/templates/html/dartium/impl_KeyboardEvent.darttemplate
@@ -24,5 +24,8 @@
 
   @DomName('KeyboardEvent.charCode')
   int get charCode => _charCode;
+
+  @DomName('KeyboardEvent.which')
+  int get which => _which;
 $!MEMBERS
 }
diff --git a/tools/dom/templates/html/dartium/impl_MouseEvent.darttemplate b/tools/dom/templates/html/dartium/impl_MouseEvent.darttemplate
index 02bc4fb..c4dc511 100644
--- a/tools/dom/templates/html/dartium/impl_MouseEvent.darttemplate
+++ b/tools/dom/templates/html/dartium/impl_MouseEvent.darttemplate
@@ -64,4 +64,12 @@
   @DomName('MouseEvent.screenX')
   @DomName('MouseEvent.screenY')
   Point get screen => new Point(_screenX, _screenY);
+
+  @DomName('MouseEvent.layerX')
+  @DomName('MouseEvent.layerY')
+  Point get layer => new Point(_layerX, _layerY);
+
+  @DomName('MouseEvent.pageX')
+  @DomName('MouseEvent.pageY')
+  Point get page => new Point(_pageX, _pageY);
 }
diff --git a/tools/dom/templates/html/impl/impl_CanvasRenderingContext2D.darttemplate b/tools/dom/templates/html/impl/impl_CanvasRenderingContext2D.darttemplate
index cd5fa3c..74c7d33 100644
--- a/tools/dom/templates/html/impl/impl_CanvasRenderingContext2D.darttemplate
+++ b/tools/dom/templates/html/impl/impl_CanvasRenderingContext2D.darttemplate
@@ -15,7 +15,7 @@
   @DocsEditable()
   ImageData createImageDataFromImageData(ImageData imagedata) =>
 $if DART2JS
-    JS('ImageData', '#.createImageData(#, #)', this, imagedata);
+    JS('ImageData', '#.createImageData(#)', this, imagedata);
 $else
     this.createImageData(imagedata);
 $endif
diff --git a/tools/dom/templates/html/impl/impl_MessageEvent.darttemplate b/tools/dom/templates/html/impl/impl_MessageEvent.darttemplate
index fec4341..19d77d1 100644
--- a/tools/dom/templates/html/impl/impl_MessageEvent.darttemplate
+++ b/tools/dom/templates/html/impl/impl_MessageEvent.darttemplate
@@ -48,8 +48,8 @@
   @JSName('data')
   @DomName('MessageEvent.data')
   @DocsEditable()
-  @Creates('Null')
-  @Returns('Object|Null')
+  @annotation_Creates_SerializedScriptValue
+  @annotation_Returns_SerializedScriptValue
   final dynamic _get_data;
 
 $endif
diff --git a/tools/dom/templates/html/impl/impl_ServiceWorkerMessageEvent.darttemplate b/tools/dom/templates/html/impl/impl_ServiceWorkerMessageEvent.darttemplate
new file mode 100644
index 0000000..42a803f
--- /dev/null
+++ b/tools/dom/templates/html/impl/impl_ServiceWorkerMessageEvent.darttemplate
@@ -0,0 +1,38 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// WARNING: Do not edit - generated code.
+
+part of $LIBRARYNAME;
+
+// TODO(alanknight): Provide a nicer constructor that uses named parameters
+// rather than an initialization map.
+$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
+
+$if DARTIUM
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  dynamic get data => convertNativeToDart_SerializedScriptValue(
+      _blink.BlinkMessageEvent.instance.data_Getter_(unwrap_jso(this)));
+$else
+  // TODO(alanknight): This really should be generated by the
+  // _OutputConversion in the systemnative.py script, but that doesn't
+  // use those conversions right now, so do this as a one-off.
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
+
+  @JSName('data')
+  @DomName('ServiceWorkerMessageEvent.data')
+  @DocsEditable()
+  @annotation_Creates_SerializedScriptValue
+  @annotation_Returns_SerializedScriptValue
+  final dynamic _get_data;
+$endif
+
+$!MEMBERS
+}
diff --git a/tools/dom/templates/html/impl/impl_UIEvent.darttemplate b/tools/dom/templates/html/impl/impl_UIEvent.darttemplate
index 223dc0a..5894720 100644
--- a/tools/dom/templates/html/impl/impl_UIEvent.darttemplate
+++ b/tools/dom/templates/html/impl/impl_UIEvent.darttemplate
@@ -24,12 +24,4 @@
     return e;
   }
 $!MEMBERS
-
-  @DomName('UIEvent.layerX')
-  @DomName('UIEvent.layerY')
-  Point get layer => new Point(_layerX, _layerY);
-
-  @DomName('UIEvent.pageX')
-  @DomName('UIEvent.pageY')
-  Point get page => new Point(_pageX, _pageY);
 }
diff --git a/tools/gyp/configurations.gypi b/tools/gyp/configurations.gypi
index 84237ca..6a4b796 100644
--- a/tools/gyp/configurations.gypi
+++ b/tools/gyp/configurations.gypi
@@ -660,6 +660,33 @@
         ],
       },
 
+      'DebugAndroidX64': {
+        'inherit_from': [
+          'Dart_Base', 'Dart_x64_Base', 'Dart_Debug',
+          'Dart_Android_Base',
+          'Dart_Android_x64_Base',
+          'Dart_Android_Debug',
+        ],
+      },
+
+      'ReleaseAndroidX64': {
+        'inherit_from': [
+          'Dart_Base', 'Dart_x64_Base', 'Dart_Release',
+          'Dart_Android_Base',
+          'Dart_Android_x64_Base',
+          'Dart_Android_Release',
+        ],
+      },
+
+      'ProductAndroidX64': {
+        'inherit_from': [
+          'Dart_Base', 'Dart_x64_Base', 'Dart_Product',
+          'Dart_Android_Base',
+          'Dart_Android_x64_Base',
+          'Dart_Android_Product',
+        ],
+      },
+
       'DebugAndroidARM': {
         'inherit_from': [
           'Dart_Base', 'Dart_arm_Base', 'Dart_Debug',
diff --git a/tools/gyp/configurations_android.gypi b/tools/gyp/configurations_android.gypi
index 0d6133d..8708d6d 100644
--- a/tools/gyp/configurations_android.gypi
+++ b/tools/gyp/configurations_android.gypi
@@ -148,6 +148,58 @@
           }],
         ],
       },
+      'Dart_Android_x64_Base': {
+        'abstract': 1,
+        'variables': {
+          'android_sysroot': '<(android_ndk_root)/platforms/android-21/arch-x86_64',
+          'android_ndk_include': '<(android_sysroot)/usr/include',
+          'android_ndk_lib': '<(android_sysroot)/usr/lib64',
+        },
+        'target_conditions': [
+          ['_toolset=="target"', {
+            'cflags': [
+              '-fPIE',
+              '--sysroot=<(android_sysroot)',
+              '-I<(android_ndk_include)',
+              '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
+            ],
+            'target_conditions': [
+              ['_type=="executable"', {
+                'ldflags!': ['-Wl,--exclude-libs=ALL,-shared',],
+              }],
+              ['_type=="shared_library"', {
+                'ldflags': ['-Wl,-shared,-Bsymbolic',],
+              }],
+            ],
+            'ldflags': [
+              'x64', '>(_type)', 'target',
+              '-nostdlib',
+              '-Wl,--no-undefined',
+              # Don't export symbols from statically linked libraries.
+              '-Wl,--exclude-libs=ALL',
+              '-Wl,-rpath-link=<(android_ndk_lib)',
+              '-L<(android_ndk_lib)',
+              '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86_64',
+              '-z',
+              'muldefs',
+              '-Bdynamic',
+              '-pie',
+              '-Wl,-dynamic-linker,/system/bin/linker',
+              '-Wl,--gc-sections',
+              '-Wl,-z,nocopyreloc',
+              # crtbegin_dynamic.o should be the last item in ldflags.
+              '<(android_ndk_lib)/crtbegin_dynamic.o',
+            ],
+            'ldflags!': [
+              '-pthread',  # Not supported by Android toolchain.
+            ],
+          }],
+          ['_toolset=="host"', {
+            'cflags': [ '-pthread' ],
+            'ldflags': [ '-pthread' ],
+          }],
+        ],
+      },
       'Dart_Android_arm_Base': {
         'abstract': 1,
         'variables': {
diff --git a/tools/precompilation/test_linux.sh b/tools/precompilation/test_linux.sh
index 514ac04..056fde0 100755
--- a/tools/precompilation/test_linux.sh
+++ b/tools/precompilation/test_linux.sh
@@ -8,8 +8,8 @@
 
 ./tools/build.py -mdebug -ax64 runtime
 
-./out/DebugX64/dart_no_snapshot --gen-precompiled-snapshot --package-root=out/DebugX64/packages/ "$1"
+./out/DebugX64/dart_bootstrap --gen-precompiled-snapshot --package-root=out/DebugX64/packages/ "$1"
 
 gcc -nostartfiles -m64 -shared -Wl,-soname,libprecompiled.so -o libprecompiled.so precompiled.S
 
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD" gdb -ex run --args ./out/DebugX64/dart_precompiled_runtime --run-precompiled-snapshot not_used.dart
+gdb -ex run --args ./out/DebugX64/dart_precompiled_runtime --run-precompiled-snapshot=$PWD not_used.dart
diff --git a/tools/precompilation/test_linux_simarm.sh b/tools/precompilation/test_linux_simarm.sh
index bd0f1f0..13d09eb 100755
--- a/tools/precompilation/test_linux_simarm.sh
+++ b/tools/precompilation/test_linux_simarm.sh
@@ -8,8 +8,8 @@
 
 ./tools/build.py -mdebug -asimarm runtime
 
-./out/DebugSIMARM/dart_no_snapshot --gen-precompiled-snapshot --package-root=out/DebugX64/packages/ "$1"
+./out/DebugSIMARM/dart_bootstrap --gen-precompiled-snapshot --package-root=out/DebugX64/packages/ "$1"
 
 gcc -nostartfiles -m32 -shared -Wl,-soname,libprecompiled.so -o libprecompiled.so precompiled.S
 
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD" gdb -ex run --args ./out/DebugSIMARM/dart_precompiled_runtime --run-precompiled-snapshot not_used.dart
+gdb -ex run --args ./out/DebugSIMARM/dart_precompiled_runtime --run-precompiled-snapshot=$PWD not_used.dart
diff --git a/tools/precompilation/test_macos.sh b/tools/precompilation/test_macos.sh
index ed90d12..1b97e36 100755
--- a/tools/precompilation/test_macos.sh
+++ b/tools/precompilation/test_macos.sh
@@ -8,8 +8,8 @@
 
 ./tools/build.py -mdebug -ax64 runtime
 
-./xcodebuild/DebugX64/dart_no_snapshot --gen-precompiled-snapshot --package-root=xcodebuild/DebugX64/packages/ "$1"
+./xcodebuild/DebugX64/dart_bootstrap --gen-precompiled-snapshot --package-root=xcodebuild/DebugX64/packages/ "$1"
 
 clang -nostartfiles -m64 -dynamiclib -o libprecompiled.dylib precompiled.S
 
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD" lldb -- ./xcodebuild/DebugX64/dart_precompiled_runtime --run-precompiled-snapshot not_used.dart
+lldb -- ./xcodebuild/DebugX64/dart_precompiled_runtime --run-precompiled-snapshot=$PWD not_used.dart
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index 4794992..ed9f2c0 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -354,7 +354,7 @@
       CommandBuilder commandBuilder,
       List arguments,
       Map<String, String> environmentOverrides) {
-    var exec = "$buildDir/dart_no_snapshot";
+    var exec = "$buildDir/dart_bootstrap";
     var args = new List();
     args.add("--gen-precompiled-snapshot=$tempDir");
     args.addAll(arguments);
diff --git a/tools/testing/dart/runtime_configuration.dart b/tools/testing/dart/runtime_configuration.dart
index c2b2aed..55cf8fe 100644
--- a/tools/testing/dart/runtime_configuration.dart
+++ b/tools/testing/dart/runtime_configuration.dart
@@ -270,11 +270,10 @@
     augmentedArgs.add("--run-precompiled-snapshot=${artifact.filename}");
     augmentedArgs.addAll(arguments);
 
-    var augmentedEnv = new Map.from(environmentOverrides);
-    augmentedEnv['LD_LIBRARY_PATH'] = artifact.filename;
-
     return <Command>[commandBuilder.getVmCommand(
-          suite.dartPrecompiledBinaryFileName, augmentedArgs, augmentedEnv)];
+        suite.dartPrecompiledBinaryFileName,
+        augmentedArgs,
+        environmentOverrides)];
   }
 }
 
diff --git a/utils/dartanalyzer/dartanalyzer.gyp b/utils/dartanalyzer/dartanalyzer.gyp
index 6aec554..1fa08ee 100644
--- a/utils/dartanalyzer/dartanalyzer.gyp
+++ b/utils/dartanalyzer/dartanalyzer.gyp
@@ -19,6 +19,7 @@
             '../../sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart',
             '<(SHARED_INTERMEDIATE_DIR)/packages.stamp',
             '<!@(["python", "../../tools/list_files.py", "\\.dart$", "../../pkg/analyzer_cli"])',
+            '<!@(["python", "../../tools/list_files.py", "\\.dart$", "../../pkg/analyzer"])',
           ],
           'outputs': [
             '<(SHARED_INTERMEDIATE_DIR)/dartanalyzer.dart.snapshot',