Snapshot working
diff --git a/lib/runtime/dart/_interceptors.js b/lib/runtime/dart/_interceptors.js
index 960cd92..f9c7c33 100644
--- a/lib/runtime/dart/_interceptors.js
+++ b/lib/runtime/dart/_interceptors.js
@@ -429,7 +429,7 @@
       statics: () => ({markFixedList: [core.List, [core.List]]}),
       names: ['markFixedList']
     });
-    JSArray[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({name: 'Array'}))];
+    JSArray[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.JsPeerInterface({name: 'Array'}))]]);
     JSArray[dart.owner] = exports;
     return JSArray;
   });
@@ -878,7 +878,7 @@
     }),
     names: ['_handleIEtoString', '_bitCount', '_shru', '_shrs', '_ors', '_spread']
   });
-  JSNumber[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({name: 'Number'}))];
+  JSNumber[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.JsPeerInterface({name: 'Number'}))]]);
   JSNumber[dart.owner] = exports;
   JSNumber._MIN_INT32 = -2147483648;
   JSNumber._MAX_INT32 = 2147483647;
@@ -1332,7 +1332,7 @@
     }),
     names: ['_isWhitespace', '_skipLeadingWhitespace', '_skipTrailingWhitespace']
   });
-  JSString[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({name: 'String'}))];
+  JSString[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.JsPeerInterface({name: 'String'}))]]);
   JSString[dart.owner] = exports;
   dart.registerExtension(dart.global.String, JSString);
   const _string = Symbol('_string');
@@ -1343,6 +1343,9 @@
     get length() {
       return this[_string][dartx.length];
     }
+    set length(value) {
+      super.length = value;
+    }
     get(i) {
       return this[_string][dartx.codeUnitAt](i);
     }
@@ -1380,7 +1383,7 @@
   dart.setSignature(JSBool, {
     constructors: () => ({JSBool: [JSBool, []]})
   });
-  JSBool[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({name: 'Boolean'}))];
+  JSBool[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.JsPeerInterface({name: 'Boolean'}))]]);
   JSBool[dart.owner] = exports;
   dart.registerExtension(dart.global.Boolean, JSBool);
   class JSIndexable extends core.Object {}
diff --git a/lib/runtime/dart/_js_helper.js b/lib/runtime/dart/_js_helper.js
index 0ca741f..f26bf40 100644
--- a/lib/runtime/dart/_js_helper.js
+++ b/lib/runtime/dart/_js_helper.js
@@ -782,7 +782,7 @@
     }
     static getWeekday(receiver) {
       let weekday = dart.notNull(dart.as(dart.dload(receiver, 'isUtc'), core.bool)) ? Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : Primitives.lazyAsJsDate(receiver).getDay() + 0;
-      return (weekday + 6) % 7 + 1;
+      return (weekday + 6)[dartx["%"]](7) + 1;
     }
     static valueFromDateString(str) {
       if (!(typeof str == 'string')) dart.throw(new core.ArgumentError(str));
diff --git a/lib/runtime/dart/_js_mirrors.js b/lib/runtime/dart/_js_mirrors.js
index 5e0876d..a43d510 100644
--- a/lib/runtime/dart/_js_mirrors.js
+++ b/lib/runtime/dart/_js_mirrors.js
@@ -136,10 +136,28 @@
       this[_metadata] = null;
       this[_declarations] = null;
       let fn = this[_cls][dart.metadata];
-      this[_metadata] = fn == null ? [] : core.List$(mirrors.InstanceMirror).from(dart.as(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])), core.Iterable));
+      let map = dart.as(fn == null ? dart.map() : dart.dcall(fn), core.Map);
+      let typedata = map[dartx.get]('type');
+      this[_metadata] = typedata == null ? [] : core.List$(mirrors.InstanceMirror).from(dart.as(dart.dsend(typedata, 'map', dart.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])), core.Iterable));
       this[_owner] = new JsLibraryMirror._(this[_cls][dart.owner]);
       this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new();
-      this[_declarations][dartx.set](this.simpleName, new JsMethodMirror._(this, this[_cls]));
+      this[_declarations][dartx.set](this.simpleName, new JsMethodMirror._(this, this[_cls], []));
+      let properties = dart.as(map[dartx.get]('properties'), core.Map);
+      if (properties != null) {
+        properties[dartx.forEach](dart.fn((name, annotations) => {
+          let symbol = core.Symbol.new(name);
+          let metadata = core.List$(mirrors.InstanceMirror).from(annotations[dartx.map](dart.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])));
+          this[_declarations][dartx.set](symbol, new JsMethodMirror._(this, null, metadata));
+        }, dart.void, [core.String, core.List]));
+      }
+      let fields = dart.as(map[dartx.get]('fields'), core.Map);
+      if (fields != null) {
+        fields[dartx.forEach](dart.fn((name, annotations) => {
+          let symbol = core.Symbol.new(name);
+          let metadata = core.List$(mirrors.InstanceMirror).from(annotations[dartx.map](dart.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])));
+          this[_declarations][dartx.set](symbol, new JsMethodMirror._(this, null, metadata));
+        }, dart.void, [core.String, core.List]));
+      }
     }
     newInstance(constructorName, args, namedArgs) {
       if (namedArgs === void 0) namedArgs = null;
@@ -364,20 +382,24 @@
   const _params = Symbol('_params');
   const _createParameterMirrorList = Symbol('_createParameterMirrorList');
   class JsMethodMirror extends core.Object {
-    _(cls, method) {
+    _(cls, method, metadata) {
       this[_method] = method;
+      this[_metadata] = metadata;
       this[_name] = getName(cls.simpleName);
       this[_params] = null;
-      let ftype = _dart.classGetConstructorType(cls[_cls]);
-      if (ftype == null) {
-        ftype = _dart.classGetConstructorType(cls[_cls], "new");
+      if (this[_method] != null) {
+        let ftype = _dart.classGetConstructorType(cls[_cls]);
+        if (ftype == null) {
+          ftype = _dart.classGetConstructorType(cls[_cls], "new");
+        }
+        this[_params] = this[_createParameterMirrorList](ftype);
       }
-      this[_params] = this[_createParameterMirrorList](ftype);
     }
     _method(method) {
       this[_name] = method.name;
       this[_method] = method;
       this[_params] = null;
+      this[_metadata] = null;
       let ftype = realRuntimeType(method);
       this[_params] = this[_createParameterMirrorList](ftype);
     }
@@ -454,7 +476,7 @@
       return dart.throw(new core.UnimplementedError("MethodMirror.location unimplemented"));
     }
     get metadata() {
-      return [];
+      return this[_metadata];
     }
     get owner() {
       return dart.throw(new core.UnimplementedError("MethodMirror.owner unimplemented"));
@@ -477,7 +499,7 @@
   dart.defineNamedConstructor(JsMethodMirror, '_method');
   dart.setSignature(JsMethodMirror, {
     constructors: () => ({
-      _: [JsMethodMirror, [JsClassMirror, dart.dynamic]],
+      _: [JsMethodMirror, [JsClassMirror, dart.dynamic, core.List$(mirrors.InstanceMirror)]],
       _method: [JsMethodMirror, [dart.dynamic]]
     }),
     methods: () => ({[_createParameterMirrorList]: [core.List$(mirrors.ParameterMirror), [dart.dynamic]]})
diff --git a/lib/runtime/dart/_native_typed_data.js b/lib/runtime/dart/_native_typed_data.js
index 2e88dfa..8adc941 100644
--- a/lib/runtime/dart/_native_typed_data.js
+++ b/lib/runtime/dart/_native_typed_data.js
@@ -137,7 +137,7 @@
       [dartx.asByteData]: [typed_data.ByteData, [], [core.int, core.int]]
     })
   });
-  NativeByteBuffer[dart.metadata] = () => [dart.const(new _js_helper.Native("ArrayBuffer"))];
+  NativeByteBuffer[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("ArrayBuffer"))], 'properties', dart.map(['lengthInBytes', [dart.const(new _js_helper.JSName('byteLength'))]])]);
   NativeByteBuffer[dart.owner] = exports;
   dart.registerExtension(dart.global.ArrayBuffer, NativeByteBuffer);
   const _storage = Symbol('_storage');
@@ -208,6 +208,9 @@
     get length() {
       return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
     }
+    set length(value) {
+      super.length = value;
+    }
     get(index) {
       this[_checkIndex](index, this.length);
       let _x = this[_storage][dartx.get](dart.notNull(index) * 4 + 0);
@@ -324,6 +327,9 @@
     get length() {
       return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
     }
+    set length(value) {
+      super.length = value;
+    }
     get(index) {
       this[_checkIndex](index, this.length);
       let _x = this[_storage][dartx.get](dart.notNull(index) * 4 + 0);
@@ -438,6 +444,9 @@
     get length() {
       return (dart.notNull(this[_storage][dartx.length]) / 2)[dartx.truncate]();
     }
+    set length(value) {
+      super.length = value;
+    }
     get(index) {
       this[_checkIndex](index, this.length);
       let _x = this[_storage][dartx.get](dart.notNull(index) * 2 + 0);
@@ -547,6 +556,7 @@
     'offsetInBytes',
     'elementSizeInBytes'
   ]);
+  NativeTypedData[dart.metadata] = () => dart.map(['properties', dart.map(['buffer', [dart.const(new _js_helper.Creates('NativeByteBuffer')), dart.const(new _js_helper.Returns('NativeByteBuffer|Null'))], 'lengthInBytes', [dart.const(new _js_helper.JSName('byteLength'))], 'offsetInBytes', [dart.const(new _js_helper.JSName('byteOffset'))], 'elementSizeInBytes', [dart.const(new _js_helper.JSName('BYTES_PER_ELEMENT'))]])]);
   NativeTypedData[dart.owner] = exports;
   function _checkLength(length) {
     if (!(typeof length == 'number')) dart.throw(new core.ArgumentError(`Invalid length ${length}`));
@@ -793,7 +803,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeByteData[dart.metadata] = () => [dart.const(new _js_helper.Native("DataView"))];
+  NativeByteData[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("DataView"))]]);
   NativeByteData[dart.owner] = exports;
   dart.registerExtension(dart.global.DataView, NativeByteData);
   const _setRangeFast = Symbol('_setRangeFast');
@@ -831,6 +841,9 @@
     get length() {
       return this.length;
     }
+    set length(value) {
+      super.length = value;
+    }
     get(index) {
       this[_checkIndex](index, this[dartx.length]);
       return this[index];
@@ -867,6 +880,9 @@
     get length() {
       return this.length;
     }
+    set length(value) {
+      super.length = value;
+    }
     set(index, value) {
       this[_checkIndex](index, this[dartx.length]);
       this[index] = value;
@@ -939,7 +955,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeFloat32List[dart.metadata] = () => [dart.const(new _js_helper.Native("Float32Array"))];
+  NativeFloat32List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Float32Array"))]]);
   NativeFloat32List[dart.owner] = exports;
   dart.registerExtension(dart.global.Float32Array, NativeFloat32List);
   dart.defineExtensionNames([
@@ -991,7 +1007,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeFloat64List[dart.metadata] = () => [dart.const(new _js_helper.Native("Float64Array"))];
+  NativeFloat64List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Float64Array"))]]);
   NativeFloat64List[dart.owner] = exports;
   dart.registerExtension(dart.global.Float64Array, NativeFloat64List);
   dart.defineExtensionNames([
@@ -1051,7 +1067,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeInt16List[dart.metadata] = () => [dart.const(new _js_helper.Native("Int16Array"))];
+  NativeInt16List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Int16Array"))]]);
   NativeInt16List[dart.owner] = exports;
   dart.registerExtension(dart.global.Int16Array, NativeInt16List);
   dart.defineExtensionNames([
@@ -1111,7 +1127,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeInt32List[dart.metadata] = () => [dart.const(new _js_helper.Native("Int32Array"))];
+  NativeInt32List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Int32Array"))]]);
   NativeInt32List[dart.owner] = exports;
   dart.registerExtension(dart.global.Int32Array, NativeInt32List);
   dart.defineExtensionNames([
@@ -1171,7 +1187,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeInt8List[dart.metadata] = () => [dart.const(new _js_helper.Native("Int8Array"))];
+  NativeInt8List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Int8Array"))]]);
   NativeInt8List[dart.owner] = exports;
   dart.registerExtension(dart.global.Int8Array, NativeInt8List);
   dart.defineExtensionNames([
@@ -1231,7 +1247,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeUint16List[dart.metadata] = () => [dart.const(new _js_helper.Native("Uint16Array"))];
+  NativeUint16List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Uint16Array"))]]);
   NativeUint16List[dart.owner] = exports;
   dart.registerExtension(dart.global.Uint16Array, NativeUint16List);
   dart.defineExtensionNames([
@@ -1291,7 +1307,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeUint32List[dart.metadata] = () => [dart.const(new _js_helper.Native("Uint32Array"))];
+  NativeUint32List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Uint32Array"))]]);
   NativeUint32List[dart.owner] = exports;
   dart.registerExtension(dart.global.Uint32Array, NativeUint32List);
   dart.defineExtensionNames([
@@ -1317,6 +1333,9 @@
     get [dartx.length]() {
       return this.length;
     }
+    set [dartx.length](value) {
+      super.length = value;
+    }
     [dartx.get](index) {
       this[_checkIndex](index, this[dartx.length]);
       return this[index];
@@ -1355,7 +1374,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeUint8ClampedList[dart.metadata] = () => [dart.const(new _js_helper.Native("Uint8ClampedArray,CanvasPixelArray"))];
+  NativeUint8ClampedList[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Uint8ClampedArray,CanvasPixelArray"))]]);
   NativeUint8ClampedList[dart.owner] = exports;
   dart.registerExtension(dart.global.Uint8ClampedArray, NativeUint8ClampedList);
   dart.defineExtensionNames([
@@ -1381,6 +1400,9 @@
     get [dartx.length]() {
       return this.length;
     }
+    set [dartx.length](value) {
+      super.length = value;
+    }
     [dartx.get](index) {
       this[_checkIndex](index, this[dartx.length]);
       return this[index];
@@ -1419,7 +1441,7 @@
     }),
     names: ['_create1', '_create2', '_create3']
   });
-  NativeUint8List[dart.metadata] = () => [dart.const(new _js_helper.Native("Uint8Array,!nonleaf"))];
+  NativeUint8List[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("Uint8Array,!nonleaf"))]]);
   NativeUint8List[dart.owner] = exports;
   dart.registerExtension(dart.global.Uint8Array, NativeUint8List);
   class NativeFloat32x4 extends core.Object {
diff --git a/lib/runtime/dart/_runtime.js b/lib/runtime/dart/_runtime.js
index e8dcc6c..1ee3d2b 100644
--- a/lib/runtime/dart/_runtime.js
+++ b/lib/runtime/dart/_runtime.js
@@ -472,6 +472,8 @@
     return checkAndCall(f, ftype, void 0, args, 'call');
   }
   function callMethod(obj, name, args, displayName) {
+    if (name == 'toString' && args.length == 0) return toString(obj);
+    if (name == 'hashCode' && args.length == 0) return hashCode(obj);
     let symbol = _canonicalFieldName(obj, name, args, displayName);
     let f = obj != null ? obj[symbol] : null;
     let ftype = getMethodType(obj, name);
@@ -488,7 +490,9 @@
     return value;
   }
   function _ignoreTypeFailure(actual, type) {
-    if (isSubtype(type, core.Iterable) && isSubtype(actual, core.Iterable) || isSubtype(type, async.Future) && isSubtype(actual, async.Future) || isSubtype(type, core.Map) && isSubtype(actual, core.Map) || isSubtype(type, core.Function) && isSubtype(actual, core.Function) || isSubtype(type, async.Stream) && isSubtype(actual, async.Stream) || isSubtype(type, async.StreamController) && isSubtype(actual, async.StreamController) || isSubtype(type, async.StreamSubscription) && isSubtype(actual, async.StreamSubscription)) {
+    var raw = getGenericClass(type);
+    if (raw && isSubtype(actual, raw())) return true;
+    if (isSubtype(type, core.Iterable) && isSubtype(actual, core.Iterable) || isSubtype(type, async.Future) && isSubtype(actual, async.Future) || isSubtype(type, core.Map) && isSubtype(actual, core.Map) || isSubtype(type, core.Function) && isSubtype(actual, core.Function) || isSubtype(type, async.Stream) && isSubtype(actual, async.Stream) || isSubtype(type, async.StreamController) && isSubtype(actual, async.StreamController) || isSubtype(type, async.StreamTransformer) && isSubtype(actual, async.StreamTransformer) || isSubtype(type, async.StreamSubscription) && isSubtype(actual, async.StreamSubscription)) {
       if (false) {
         console.warn('Ignoring cast fail from ' + typeName(actual) + ' to ' + typeName(type));
       }
@@ -1200,7 +1204,11 @@
     for (let name of names) {
       var desc = getOwnPropertyDescriptor(from, name);
       if (desc != void 0) {
-        defineProperty(to, name, desc);
+        if (name == Symbol.iterator && getOwnPropertyDescriptor(to, name)) {
+          to[Symbol.iterator] = desc.value;
+        } else {
+          defineProperty(to, name, desc);
+        }
       } else {
         defineLazyProperty(to, name, () => from[name]);
       }
diff --git a/lib/runtime/dart/async.js b/lib/runtime/dart/async.js
index 13b240d..7b16f54 100644
--- a/lib/runtime/dart/async.js
+++ b/lib/runtime/dart/async.js
@@ -1761,7 +1761,7 @@
     constructors: () => ({DeferredLibrary: [DeferredLibrary, [core.String], {uri: core.String}]}),
     methods: () => ({load: [Future$(core.Null), []]})
   });
-  DeferredLibrary[dart.metadata] = () => [dart.const(new core.Deprecated("Dart sdk v. 1.8"))];
+  DeferredLibrary[dart.metadata] = () => dart.map(['type', [dart.const(new core.Deprecated("Dart sdk v. 1.8"))]]);
   DeferredLibrary[dart.owner] = exports;
   const _s = Symbol('_s');
   class DeferredLoadException extends core.Object {
diff --git a/lib/runtime/dart/collection.js b/lib/runtime/dart/collection.js
index a38ee45..6cc2b4b 100644
--- a/lib/runtime/dart/collection.js
+++ b/lib/runtime/dart/collection.js
@@ -18,6 +18,9 @@
       get length() {
         return this[_source][dartx.length];
       }
+      set length(value) {
+        super.length = value;
+      }
       get(index) {
         return this[_source][dartx.elementAt](index);
       }
diff --git a/lib/runtime/dart/html.js b/lib/runtime/dart/html.js
index fba1d5f..073a50a 100644
--- a/lib/runtime/dart/html.js
+++ b/lib/runtime/dart/html.js
@@ -128,7 +128,7 @@
       [_removeEventListener]: [dart.void, [], [core.String, EventListener, core.bool]]
     })
   });
-  EventTarget[dart.metadata] = () => [dart.const(new _metadata.DomName('EventTarget')), dart.const(new _js_helper.Native("EventTarget"))];
+  EventTarget[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('EventTarget')), dart.const(new _js_helper.Native("EventTarget"))]]);
   EventTarget[dart.owner] = exports;
   dart.registerExtension(dart.global.EventTarget, EventTarget);
   dart.defineExtensionNames([
@@ -319,7 +319,7 @@
       [_replaceChild]: [Node, [Node, Node]]
     })
   });
-  Node[dart.metadata] = () => [dart.const(new _metadata.DomName('Node')), dart.const(new _js_helper.Native("Node"))];
+  Node[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Node')), dart.const(new _js_helper.Native("Node"))], 'fields', dart.map(['childNodes', [dart.const(new _metadata.DomName('Node.childNodes')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'baseUri', [dart.const(new _js_helper.JSName('baseURI')), dart.const(new _metadata.DomName('Node.baseURI')), dart.const(new _metadata.DocsEditable())], 'firstChild', [dart.const(new _metadata.DomName('Node.firstChild')), dart.const(new _metadata.DocsEditable())], 'lastChild', [dart.const(new _metadata.DomName('Node.lastChild')), dart.const(new _metadata.DocsEditable())], '_localName', [dart.const(new _js_helper.JSName('localName')), dart.const(new _metadata.DomName('Node.localName')), dart.const(new _metadata.DocsEditable())], '_namespaceUri', [dart.const(new _js_helper.JSName('namespaceURI')), dart.const(new _metadata.DomName('Node.namespaceURI')), dart.const(new _metadata.DocsEditable())], 'nextNode', [dart.const(new _js_helper.JSName('nextSibling')), dart.const(new _metadata.DomName('Node.nextSibling')), dart.const(new _metadata.DocsEditable())], 'nodeName', [dart.const(new _metadata.DomName('Node.nodeName')), dart.const(new _metadata.DocsEditable())], 'nodeType', [dart.const(new _metadata.DomName('Node.nodeType')), dart.const(new _metadata.DocsEditable())], 'nodeValue', [dart.const(new _metadata.DomName('Node.nodeValue')), dart.const(new _metadata.DocsEditable())], 'ownerDocument', [dart.const(new _metadata.DomName('Node.ownerDocument')), dart.const(new _metadata.DocsEditable())], 'parent', [dart.const(new _js_helper.JSName('parentElement')), dart.const(new _metadata.DomName('Node.parentElement')), dart.const(new _metadata.DocsEditable())], 'parentNode', [dart.const(new _metadata.DomName('Node.parentNode')), dart.const(new _metadata.DocsEditable())], 'previousNode', [dart.const(new _js_helper.JSName('previousSibling')), dart.const(new _metadata.DomName('Node.previousSibling')), dart.const(new _metadata.DocsEditable())], 'text', [dart.const(new _js_helper.JSName('textContent')), dart.const(new _metadata.DomName('Node.textContent')), dart.const(new _metadata.DocsEditable())]])]);
   Node[dart.owner] = exports;
   Node.ATTRIBUTE_NODE = 2;
   Node.CDATA_SECTION_NODE = 4;
@@ -1615,7 +1615,7 @@
     }),
     names: ['isTagSupported', '_determineMouseWheelEventType', '_determineTransitionEventType', '_offsetToHelper', '_hasCorruptedAttributes', '_hasCorruptedAttributesAdditionalCheck', '_safeTagName']
   });
-  Element[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Element')), dart.const(new _js_helper.Native("Element"))];
+  Element[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Element')), dart.const(new _js_helper.Native("Element"))], 'fields', dart.map(['_xtag', [dart.const(new _js_helper.Creates('Null'))], 'contentEditable', [dart.const(new _metadata.DomName('Element.contentEditable')), dart.const(new _metadata.DocsEditable())], 'contextMenu', [dart.const(new _metadata.DomName('Element.contextMenu')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'dir', [dart.const(new _metadata.DomName('Element.dir')), dart.const(new _metadata.DocsEditable())], 'draggable', [dart.const(new _metadata.DomName('Element.draggable')), dart.const(new _metadata.DocsEditable())], 'hidden', [dart.const(new _metadata.DomName('Element.hidden')), dart.const(new _metadata.DocsEditable())], 'isContentEditable', [dart.const(new _metadata.DomName('Element.isContentEditable')), dart.const(new _metadata.DocsEditable())], 'lang', [dart.const(new _metadata.DomName('Element.lang')), dart.const(new _metadata.DocsEditable())], 'spellcheck', [dart.const(new _metadata.DomName('Element.spellcheck')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'tabIndex', [dart.const(new _metadata.DomName('Element.tabIndex')), dart.const(new _metadata.DocsEditable())], 'title', [dart.const(new _metadata.DomName('Element.title')), dart.const(new _metadata.DocsEditable())], 'translate', [dart.const(new _metadata.DomName('Element.translate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'dropzone', [dart.const(new _js_helper.JSName('webkitdropzone')), dart.const(new _metadata.DomName('Element.webkitdropzone')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_attributes', [dart.const(new _js_helper.JSName('attributes')), dart.const(new _metadata.DomName('Element.attributes')), dart.const(new _metadata.DocsEditable())], 'className', [dart.const(new _metadata.DomName('Element.className')), dart.const(new _metadata.DocsEditable())], '_clientHeight', [dart.const(new _js_helper.JSName('clientHeight')), dart.const(new _metadata.DomName('Element.clientHeight')), dart.const(new _metadata.DocsEditable())], '_clientLeft', [dart.const(new _js_helper.JSName('clientLeft')), dart.const(new _metadata.DomName('Element.clientLeft')), dart.const(new _metadata.DocsEditable())], '_clientTop', [dart.const(new _js_helper.JSName('clientTop')), dart.const(new _metadata.DomName('Element.clientTop')), dart.const(new _metadata.DocsEditable())], '_clientWidth', [dart.const(new _js_helper.JSName('clientWidth')), dart.const(new _metadata.DomName('Element.clientWidth')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('Element.id')), dart.const(new _metadata.DocsEditable())], '_innerHtml', [dart.const(new _js_helper.JSName('innerHTML')), dart.const(new _metadata.DomName('Element.innerHTML')), dart.const(new _metadata.DocsEditable())], '_offsetHeight', [dart.const(new _js_helper.JSName('offsetHeight')), dart.const(new _metadata.DomName('Element.offsetHeight')), dart.const(new _metadata.DocsEditable())], '_offsetLeft', [dart.const(new _js_helper.JSName('offsetLeft')), dart.const(new _metadata.DomName('Element.offsetLeft')), dart.const(new _metadata.DocsEditable())], 'offsetParent', [dart.const(new _metadata.DomName('Element.offsetParent')), dart.const(new _metadata.DocsEditable())], '_offsetTop', [dart.const(new _js_helper.JSName('offsetTop')), dart.const(new _metadata.DomName('Element.offsetTop')), dart.const(new _metadata.DocsEditable())], '_offsetWidth', [dart.const(new _js_helper.JSName('offsetWidth')), dart.const(new _metadata.DomName('Element.offsetWidth')), dart.const(new _metadata.DocsEditable())], 'outerHtml', [dart.const(new _js_helper.JSName('outerHTML')), dart.const(new _metadata.DomName('Element.outerHTML')), dart.const(new _metadata.DocsEditable())], '_scrollHeight', [dart.const(new _js_helper.JSName('scrollHeight')), dart.const(new _metadata.DomName('Element.scrollHeight')), dart.const(new _metadata.DocsEditable())], '_scrollLeft', [dart.const(new _js_helper.JSName('scrollLeft')), dart.const(new _metadata.DomName('Element.scrollLeft')), dart.const(new _metadata.DocsEditable())], '_scrollTop', [dart.const(new _js_helper.JSName('scrollTop')), dart.const(new _metadata.DomName('Element.scrollTop')), dart.const(new _metadata.DocsEditable())], '_scrollWidth', [dart.const(new _js_helper.JSName('scrollWidth')), dart.const(new _metadata.DomName('Element.scrollWidth')), dart.const(new _metadata.DocsEditable())], 'style', [dart.const(new _metadata.DomName('Element.style')), dart.const(new _metadata.DocsEditable())], 'tagName', [dart.const(new _metadata.DomName('Element.tagName')), dart.const(new _metadata.DocsEditable())], 'nextElementSibling', [dart.const(new _metadata.DomName('Element.nextElementSibling')), dart.const(new _metadata.DocsEditable())], 'previousElementSibling', [dart.const(new _metadata.DomName('Element.previousElementSibling')), dart.const(new _metadata.DocsEditable())], '_childElementCount', [dart.const(new _js_helper.JSName('childElementCount')), dart.const(new _metadata.DomName('Element.childElementCount')), dart.const(new _metadata.DocsEditable())], '_children', [dart.const(new _js_helper.JSName('children')), dart.const(new _metadata.DomName('Element.children')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], '_firstElementChild', [dart.const(new _js_helper.JSName('firstElementChild')), dart.const(new _metadata.DomName('Element.firstElementChild')), dart.const(new _metadata.DocsEditable())], '_lastElementChild', [dart.const(new _js_helper.JSName('lastElementChild')), dart.const(new _metadata.DomName('Element.lastElementChild')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['localName', [dart.const(new _metadata.DomName('Element.localName')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('String'))], 'namespaceUri', [dart.const(new _metadata.DomName('Element.namespaceUri'))], 'shadowRoot', [dart.const(new _metadata.DomName('Element.shadowRoot')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())], 'contentEdge', [dart.const(new _metadata.Experimental())], 'paddingEdge', [dart.const(new _metadata.Experimental())], 'borderEdge', [dart.const(new _metadata.Experimental())], 'marginEdge', [dart.const(new _metadata.Experimental())], 'documentOffset', [dart.const(new _metadata.Experimental())], 'offsetHeight', [dart.const(new _metadata.DomName('Element.offsetHeight')), dart.const(new _metadata.DocsEditable())], 'offsetLeft', [dart.const(new _metadata.DomName('Element.offsetLeft')), dart.const(new _metadata.DocsEditable())], 'offsetTop', [dart.const(new _metadata.DomName('Element.offsetTop')), dart.const(new _metadata.DocsEditable())], 'offsetWidth', [dart.const(new _metadata.DomName('Element.offsetWidth')), dart.const(new _metadata.DocsEditable())], 'clientHeight', [dart.const(new _metadata.DomName('Element.clientHeight')), dart.const(new _metadata.DocsEditable())], 'clientLeft', [dart.const(new _metadata.DomName('Element.clientLeft')), dart.const(new _metadata.DocsEditable())], 'clientTop', [dart.const(new _metadata.DomName('Element.clientTop')), dart.const(new _metadata.DocsEditable())], 'clientWidth', [dart.const(new _metadata.DomName('Element.clientWidth')), dart.const(new _metadata.DocsEditable())], 'scrollHeight', [dart.const(new _metadata.DomName('Element.scrollHeight')), dart.const(new _metadata.DocsEditable())], 'scrollLeft', [dart.const(new _metadata.DomName('Element.scrollLeft')), dart.const(new _metadata.DocsEditable())], 'scrollLeft=', [dart.const(new _metadata.DomName('Element.scrollLeft')), dart.const(new _metadata.DocsEditable())], 'scrollTop', [dart.const(new _metadata.DomName('Element.scrollTop')), dart.const(new _metadata.DocsEditable())], 'scrollTop=', [dart.const(new _metadata.DomName('Element.scrollTop')), dart.const(new _metadata.DocsEditable())], 'scrollWidth', [dart.const(new _metadata.DomName('Element.scrollWidth')), dart.const(new _metadata.DocsEditable())], 'onAbort', [dart.const(new _metadata.DomName('Element.onabort')), dart.const(new _metadata.DocsEditable())], 'onBeforeCopy', [dart.const(new _metadata.DomName('Element.onbeforecopy')), dart.const(new _metadata.DocsEditable())], 'onBeforeCut', [dart.const(new _metadata.DomName('Element.onbeforecut')), dart.const(new _metadata.DocsEditable())], 'onBeforePaste', [dart.const(new _metadata.DomName('Element.onbeforepaste')), dart.const(new _metadata.DocsEditable())], 'onBlur', [dart.const(new _metadata.DomName('Element.onblur')), dart.const(new _metadata.DocsEditable())], 'onCanPlay', [dart.const(new _metadata.DomName('Element.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('Element.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('Element.onchange')), dart.const(new _metadata.DocsEditable())], 'onClick', [dart.const(new _metadata.DomName('Element.onclick')), dart.const(new _metadata.DocsEditable())], 'onContextMenu', [dart.const(new _metadata.DomName('Element.oncontextmenu')), dart.const(new _metadata.DocsEditable())], 'onCopy', [dart.const(new _metadata.DomName('Element.oncopy')), dart.const(new _metadata.DocsEditable())], 'onCut', [dart.const(new _metadata.DomName('Element.oncut')), dart.const(new _metadata.DocsEditable())], 'onDoubleClick', [dart.const(new _metadata.DomName('Element.ondblclick')), dart.const(new _metadata.DocsEditable())], 'onDrag', [dart.const(new _metadata.DomName('Element.ondrag')), dart.const(new _metadata.DocsEditable())], 'onDragEnd', [dart.const(new _metadata.DomName('Element.ondragend')), dart.const(new _metadata.DocsEditable())], 'onDragEnter', [dart.const(new _metadata.DomName('Element.ondragenter')), dart.const(new _metadata.DocsEditable())], 'onDragLeave', [dart.const(new _metadata.DomName('Element.ondragleave')), dart.const(new _metadata.DocsEditable())], 'onDragOver', [dart.const(new _metadata.DomName('Element.ondragover')), dart.const(new _metadata.DocsEditable())], 'onDragStart', [dart.const(new _metadata.DomName('Element.ondragstart')), dart.const(new _metadata.DocsEditable())], 'onDrop', [dart.const(new _metadata.DomName('Element.ondrop')), dart.const(new _metadata.DocsEditable())], 'onDurationChange', [dart.const(new _metadata.DomName('Element.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('Element.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('Element.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('Element.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('Element.onfocus')), dart.const(new _metadata.DocsEditable())], 'onInput', [dart.const(new _metadata.DomName('Element.oninput')), dart.const(new _metadata.DocsEditable())], 'onInvalid', [dart.const(new _metadata.DomName('Element.oninvalid')), dart.const(new _metadata.DocsEditable())], 'onKeyDown', [dart.const(new _metadata.DomName('Element.onkeydown')), dart.const(new _metadata.DocsEditable())], 'onKeyPress', [dart.const(new _metadata.DomName('Element.onkeypress')), dart.const(new _metadata.DocsEditable())], 'onKeyUp', [dart.const(new _metadata.DomName('Element.onkeyup')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('Element.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadedData', [dart.const(new _metadata.DomName('Element.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('Element.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('Element.onmousedown')), dart.const(new _metadata.DocsEditable())], 'onMouseEnter', [dart.const(new _metadata.DomName('Element.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('Element.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('Element.onmousemove')), dart.const(new _metadata.DocsEditable())], 'onMouseOut', [dart.const(new _metadata.DomName('Element.onmouseout')), dart.const(new _metadata.DocsEditable())], 'onMouseOver', [dart.const(new _metadata.DomName('Element.onmouseover')), dart.const(new _metadata.DocsEditable())], 'onMouseUp', [dart.const(new _metadata.DomName('Element.onmouseup')), dart.const(new _metadata.DocsEditable())], 'onMouseWheel', [dart.const(new _metadata.DomName('Element.onmousewheel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPaste', [dart.const(new _metadata.DomName('Element.onpaste')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('Element.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('Element.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('Element.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('Element.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReset', [dart.const(new _metadata.DomName('Element.onreset')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('Element.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('Element.onscroll')), dart.const(new _metadata.DocsEditable())], 'onSearch', [dart.const(new _metadata.DomName('Element.onsearch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('Element.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('Element.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('Element.onselect')), dart.const(new _metadata.DocsEditable())], 'onSelectStart', [dart.const(new _metadata.DomName('Element.onselectstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStalled', [dart.const(new _metadata.DomName('Element.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('Element.onsubmit')), dart.const(new _metadata.DocsEditable())], 'onSuspend', [dart.const(new _metadata.DomName('Element.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('Element.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchCancel', [dart.const(new _metadata.DomName('Element.ontouchcancel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnd', [dart.const(new _metadata.DomName('Element.ontouchend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnter', [dart.const(new _metadata.DomName('Element.ontouchenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchLeave', [dart.const(new _metadata.DomName('Element.ontouchleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchMove', [dart.const(new _metadata.DomName('Element.ontouchmove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchStart', [dart.const(new _metadata.DomName('Element.ontouchstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTransitionEnd', [dart.const(new _metadata.DomName('Element.ontransitionend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'onVolumeChange', [dart.const(new _metadata.DomName('Element.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('Element.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenChange', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenError', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Element[dart.owner] = exports;
   Element._parseDocument = null;
   Element._parseRange = null;
@@ -1847,12 +1847,12 @@
       created: [HtmlElement, []]
     })
   });
-  HtmlElement[dart.metadata] = () => [dart.const(new _js_helper.Native("HTMLElement"))];
+  HtmlElement[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("HTMLElement"))]]);
   HtmlElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLElement, HtmlElement);
   class _EntryArray extends core.Object {}
   _EntryArray[dart.implements] = () => [core.List$(Entry)];
-  _EntryArray[dart.metadata] = () => [dart.const(new _js_helper.Native("EntryArray"))];
+  _EntryArray[dart.metadata] = () => dart.map(['type', [dart.const(new _js_helper.Native("EntryArray"))]]);
   _EntryArray[dart.owner] = exports;
   dart.registerExtension(dart.global.EntryArray, _EntryArray);
   function spawnDomUri(uri, args, message) {
@@ -1887,7 +1887,7 @@
     constructors: () => ({_: [AbstractWorker, []]})
   });
   dart.defineExtensionMembers(AbstractWorker, ['onError']);
-  AbstractWorker[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AbstractWorker'))];
+  AbstractWorker[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AbstractWorker'))], 'properties', dart.map(['onError', [dart.const(new _metadata.DomName('AbstractWorker.onerror')), dart.const(new _metadata.DocsEditable())]])]);
   AbstractWorker[dart.owner] = exports;
   dart.defineLazyProperties(AbstractWorker, {
     get errorEvent() {
@@ -2056,7 +2056,7 @@
       created: [AnchorElement, []]
     })
   });
-  AnchorElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAnchorElement')), dart.const(new _js_helper.Native("HTMLAnchorElement"))];
+  AnchorElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAnchorElement')), dart.const(new _js_helper.Native("HTMLAnchorElement"))], 'fields', dart.map(['download', [dart.const(new _metadata.DomName('HTMLAnchorElement.download')), dart.const(new _metadata.DocsEditable())], 'hreflang', [dart.const(new _metadata.DomName('HTMLAnchorElement.hreflang')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLAnchorElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'rel', [dart.const(new _metadata.DomName('HTMLAnchorElement.rel')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('HTMLAnchorElement.target')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLAnchorElement.type')), dart.const(new _metadata.DocsEditable())], 'hash', [dart.const(new _metadata.DomName('HTMLAnchorElement.hash')), dart.const(new _metadata.DocsEditable())], 'host', [dart.const(new _metadata.DomName('HTMLAnchorElement.host')), dart.const(new _metadata.DocsEditable())], 'hostname', [dart.const(new _metadata.DomName('HTMLAnchorElement.hostname')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('HTMLAnchorElement.href')), dart.const(new _metadata.DocsEditable())], 'origin', [dart.const(new _metadata.DomName('HTMLAnchorElement.origin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'password', [dart.const(new _metadata.DomName('HTMLAnchorElement.password')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'pathname', [dart.const(new _metadata.DomName('HTMLAnchorElement.pathname')), dart.const(new _metadata.DocsEditable())], 'port', [dart.const(new _metadata.DomName('HTMLAnchorElement.port')), dart.const(new _metadata.DocsEditable())], 'protocol', [dart.const(new _metadata.DomName('HTMLAnchorElement.protocol')), dart.const(new _metadata.DocsEditable())], 'search', [dart.const(new _metadata.DomName('HTMLAnchorElement.search')), dart.const(new _metadata.DocsEditable())], 'username', [dart.const(new _metadata.DomName('HTMLAnchorElement.username')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AnchorElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLAnchorElement, AnchorElement);
   dart.defineExtensionNames([
@@ -2101,7 +2101,7 @@
   dart.setSignature(AnimationNode, {
     constructors: () => ({_: [AnimationNode, []]})
   });
-  AnimationNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationNode"))];
+  AnimationNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationNode"))], 'fields', dart.map(['activeDuration', [dart.const(new _metadata.DomName('AnimationNode.activeDuration')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'currentIteration', [dart.const(new _metadata.DomName('AnimationNode.currentIteration')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'duration', [dart.const(new _metadata.DomName('AnimationNode.duration')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'endTime', [dart.const(new _metadata.DomName('AnimationNode.endTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'localTime', [dart.const(new _metadata.DomName('AnimationNode.localTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'player', [dart.const(new _metadata.DomName('AnimationNode.player')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'startTime', [dart.const(new _metadata.DomName('AnimationNode.startTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'timing', [dart.const(new _metadata.DomName('AnimationNode.timing')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AnimationNode[dart.owner] = exports;
   dart.registerExtension(dart.global.AnimationNode, AnimationNode);
   class Animation extends AnimationNode {
@@ -2144,7 +2144,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  Animation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Animation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Animation"))];
+  Animation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Animation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Animation"))]]);
   Animation[dart.owner] = exports;
   dart.registerExtension(dart.global.Animation, Animation);
   class AnimationEffect extends _interceptors.Interceptor {
@@ -2155,7 +2155,7 @@
   dart.setSignature(AnimationEffect, {
     constructors: () => ({_: [AnimationEffect, []]})
   });
-  AnimationEffect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationEffect')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationEffect"))];
+  AnimationEffect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationEffect')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationEffect"))]]);
   AnimationEffect[dart.owner] = exports;
   dart.registerExtension(dart.global.AnimationEffect, AnimationEffect);
   const _createEvent = Symbol('_createEvent');
@@ -2276,7 +2276,7 @@
       [dartx.stopPropagation]: [dart.void, []]
     })
   });
-  Event[dart.metadata] = () => [dart.const(new _metadata.DomName('Event')), dart.const(new _js_helper.Native("Event,InputEvent,ClipboardEvent"))];
+  Event[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Event')), dart.const(new _js_helper.Native("Event,InputEvent,ClipboardEvent"))], 'fields', dart.map(['bubbles', [dart.const(new _metadata.DomName('Event.bubbles')), dart.const(new _metadata.DocsEditable())], 'cancelable', [dart.const(new _metadata.DomName('Event.cancelable')), dart.const(new _metadata.DocsEditable())], 'clipboardData', [dart.const(new _metadata.DomName('Event.clipboardData')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Experimental())], '_get_currentTarget', [dart.const(new _js_helper.JSName('currentTarget')), dart.const(new _metadata.DomName('Event.currentTarget')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null')), dart.const(new _js_helper.Returns('EventTarget|=Object|Null'))], 'defaultPrevented', [dart.const(new _metadata.DomName('Event.defaultPrevented')), dart.const(new _metadata.DocsEditable())], 'eventPhase', [dart.const(new _metadata.DomName('Event.eventPhase')), dart.const(new _metadata.DocsEditable())], 'path', [dart.const(new _metadata.DomName('Event.path')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], '_get_target', [dart.const(new _js_helper.JSName('target')), dart.const(new _metadata.DomName('Event.target')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Node')), dart.const(new _js_helper.Returns('EventTarget|=Object|Null'))], 'timeStamp', [dart.const(new _metadata.DomName('Event.timeStamp')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('Event.type')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['currentTarget', [dart.const(new _metadata.DomName('Event.currentTarget')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('Event.target')), dart.const(new _metadata.DocsEditable())]])]);
   Event[dart.owner] = exports;
   Event.AT_TARGET = 2;
   Event.BUBBLING_PHASE = 3;
@@ -2300,7 +2300,7 @@
   dart.setSignature(AnimationEvent, {
     constructors: () => ({_: [AnimationEvent, []]})
   });
-  AnimationEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitAnimationEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebKitAnimationEvent"))];
+  AnimationEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitAnimationEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebKitAnimationEvent"))], 'fields', dart.map(['animationName', [dart.const(new _metadata.DomName('WebKitAnimationEvent.animationName')), dart.const(new _metadata.DocsEditable())], 'elapsedTime', [dart.const(new _metadata.DomName('WebKitAnimationEvent.elapsedTime')), dart.const(new _metadata.DocsEditable())]])]);
   AnimationEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.WebKitAnimationEvent, AnimationEvent);
   dart.defineExtensionNames([
@@ -2375,7 +2375,7 @@
       [dartx.reverse]: [dart.void, []]
     })
   });
-  AnimationPlayer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationPlayer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationPlayer"))];
+  AnimationPlayer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationPlayer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationPlayer"))], 'fields', dart.map(['currentTime', [dart.const(new _metadata.DomName('AnimationPlayer.currentTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'playState', [dart.const(new _metadata.DomName('AnimationPlayer.playState')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'playbackRate', [dart.const(new _metadata.DomName('AnimationPlayer.playbackRate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'source', [dart.const(new _metadata.DomName('AnimationPlayer.source')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'startTime', [dart.const(new _metadata.DomName('AnimationPlayer.startTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AnimationPlayer[dart.owner] = exports;
   dart.registerExtension(dart.global.AnimationPlayer, AnimationPlayer);
   dart.defineExtensionNames([
@@ -2396,7 +2396,7 @@
   dart.setSignature(AnimationPlayerEvent, {
     constructors: () => ({_: [AnimationPlayerEvent, []]})
   });
-  AnimationPlayerEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationPlayerEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationPlayerEvent"))];
+  AnimationPlayerEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationPlayerEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationPlayerEvent"))], 'fields', dart.map(['currentTime', [dart.const(new _metadata.DomName('AnimationPlayerEvent.currentTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'timelineTime', [dart.const(new _metadata.DomName('AnimationPlayerEvent.timelineTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AnimationPlayerEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.AnimationPlayerEvent, AnimationPlayerEvent);
   dart.defineExtensionNames([
@@ -2425,7 +2425,7 @@
       [dartx.play]: [AnimationPlayer, [AnimationNode]]
     })
   });
-  AnimationTimeline[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationTimeline')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationTimeline"))];
+  AnimationTimeline[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnimationTimeline')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnimationTimeline"))], 'fields', dart.map(['currentTime', [dart.const(new _metadata.DomName('AnimationTimeline.currentTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AnimationTimeline[dart.owner] = exports;
   dart.registerExtension(dart.global.AnimationTimeline, AnimationTimeline);
   dart.defineExtensionNames([
@@ -2494,7 +2494,7 @@
       [dartx.update]: [dart.void, []]
     })
   });
-  ApplicationCache[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ApplicationCache')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.OPERA)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ApplicationCache,DOMApplicationCache,OfflineResourceList"))];
+  ApplicationCache[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ApplicationCache')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.OPERA)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ApplicationCache,DOMApplicationCache,OfflineResourceList"))], 'fields', dart.map(['status', [dart.const(new _metadata.DomName('ApplicationCache.status')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onCached', [dart.const(new _metadata.DomName('ApplicationCache.oncached')), dart.const(new _metadata.DocsEditable())], 'onChecking', [dart.const(new _metadata.DomName('ApplicationCache.onchecking')), dart.const(new _metadata.DocsEditable())], 'onDownloading', [dart.const(new _metadata.DomName('ApplicationCache.ondownloading')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('ApplicationCache.onerror')), dart.const(new _metadata.DocsEditable())], 'onNoUpdate', [dart.const(new _metadata.DomName('ApplicationCache.onnoupdate')), dart.const(new _metadata.DocsEditable())], 'onObsolete', [dart.const(new _metadata.DomName('ApplicationCache.onobsolete')), dart.const(new _metadata.DocsEditable())], 'onProgress', [dart.const(new _metadata.DomName('ApplicationCache.onprogress')), dart.const(new _metadata.DocsEditable())], 'onUpdateReady', [dart.const(new _metadata.DomName('ApplicationCache.onupdateready')), dart.const(new _metadata.DocsEditable())]])]);
   ApplicationCache[dart.owner] = exports;
   ApplicationCache.CHECKING = 2;
   ApplicationCache.DOWNLOADING = 3;
@@ -2555,7 +2555,7 @@
   dart.setSignature(ApplicationCacheErrorEvent, {
     constructors: () => ({_: [ApplicationCacheErrorEvent, []]})
   });
-  ApplicationCacheErrorEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ApplicationCacheErrorEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ApplicationCacheErrorEvent"))];
+  ApplicationCacheErrorEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ApplicationCacheErrorEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ApplicationCacheErrorEvent"))], 'fields', dart.map(['message', [dart.const(new _metadata.DomName('ApplicationCacheErrorEvent.message')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'reason', [dart.const(new _metadata.DomName('ApplicationCacheErrorEvent.reason')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'status', [dart.const(new _metadata.DomName('ApplicationCacheErrorEvent.status')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'url', [dart.const(new _metadata.DomName('ApplicationCacheErrorEvent.url')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ApplicationCacheErrorEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.ApplicationCacheErrorEvent, ApplicationCacheErrorEvent);
   dart.defineExtensionNames([
@@ -2701,7 +2701,7 @@
       created: [AreaElement, []]
     })
   });
-  AreaElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAreaElement')), dart.const(new _js_helper.Native("HTMLAreaElement"))];
+  AreaElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAreaElement')), dart.const(new _js_helper.Native("HTMLAreaElement"))], 'fields', dart.map(['alt', [dart.const(new _metadata.DomName('HTMLAreaElement.alt')), dart.const(new _metadata.DocsEditable())], 'coords', [dart.const(new _metadata.DomName('HTMLAreaElement.coords')), dart.const(new _metadata.DocsEditable())], 'shape', [dart.const(new _metadata.DomName('HTMLAreaElement.shape')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('HTMLAreaElement.target')), dart.const(new _metadata.DocsEditable())], 'hash', [dart.const(new _metadata.DomName('HTMLAreaElement.hash')), dart.const(new _metadata.DocsEditable())], 'host', [dart.const(new _metadata.DomName('HTMLAreaElement.host')), dart.const(new _metadata.DocsEditable())], 'hostname', [dart.const(new _metadata.DomName('HTMLAreaElement.hostname')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('HTMLAreaElement.href')), dart.const(new _metadata.DocsEditable())], 'origin', [dart.const(new _metadata.DomName('HTMLAreaElement.origin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'password', [dart.const(new _metadata.DomName('HTMLAreaElement.password')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'pathname', [dart.const(new _metadata.DomName('HTMLAreaElement.pathname')), dart.const(new _metadata.DocsEditable())], 'port', [dart.const(new _metadata.DomName('HTMLAreaElement.port')), dart.const(new _metadata.DocsEditable())], 'protocol', [dart.const(new _metadata.DomName('HTMLAreaElement.protocol')), dart.const(new _metadata.DocsEditable())], 'search', [dart.const(new _metadata.DomName('HTMLAreaElement.search')), dart.const(new _metadata.DocsEditable())], 'username', [dart.const(new _metadata.DomName('HTMLAreaElement.username')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AreaElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLAreaElement, AreaElement);
   dart.defineExtensionNames([
@@ -2989,7 +2989,7 @@
       [dartx.generateKeyRequest]: [dart.void, [core.String], [typed_data.Uint8List]]
     })
   });
-  MediaElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMediaElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLMediaElement"))];
+  MediaElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMediaElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLMediaElement"))], 'fields', dart.map(['audioTracks', [dart.const(new _metadata.DomName('HTMLMediaElement.audioTracks')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'autoplay', [dart.const(new _metadata.DomName('HTMLMediaElement.autoplay')), dart.const(new _metadata.DocsEditable())], 'buffered', [dart.const(new _metadata.DomName('HTMLMediaElement.buffered')), dart.const(new _metadata.DocsEditable())], 'controller', [dart.const(new _metadata.DomName('HTMLMediaElement.controller')), dart.const(new _metadata.DocsEditable())], 'controls', [dart.const(new _metadata.DomName('HTMLMediaElement.controls')), dart.const(new _metadata.DocsEditable())], 'crossOrigin', [dart.const(new _metadata.DomName('HTMLMediaElement.crossOrigin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'currentSrc', [dart.const(new _metadata.DomName('HTMLMediaElement.currentSrc')), dart.const(new _metadata.DocsEditable())], 'currentTime', [dart.const(new _metadata.DomName('HTMLMediaElement.currentTime')), dart.const(new _metadata.DocsEditable())], 'defaultMuted', [dart.const(new _metadata.DomName('HTMLMediaElement.defaultMuted')), dart.const(new _metadata.DocsEditable())], 'defaultPlaybackRate', [dart.const(new _metadata.DomName('HTMLMediaElement.defaultPlaybackRate')), dart.const(new _metadata.DocsEditable())], 'duration', [dart.const(new _metadata.DomName('HTMLMediaElement.duration')), dart.const(new _metadata.DocsEditable())], 'ended', [dart.const(new _metadata.DomName('HTMLMediaElement.ended')), dart.const(new _metadata.DocsEditable())], 'error', [dart.const(new _metadata.DomName('HTMLMediaElement.error')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLMediaElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'loop', [dart.const(new _metadata.DomName('HTMLMediaElement.loop')), dart.const(new _metadata.DocsEditable())], 'mediaGroup', [dart.const(new _metadata.DomName('HTMLMediaElement.mediaGroup')), dart.const(new _metadata.DocsEditable())], 'mediaKeys', [dart.const(new _metadata.DomName('HTMLMediaElement.mediaKeys')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'muted', [dart.const(new _metadata.DomName('HTMLMediaElement.muted')), dart.const(new _metadata.DocsEditable())], 'networkState', [dart.const(new _metadata.DomName('HTMLMediaElement.networkState')), dart.const(new _metadata.DocsEditable())], 'paused', [dart.const(new _metadata.DomName('HTMLMediaElement.paused')), dart.const(new _metadata.DocsEditable())], 'playbackRate', [dart.const(new _metadata.DomName('HTMLMediaElement.playbackRate')), dart.const(new _metadata.DocsEditable())], 'played', [dart.const(new _metadata.DomName('HTMLMediaElement.played')), dart.const(new _metadata.DocsEditable())], 'preload', [dart.const(new _metadata.DomName('HTMLMediaElement.preload')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('HTMLMediaElement.readyState')), dart.const(new _metadata.DocsEditable())], 'seekable', [dart.const(new _metadata.DomName('HTMLMediaElement.seekable')), dart.const(new _metadata.DocsEditable())], 'seeking', [dart.const(new _metadata.DomName('HTMLMediaElement.seeking')), dart.const(new _metadata.DocsEditable())], 'src', [dart.const(new _metadata.DomName('HTMLMediaElement.src')), dart.const(new _metadata.DocsEditable())], 'textTracks', [dart.const(new _metadata.DomName('HTMLMediaElement.textTracks')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'videoTracks', [dart.const(new _metadata.DomName('HTMLMediaElement.videoTracks')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'volume', [dart.const(new _metadata.DomName('HTMLMediaElement.volume')), dart.const(new _metadata.DocsEditable())], 'audioDecodedByteCount', [dart.const(new _js_helper.JSName('webkitAudioDecodedByteCount')), dart.const(new _metadata.DomName('HTMLMediaElement.webkitAudioDecodedByteCount')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Experimental())], 'videoDecodedByteCount', [dart.const(new _js_helper.JSName('webkitVideoDecodedByteCount')), dart.const(new _metadata.DomName('HTMLMediaElement.webkitVideoDecodedByteCount')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onKeyAdded', [dart.const(new _metadata.DomName('HTMLMediaElement.onwebkitkeyadded')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyError', [dart.const(new _metadata.DomName('HTMLMediaElement.onwebkitkeyerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyMessage', [dart.const(new _metadata.DomName('HTMLMediaElement.onwebkitkeymessage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onNeedKey', [dart.const(new _metadata.DomName('HTMLMediaElement.onwebkitneedkey')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaElement[dart.owner] = exports;
   MediaElement.HAVE_CURRENT_DATA = 2;
   MediaElement.HAVE_ENOUGH_DATA = 4;
@@ -3050,7 +3050,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  AudioElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAudioElement')), dart.const(new _js_helper.Native("HTMLAudioElement"))];
+  AudioElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAudioElement')), dart.const(new _js_helper.Native("HTMLAudioElement"))]]);
   AudioElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLAudioElement, AudioElement);
   dart.defineExtensionNames([
@@ -3086,7 +3086,7 @@
   dart.setSignature(AudioTrack, {
     constructors: () => ({_: [AudioTrack, []]})
   });
-  AudioTrack[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioTrack"))];
+  AudioTrack[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioTrack"))], 'fields', dart.map(['enabled', [dart.const(new _metadata.DomName('AudioTrack.enabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'id', [dart.const(new _metadata.DomName('AudioTrack.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('AudioTrack.kind')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('AudioTrack.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'language', [dart.const(new _metadata.DomName('AudioTrack.language')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AudioTrack[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioTrack, AudioTrack);
   const __getter__ = Symbol('__getter__');
@@ -3119,7 +3119,7 @@
       [dartx.getTrackById]: [AudioTrack, [core.String]]
     })
   });
-  AudioTrackList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioTrackList"))];
+  AudioTrackList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioTrackList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('AudioTrackList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onChange', [dart.const(new _metadata.DomName('AudioTrackList.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AudioTrackList[dart.owner] = exports;
   dart.defineLazyProperties(AudioTrackList, {
     get changeEvent() {
@@ -3141,7 +3141,7 @@
   dart.setSignature(AutocompleteErrorEvent, {
     constructors: () => ({_: [AutocompleteErrorEvent, []]})
   });
-  AutocompleteErrorEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AutocompleteErrorEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AutocompleteErrorEvent"))];
+  AutocompleteErrorEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AutocompleteErrorEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AutocompleteErrorEvent"))], 'fields', dart.map(['reason', [dart.const(new _metadata.DomName('AutocompleteErrorEvent.reason')), dart.const(new _metadata.DocsEditable())]])]);
   AutocompleteErrorEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.AutocompleteErrorEvent, AutocompleteErrorEvent);
   class BRElement extends HtmlElement {
@@ -3163,7 +3163,7 @@
       created: [BRElement, []]
     })
   });
-  BRElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBRElement')), dart.const(new _js_helper.Native("HTMLBRElement"))];
+  BRElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBRElement')), dart.const(new _js_helper.Native("HTMLBRElement"))]]);
   BRElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLBRElement, BRElement);
   dart.defineExtensionNames([
@@ -3180,7 +3180,7 @@
   dart.setSignature(BarProp, {
     constructors: () => ({_: [BarProp, []]})
   });
-  BarProp[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BarProp')), core.deprecated, dart.const(new _js_helper.Native("BarProp"))];
+  BarProp[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BarProp')), core.deprecated, dart.const(new _js_helper.Native("BarProp"))], 'fields', dart.map(['visible', [dart.const(new _metadata.DomName('BarProp.visible')), dart.const(new _metadata.DocsEditable())]])]);
   BarProp[dart.owner] = exports;
   dart.registerExtension(dart.global.BarProp, BarProp);
   dart.defineExtensionNames([
@@ -3220,7 +3220,7 @@
       created: [BaseElement, []]
     })
   });
-  BaseElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBaseElement')), dart.const(new _js_helper.Native("HTMLBaseElement"))];
+  BaseElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBaseElement')), dart.const(new _js_helper.Native("HTMLBaseElement"))], 'fields', dart.map(['href', [dart.const(new _metadata.DomName('HTMLBaseElement.href')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('HTMLBaseElement.target')), dart.const(new _metadata.DocsEditable())]])]);
   BaseElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLBaseElement, BaseElement);
   dart.defineExtensionNames([
@@ -3249,7 +3249,7 @@
   dart.setSignature(BatteryManager, {
     constructors: () => ({_: [BatteryManager, []]})
   });
-  BatteryManager[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BatteryManager')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("BatteryManager"))];
+  BatteryManager[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BatteryManager')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("BatteryManager"))], 'fields', dart.map(['charging', [dart.const(new _metadata.DomName('BatteryManager.charging')), dart.const(new _metadata.DocsEditable())], 'chargingTime', [dart.const(new _metadata.DomName('BatteryManager.chargingTime')), dart.const(new _metadata.DocsEditable())], 'dischargingTime', [dart.const(new _metadata.DomName('BatteryManager.dischargingTime')), dart.const(new _metadata.DocsEditable())], 'level', [dart.const(new _metadata.DomName('BatteryManager.level')), dart.const(new _metadata.DocsEditable())]])]);
   BatteryManager[dart.owner] = exports;
   dart.registerExtension(dart.global.BatteryManager, BatteryManager);
   dart.defineExtensionNames([
@@ -3270,7 +3270,7 @@
   dart.setSignature(BeforeUnloadEvent, {
     constructors: () => ({_: [BeforeUnloadEvent, []]})
   });
-  BeforeUnloadEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BeforeUnloadEvent')), dart.const(new _js_helper.Native("BeforeUnloadEvent"))];
+  BeforeUnloadEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BeforeUnloadEvent')), dart.const(new _js_helper.Native("BeforeUnloadEvent"))]]);
   BeforeUnloadEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.BeforeUnloadEvent, BeforeUnloadEvent);
   dart.defineExtensionNames([
@@ -3336,7 +3336,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_bag', '_bag_set']
   });
-  Blob[dart.metadata] = () => [dart.const(new _metadata.DomName('Blob')), dart.const(new _js_helper.Native("Blob"))];
+  Blob[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Blob')), dart.const(new _js_helper.Native("Blob"))], 'fields', dart.map(['size', [dart.const(new _metadata.DomName('Blob.size')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('Blob.type')), dart.const(new _metadata.DocsEditable())]])]);
   Blob[dart.owner] = exports;
   dart.registerExtension(dart.global.Blob, Blob);
   dart.defineExtensionNames([
@@ -3375,7 +3375,7 @@
       [dartx.text]: [async.Future, []]
     })
   });
-  Body[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Body')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Body"))];
+  Body[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Body')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Body"))], 'fields', dart.map(['bodyUsed', [dart.const(new _metadata.DomName('Body.bodyUsed')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Body[dart.owner] = exports;
   dart.registerExtension(dart.global.Body, Body);
   dart.defineExtensionNames([
@@ -3452,7 +3452,7 @@
       created: [BodyElement, []]
     })
   });
-  BodyElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBodyElement')), dart.const(new _js_helper.Native("HTMLBodyElement"))];
+  BodyElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLBodyElement')), dart.const(new _js_helper.Native("HTMLBodyElement"))], 'properties', dart.map(['onBlur', [dart.const(new _metadata.DomName('HTMLBodyElement.onblur')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('HTMLBodyElement.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('HTMLBodyElement.onfocus')), dart.const(new _metadata.DocsEditable())], 'onHashChange', [dart.const(new _metadata.DomName('HTMLBodyElement.onhashchange')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('HTMLBodyElement.onload')), dart.const(new _metadata.DocsEditable())], 'onMessage', [dart.const(new _metadata.DomName('HTMLBodyElement.onmessage')), dart.const(new _metadata.DocsEditable())], 'onOffline', [dart.const(new _metadata.DomName('HTMLBodyElement.onoffline')), dart.const(new _metadata.DocsEditable())], 'onOnline', [dart.const(new _metadata.DomName('HTMLBodyElement.ononline')), dart.const(new _metadata.DocsEditable())], 'onPopState', [dart.const(new _metadata.DomName('HTMLBodyElement.onpopstate')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('HTMLBodyElement.onresize')), dart.const(new _metadata.DocsEditable())], 'onScroll', [dart.const(new _metadata.DomName('HTMLBodyElement.onscroll')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStorage', [dart.const(new _metadata.DomName('HTMLBodyElement.onstorage')), dart.const(new _metadata.DocsEditable())], 'onUnload', [dart.const(new _metadata.DomName('HTMLBodyElement.onunload')), dart.const(new _metadata.DocsEditable())]])]);
   BodyElement[dart.owner] = exports;
   dart.defineLazyProperties(BodyElement, {
     get blurEvent() {
@@ -3634,7 +3634,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  ButtonElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLButtonElement')), dart.const(new _js_helper.Native("HTMLButtonElement"))];
+  ButtonElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLButtonElement')), dart.const(new _js_helper.Native("HTMLButtonElement"))], 'fields', dart.map(['autofocus', [dart.const(new _metadata.DomName('HTMLButtonElement.autofocus')), dart.const(new _metadata.DocsEditable())], 'disabled', [dart.const(new _metadata.DomName('HTMLButtonElement.disabled')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLButtonElement.form')), dart.const(new _metadata.DocsEditable())], 'formAction', [dart.const(new _metadata.DomName('HTMLButtonElement.formAction')), dart.const(new _metadata.DocsEditable())], 'formEnctype', [dart.const(new _metadata.DomName('HTMLButtonElement.formEnctype')), dart.const(new _metadata.DocsEditable())], 'formMethod', [dart.const(new _metadata.DomName('HTMLButtonElement.formMethod')), dart.const(new _metadata.DocsEditable())], 'formNoValidate', [dart.const(new _metadata.DomName('HTMLButtonElement.formNoValidate')), dart.const(new _metadata.DocsEditable())], 'formTarget', [dart.const(new _metadata.DomName('HTMLButtonElement.formTarget')), dart.const(new _metadata.DocsEditable())], 'labels', [dart.const(new _metadata.DomName('HTMLButtonElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'name', [dart.const(new _metadata.DomName('HTMLButtonElement.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLButtonElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLButtonElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLButtonElement.validity')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLButtonElement.value')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLButtonElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   ButtonElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLButtonElement, ButtonElement);
   const _createTextNode = Symbol('_createTextNode');
@@ -3695,7 +3695,7 @@
       [dartx.substringData]: [core.String, [core.int, core.int]]
     })
   });
-  CharacterData[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CharacterData')), dart.const(new _js_helper.Native("CharacterData"))];
+  CharacterData[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CharacterData')), dart.const(new _js_helper.Native("CharacterData"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('CharacterData.data')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('CharacterData.length')), dart.const(new _metadata.DocsEditable())], 'nextElementSibling', [dart.const(new _metadata.DomName('CharacterData.nextElementSibling')), dart.const(new _metadata.DocsEditable())], 'previousElementSibling', [dart.const(new _metadata.DomName('CharacterData.previousElementSibling')), dart.const(new _metadata.DocsEditable())]])]);
   CharacterData[dart.owner] = exports;
   dart.registerExtension(dart.global.CharacterData, CharacterData);
   dart.defineExtensionNames([
@@ -3730,7 +3730,7 @@
       [dartx.splitText]: [Text, [core.int]]
     })
   });
-  Text[dart.metadata] = () => [dart.const(new _metadata.DomName('Text')), dart.const(new _js_helper.Native("Text"))];
+  Text[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Text')), dart.const(new _js_helper.Native("Text"))], 'fields', dart.map(['wholeText', [dart.const(new _metadata.DomName('Text.wholeText')), dart.const(new _metadata.DocsEditable())]])]);
   Text[dart.owner] = exports;
   dart.registerExtension(dart.global.Text, Text);
   class CDataSection extends Text {
@@ -3741,7 +3741,7 @@
   dart.setSignature(CDataSection, {
     constructors: () => ({_: [CDataSection, []]})
   });
-  CDataSection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CDATASection')), core.deprecated, dart.const(new _js_helper.Native("CDATASection"))];
+  CDataSection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CDATASection')), core.deprecated, dart.const(new _js_helper.Native("CDATASection"))]]);
   CDataSection[dart.owner] = exports;
   dart.registerExtension(dart.global.CDATASection, CDataSection);
   dart.defineExtensionNames([
@@ -3781,7 +3781,7 @@
       [dartx.keys]: [async.Future, []]
     })
   });
-  CacheStorage[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CacheStorage')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CacheStorage"))];
+  CacheStorage[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CacheStorage')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CacheStorage"))]]);
   CacheStorage[dart.owner] = exports;
   dart.registerExtension(dart.global.CacheStorage, CacheStorage);
   dart.defineExtensionNames([
@@ -3808,7 +3808,7 @@
   dart.setSignature(Canvas2DContextAttributes, {
     constructors: () => ({_: [Canvas2DContextAttributes, []]})
   });
-  Canvas2DContextAttributes[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Canvas2DContextAttributes')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Canvas2DContextAttributes"))];
+  Canvas2DContextAttributes[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Canvas2DContextAttributes')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Canvas2DContextAttributes"))], 'fields', dart.map(['alpha', [dart.const(new _metadata.DomName('Canvas2DContextAttributes.alpha')), dart.const(new _metadata.DocsEditable())], 'storage', [dart.const(new _metadata.DomName('Canvas2DContextAttributes.storage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Canvas2DContextAttributes[dart.owner] = exports;
   dart.registerExtension(dart.global.Canvas2DContextAttributes, Canvas2DContextAttributes);
   const _getContext_1 = Symbol('_getContext_1');
@@ -3916,7 +3916,7 @@
       [dartx.toDataUrl]: [core.String, [], [core.String, core.num]]
     })
   });
-  CanvasElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLCanvasElement')), dart.const(new _js_helper.Native("HTMLCanvasElement"))];
+  CanvasElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLCanvasElement')), dart.const(new _js_helper.Native("HTMLCanvasElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('HTMLCanvasElement.height')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('HTMLCanvasElement.width')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onWebGlContextLost', [dart.const(new _metadata.DomName('HTMLCanvasElement.onwebglcontextlost')), dart.const(new _metadata.DocsEditable())], 'onWebGlContextRestored', [dart.const(new _metadata.DomName('HTMLCanvasElement.onwebglcontextrestored')), dart.const(new _metadata.DocsEditable())]])]);
   CanvasElement[dart.owner] = exports;
   dart.defineLazyProperties(CanvasElement, {
     get webGlContextLostEvent() {
@@ -3942,7 +3942,7 @@
     constructors: () => ({_: [CanvasGradient, []]}),
     methods: () => ({[dartx.addColorStop]: [dart.void, [core.num, core.String]]})
   });
-  CanvasGradient[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasGradient')), dart.const(new _js_helper.Native("CanvasGradient"))];
+  CanvasGradient[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasGradient')), dart.const(new _js_helper.Native("CanvasGradient"))]]);
   CanvasGradient[dart.owner] = exports;
   dart.registerExtension(dart.global.CanvasGradient, CanvasGradient);
   dart.defineExtensionNames([
@@ -3960,7 +3960,7 @@
     constructors: () => ({_: [CanvasPattern, []]}),
     methods: () => ({[dartx.setTransform]: [dart.void, [svg.Matrix]]})
   });
-  CanvasPattern[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasPattern')), dart.const(new _js_helper.Native("CanvasPattern"))];
+  CanvasPattern[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasPattern')), dart.const(new _js_helper.Native("CanvasPattern"))]]);
   CanvasPattern[dart.owner] = exports;
   dart.registerExtension(dart.global.CanvasPattern, CanvasPattern);
   class CanvasRenderingContext extends core.Object {}
@@ -4481,7 +4481,7 @@
       [dartx.fill]: [dart.void, [], [core.String]]
     })
   });
-  CanvasRenderingContext2D[dart.metadata] = () => [dart.const(new _metadata.DomName('CanvasRenderingContext2D')), dart.const(new _js_helper.Native("CanvasRenderingContext2D"))];
+  CanvasRenderingContext2D[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('CanvasRenderingContext2D')), dart.const(new _js_helper.Native("CanvasRenderingContext2D"))], 'fields', dart.map(['canvas', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.canvas')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'currentTransform', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.currentTransform')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'direction', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.direction')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fillStyle', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.fillStyle')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('String|CanvasGradient|CanvasPattern')), dart.const(new _js_helper.Returns('String|CanvasGradient|CanvasPattern'))], 'font', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.font')), dart.const(new _metadata.DocsEditable())], 'globalAlpha', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.globalAlpha')), dart.const(new _metadata.DocsEditable())], 'globalCompositeOperation', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.globalCompositeOperation')), dart.const(new _metadata.DocsEditable())], 'imageSmoothingEnabled', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.imageSmoothingEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'lineCap', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.lineCap')), dart.const(new _metadata.DocsEditable())], 'lineJoin', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.lineJoin')), dart.const(new _metadata.DocsEditable())], 'lineWidth', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.lineWidth')), dart.const(new _metadata.DocsEditable())], 'miterLimit', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.miterLimit')), dart.const(new _metadata.DocsEditable())], 'shadowBlur', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.shadowBlur')), dart.const(new _metadata.DocsEditable())], 'shadowColor', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.shadowColor')), dart.const(new _metadata.DocsEditable())], 'shadowOffsetX', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.shadowOffsetX')), dart.const(new _metadata.DocsEditable())], 'shadowOffsetY', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.shadowOffsetY')), dart.const(new _metadata.DocsEditable())], 'strokeStyle', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.strokeStyle')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('String|CanvasGradient|CanvasPattern')), dart.const(new _js_helper.Returns('String|CanvasGradient|CanvasPattern'))], 'textAlign', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.textAlign')), dart.const(new _metadata.DocsEditable())], 'textBaseline', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.textBaseline')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['lineDashOffset', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '11')), dart.const(new _metadata.Unstable()), dart.const(new _metadata.DomName('CanvasRenderingContext2D.lineDashOffset'))], 'lineDashOffset=', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '11')), dart.const(new _metadata.Unstable()), dart.const(new _metadata.DomName('CanvasRenderingContext2D.lineDashOffset'))], 'backingStorePixelRatio', [dart.const(new _metadata.DomName('CanvasRenderingContext2D.webkitBackingStorePixelRation')), dart.const(new _metadata.Experimental()), core.deprecated]])]);
   CanvasRenderingContext2D[dart.owner] = exports;
   dart.registerExtension(dart.global.CanvasRenderingContext2D, CanvasRenderingContext2D);
   dart.defineExtensionNames([
@@ -4497,7 +4497,7 @@
     constructors: () => ({_: [ChildNode, []]})
   });
   dart.defineExtensionMembers(ChildNode, ['nextElementSibling', 'previousElementSibling']);
-  ChildNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChildNode')), dart.const(new _metadata.Experimental())];
+  ChildNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChildNode')), dart.const(new _metadata.Experimental())]]);
   ChildNode[dart.owner] = exports;
   dart.defineExtensionNames([
     'id'
@@ -4513,7 +4513,7 @@
   dart.setSignature(GeofencingRegion, {
     constructors: () => ({_: [GeofencingRegion, []]})
   });
-  GeofencingRegion[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GeofencingRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GeofencingRegion"))];
+  GeofencingRegion[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GeofencingRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GeofencingRegion"))], 'fields', dart.map(['id', [dart.const(new _metadata.DomName('GeofencingRegion.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   GeofencingRegion[dart.owner] = exports;
   dart.registerExtension(dart.global.GeofencingRegion, GeofencingRegion);
   dart.defineExtensionNames([
@@ -4550,7 +4550,7 @@
     statics: () => ({_create_1: [CircularGeofencingRegion, [dart.dynamic]]}),
     names: ['_create_1']
   });
-  CircularGeofencingRegion[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CircularGeofencingRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CircularGeofencingRegion"))];
+  CircularGeofencingRegion[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CircularGeofencingRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CircularGeofencingRegion"))], 'fields', dart.map(['latitude', [dart.const(new _metadata.DomName('CircularGeofencingRegion.latitude')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'longitude', [dart.const(new _metadata.DomName('CircularGeofencingRegion.longitude')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'radius', [dart.const(new _metadata.DomName('CircularGeofencingRegion.radius')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CircularGeofencingRegion[dart.owner] = exports;
   CircularGeofencingRegion.MAX_RADIUS = 100.0;
   CircularGeofencingRegion.MIN_RADIUS = 1.0;
@@ -4577,7 +4577,7 @@
   dart.setSignature(CloseEvent, {
     constructors: () => ({_: [CloseEvent, []]})
   });
-  CloseEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CloseEvent')), dart.const(new _js_helper.Native("CloseEvent"))];
+  CloseEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CloseEvent')), dart.const(new _js_helper.Native("CloseEvent"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('CloseEvent.code')), dart.const(new _metadata.DocsEditable())], 'reason', [dart.const(new _metadata.DomName('CloseEvent.reason')), dart.const(new _metadata.DocsEditable())], 'wasClean', [dart.const(new _metadata.DomName('CloseEvent.wasClean')), dart.const(new _metadata.DocsEditable())]])]);
   CloseEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.CloseEvent, CloseEvent);
   class Comment extends CharacterData {
@@ -4598,7 +4598,7 @@
       _: [Comment, []]
     })
   });
-  Comment[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Comment')), dart.const(new _js_helper.Native("Comment"))];
+  Comment[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Comment')), dart.const(new _js_helper.Native("Comment"))]]);
   Comment[dart.owner] = exports;
   dart.registerExtension(dart.global.Comment, Comment);
   const _initCompositionEvent = Symbol('_initCompositionEvent');
@@ -4680,7 +4680,7 @@
     }),
     methods: () => ({[_initUIEvent]: [dart.void, [core.String, core.bool, core.bool, Window, core.int]]})
   });
-  UIEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('UIEvent')), dart.const(new _js_helper.Native("UIEvent"))];
+  UIEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('UIEvent')), dart.const(new _js_helper.Native("UIEvent"))], 'fields', dart.map(['_charCode', [dart.const(new _js_helper.JSName('charCode')), dart.const(new _metadata.DomName('UIEvent.charCode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'detail', [dart.const(new _metadata.DomName('UIEvent.detail')), dart.const(new _metadata.DocsEditable())], '_keyCode', [dart.const(new _js_helper.JSName('keyCode')), dart.const(new _metadata.DomName('UIEvent.keyCode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], '_layerX', [dart.const(new _js_helper.JSName('layerX')), dart.const(new _metadata.DomName('UIEvent.layerX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_layerY', [dart.const(new _js_helper.JSName('layerY')), dart.const(new _metadata.DomName('UIEvent.layerY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_pageX', [dart.const(new _js_helper.JSName('pageX')), dart.const(new _metadata.DomName('UIEvent.pageX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_pageY', [dart.const(new _js_helper.JSName('pageY')), dart.const(new _metadata.DomName('UIEvent.pageY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_view', [dart.const(new _js_helper.JSName('view')), dart.const(new _metadata.DomName('UIEvent.view')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], 'which', [dart.const(new _metadata.DomName('UIEvent.which')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())]]), 'properties', dart.map(['view', [dart.const(new _metadata.DomName('UIEvent.view')), dart.const(new _metadata.DocsEditable())], 'layer', [dart.const(new _metadata.DomName('UIEvent.layerX')), dart.const(new _metadata.DomName('UIEvent.layerY'))], 'page', [dart.const(new _metadata.DomName('UIEvent.pageX')), dart.const(new _metadata.DomName('UIEvent.pageY'))]])]);
   UIEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.UIEvent, UIEvent);
   dart.defineExtensionNames([
@@ -4736,7 +4736,7 @@
       [_initCompositionEvent]: [dart.void, [core.String, core.bool, core.bool, Window, core.String]]
     })
   });
-  CompositionEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('CompositionEvent')), dart.const(new _js_helper.Native("CompositionEvent"))];
+  CompositionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('CompositionEvent')), dart.const(new _js_helper.Native("CompositionEvent"))], 'fields', dart.map(['activeSegmentEnd', [dart.const(new _metadata.DomName('CompositionEvent.activeSegmentEnd')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'activeSegmentStart', [dart.const(new _metadata.DomName('CompositionEvent.activeSegmentStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'data', [dart.const(new _metadata.DomName('CompositionEvent.data')), dart.const(new _metadata.DocsEditable())]])]);
   CompositionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.CompositionEvent, CompositionEvent);
   const _isConsoleDefined = Symbol('_isConsoleDefined');
@@ -4846,7 +4846,7 @@
       warn: [dart.void, [core.Object]]
     })
   });
-  Console[dart.metadata] = () => [dart.const(new _metadata.DomName('Console'))];
+  Console[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Console'))], 'properties', dart.map(['memory', [dart.const(new _metadata.DomName('Console.memory'))]])]);
   Console[dart.owner] = exports;
   dart.defineLazyProperties(Console, {
     get _safeConsole() {
@@ -4875,7 +4875,7 @@
       [dartx.timelineEnd]: [dart.void, [core.String]]
     })
   });
-  ConsoleBase[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ConsoleBase')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ConsoleBase"))];
+  ConsoleBase[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ConsoleBase')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ConsoleBase"))]]);
   ConsoleBase[dart.owner] = exports;
   dart.registerExtension(dart.global.ConsoleBase, ConsoleBase);
   dart.defineExtensionNames([
@@ -4915,7 +4915,7 @@
     }),
     methods: () => ({[dartx.getDistributedNodes]: [core.List$(Node), []]})
   });
-  ContentElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLContentElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLContentElement"))];
+  ContentElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLContentElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLContentElement"))], 'fields', dart.map(['select', [dart.const(new _metadata.DomName('HTMLContentElement.select')), dart.const(new _metadata.DocsEditable())]])]);
   ContentElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLContentElement, ContentElement);
   dart.defineExtensionNames([
@@ -4956,7 +4956,7 @@
   dart.setSignature(Coordinates, {
     constructors: () => ({_: [Coordinates, []]})
   });
-  Coordinates[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Coordinates')), dart.const(new _js_helper.Native("Coordinates"))];
+  Coordinates[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Coordinates')), dart.const(new _js_helper.Native("Coordinates"))], 'fields', dart.map(['accuracy', [dart.const(new _metadata.DomName('Coordinates.accuracy')), dart.const(new _metadata.DocsEditable())], 'altitude', [dart.const(new _metadata.DomName('Coordinates.altitude')), dart.const(new _metadata.DocsEditable())], 'altitudeAccuracy', [dart.const(new _metadata.DomName('Coordinates.altitudeAccuracy')), dart.const(new _metadata.DocsEditable())], 'heading', [dart.const(new _metadata.DomName('Coordinates.heading')), dart.const(new _metadata.DocsEditable())], 'latitude', [dart.const(new _metadata.DomName('Coordinates.latitude')), dart.const(new _metadata.DocsEditable())], 'longitude', [dart.const(new _metadata.DomName('Coordinates.longitude')), dart.const(new _metadata.DocsEditable())], 'speed', [dart.const(new _metadata.DomName('Coordinates.speed')), dart.const(new _metadata.DocsEditable())]])]);
   Coordinates[dart.owner] = exports;
   dart.registerExtension(dart.global.Coordinates, Coordinates);
   dart.defineExtensionNames([
@@ -4981,7 +4981,7 @@
   dart.setSignature(Credential, {
     constructors: () => ({_: [Credential, []]})
   });
-  Credential[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Credential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Credential"))];
+  Credential[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Credential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Credential"))], 'fields', dart.map(['avatarUrl', [dart.const(new _js_helper.JSName('avatarURL')), dart.const(new _metadata.DomName('Credential.avatarURL')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'id', [dart.const(new _metadata.DomName('Credential.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'name', [dart.const(new _metadata.DomName('Credential.name')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Credential[dart.owner] = exports;
   dart.registerExtension(dart.global.Credential, Credential);
   const _request_1 = Symbol('_request_1');
@@ -5031,7 +5031,7 @@
       [_request_2]: [async.Future, []]
     })
   });
-  CredentialsContainer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CredentialsContainer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CredentialsContainer"))];
+  CredentialsContainer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CredentialsContainer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CredentialsContainer"))]]);
   CredentialsContainer[dart.owner] = exports;
   dart.registerExtension(dart.global.CredentialsContainer, CredentialsContainer);
   const _getRandomValues = Symbol('_getRandomValues');
@@ -5063,7 +5063,7 @@
       [_getRandomValues]: [typed_data.TypedData, [typed_data.TypedData]]
     })
   });
-  Crypto[dart.metadata] = () => [dart.const(new _metadata.DomName('Crypto')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Crypto"))];
+  Crypto[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Crypto')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Crypto"))], 'fields', dart.map(['subtle', [dart.const(new _metadata.DomName('Crypto.subtle')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Crypto[dart.owner] = exports;
   dart.registerExtension(dart.global.Crypto, Crypto);
   dart.defineExtensionNames([
@@ -5092,7 +5092,7 @@
   dart.setSignature(CryptoKey, {
     constructors: () => ({_: [CryptoKey, []]})
   });
-  CryptoKey[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CryptoKey')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CryptoKey"))];
+  CryptoKey[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CryptoKey')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CryptoKey"))], 'fields', dart.map(['algorithm', [dart.const(new _metadata.DomName('CryptoKey.algorithm')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'extractable', [dart.const(new _metadata.DomName('CryptoKey.extractable')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('CryptoKey.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'usages', [dart.const(new _metadata.DomName('CryptoKey.usages')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CryptoKey[dart.owner] = exports;
   dart.registerExtension(dart.global.CryptoKey, CryptoKey);
   dart.defineExtensionNames([
@@ -5117,7 +5117,7 @@
       [dartx.supportsCondition]: [core.bool, [core.String]]
     })
   });
-  Css[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSS')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSS"))];
+  Css[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSS')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSS"))]]);
   Css[dart.owner] = exports;
   dart.registerExtension(dart.global.CSS, Css);
   dart.defineExtensionNames([
@@ -5149,7 +5149,7 @@
   dart.setSignature(CssRule, {
     constructors: () => ({_: [CssRule, []]})
   });
-  CssRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSRule')), dart.const(new _js_helper.Native("CSSRule"))];
+  CssRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSRule')), dart.const(new _js_helper.Native("CSSRule"))], 'fields', dart.map(['cssText', [dart.const(new _metadata.DomName('CSSRule.cssText')), dart.const(new _metadata.DocsEditable())], 'parentRule', [dart.const(new _metadata.DomName('CSSRule.parentRule')), dart.const(new _metadata.DocsEditable())], 'parentStyleSheet', [dart.const(new _metadata.DomName('CSSRule.parentStyleSheet')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('CSSRule.type')), dart.const(new _metadata.DocsEditable())]])]);
   CssRule[dart.owner] = exports;
   CssRule.CHARSET_RULE = 2;
   CssRule.FONT_FACE_RULE = 5;
@@ -5182,7 +5182,7 @@
   dart.setSignature(CssCharsetRule, {
     constructors: () => ({_: [CssCharsetRule, []]})
   });
-  CssCharsetRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSCharsetRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSCharsetRule"))];
+  CssCharsetRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSCharsetRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSCharsetRule"))], 'fields', dart.map(['encoding', [dart.const(new _metadata.DomName('CSSCharsetRule.encoding')), dart.const(new _metadata.DocsEditable())]])]);
   CssCharsetRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSCharsetRule, CssCharsetRule);
   dart.defineExtensionNames([
@@ -5199,7 +5199,7 @@
   dart.setSignature(CssFilterRule, {
     constructors: () => ({_: [CssFilterRule, []]})
   });
-  CssFilterRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSFilterRule')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebKitCSSFilterRule"))];
+  CssFilterRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSFilterRule')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebKitCSSFilterRule"))], 'fields', dart.map(['style', [dart.const(new _metadata.DomName('WebKitCSSFilterRule.style')), dart.const(new _metadata.DocsEditable())]])]);
   CssFilterRule[dart.owner] = exports;
   dart.registerExtension(dart.global.WebKitCSSFilterRule, CssFilterRule);
   dart.defineExtensionNames([
@@ -5216,7 +5216,7 @@
   dart.setSignature(CssFontFaceRule, {
     constructors: () => ({_: [CssFontFaceRule, []]})
   });
-  CssFontFaceRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSFontFaceRule')), dart.const(new _js_helper.Native("CSSFontFaceRule"))];
+  CssFontFaceRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSFontFaceRule')), dart.const(new _js_helper.Native("CSSFontFaceRule"))], 'fields', dart.map(['style', [dart.const(new _metadata.DomName('CSSFontFaceRule.style')), dart.const(new _metadata.DocsEditable())]])]);
   CssFontFaceRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSFontFaceRule, CssFontFaceRule);
   dart.defineExtensionNames([
@@ -5241,7 +5241,7 @@
   dart.setSignature(CssImportRule, {
     constructors: () => ({_: [CssImportRule, []]})
   });
-  CssImportRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSImportRule')), dart.const(new _js_helper.Native("CSSImportRule"))];
+  CssImportRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSImportRule')), dart.const(new _js_helper.Native("CSSImportRule"))], 'fields', dart.map(['href', [dart.const(new _metadata.DomName('CSSImportRule.href')), dart.const(new _metadata.DocsEditable())], 'media', [dart.const(new _metadata.DomName('CSSImportRule.media')), dart.const(new _metadata.DocsEditable())], 'styleSheet', [dart.const(new _metadata.DomName('CSSImportRule.styleSheet')), dart.const(new _metadata.DocsEditable())]])]);
   CssImportRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSImportRule, CssImportRule);
   dart.defineExtensionNames([
@@ -5265,7 +5265,7 @@
   dart.setSignature(CssKeyframeRule, {
     constructors: () => ({_: [CssKeyframeRule, []]})
   });
-  CssKeyframeRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSKeyframeRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSKeyframeRule,MozCSSKeyframeRule,WebKitCSSKeyframeRule"))];
+  CssKeyframeRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSKeyframeRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSKeyframeRule,MozCSSKeyframeRule,WebKitCSSKeyframeRule"))], 'fields', dart.map(['keyText', [dart.const(new _metadata.DomName('CSSKeyframeRule.keyText')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'style', [dart.const(new _metadata.DomName('CSSKeyframeRule.style')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CssKeyframeRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSKeyframeRule, CssKeyframeRule);
   dart.defineExtensionNames([
@@ -5310,7 +5310,7 @@
       [dartx.appendRule]: [dart.void, [core.String]]
     })
   });
-  CssKeyframesRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSKeyframesRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSKeyframesRule,MozCSSKeyframesRule,WebKitCSSKeyframesRule"))];
+  CssKeyframesRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSKeyframesRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSKeyframesRule,MozCSSKeyframesRule,WebKitCSSKeyframesRule"))], 'fields', dart.map(['cssRules', [dart.const(new _metadata.DomName('CSSKeyframesRule.cssRules')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('_CssRuleList')), dart.const(new _js_helper.Creates('_CssRuleList'))], 'name', [dart.const(new _metadata.DomName('CSSKeyframesRule.name')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CssKeyframesRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSKeyframesRule, CssKeyframesRule);
   dart.defineExtensionNames([
@@ -5343,7 +5343,7 @@
       [dartx.insertRule]: [core.int, [core.String, core.int]]
     })
   });
-  CssMediaRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSMediaRule')), dart.const(new _js_helper.Native("CSSMediaRule"))];
+  CssMediaRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSMediaRule')), dart.const(new _js_helper.Native("CSSMediaRule"))], 'fields', dart.map(['cssRules', [dart.const(new _metadata.DomName('CSSMediaRule.cssRules')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('_CssRuleList')), dart.const(new _js_helper.Creates('_CssRuleList'))], 'media', [dart.const(new _metadata.DomName('CSSMediaRule.media')), dart.const(new _metadata.DocsEditable())]])]);
   CssMediaRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSMediaRule, CssMediaRule);
   dart.defineExtensionNames([
@@ -5367,7 +5367,7 @@
   dart.setSignature(CssPageRule, {
     constructors: () => ({_: [CssPageRule, []]})
   });
-  CssPageRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSPageRule')), dart.const(new _js_helper.Native("CSSPageRule"))];
+  CssPageRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSPageRule')), dart.const(new _js_helper.Native("CSSPageRule"))], 'fields', dart.map(['selectorText', [dart.const(new _metadata.DomName('CSSPageRule.selectorText')), dart.const(new _metadata.DocsEditable())], 'style', [dart.const(new _metadata.DomName('CSSPageRule.style')), dart.const(new _metadata.DocsEditable())]])]);
   CssPageRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSPageRule, CssPageRule);
   const _getPropertyValueHelper = Symbol('_getPropertyValueHelper');
@@ -8893,6 +8893,7 @@
     'zoom',
     'zoom'
   ]);
+  CssStyleDeclarationBase[dart.metadata] = () => dart.map(['properties', dart.map(['transition', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'transition=', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))]])]);
   CssStyleDeclarationBase[dart.owner] = exports;
   dart.defineExtensionNames([
     'getPropertyValue',
@@ -10288,7 +10289,7 @@
     }),
     names: ['_readCache', '_writeCache', '_camelCase']
   });
-  CssStyleDeclaration[dart.metadata] = () => [dart.const(new _metadata.DomName('CSSStyleDeclaration')), dart.const(new _js_helper.Native("CSSStyleDeclaration,MSStyleCSSProperties,CSS2Properties"))];
+  CssStyleDeclaration[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('CSSStyleDeclaration')), dart.const(new _js_helper.Native("CSSStyleDeclaration,MSStyleCSSProperties,CSS2Properties"))], 'fields', dart.map(['cssText', [dart.const(new _metadata.DomName('CSSStyleDeclaration.cssText')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('CSSStyleDeclaration.length')), dart.const(new _metadata.DocsEditable())], 'parentRule', [dart.const(new _metadata.DomName('CSSStyleDeclaration.parentRule')), dart.const(new _metadata.DocsEditable())], '_background', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('background'))], '_backgroundAttachment', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('backgroundAttachment'))], '_backgroundColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('backgroundColor'))], '_backgroundImage', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('backgroundImage'))], '_backgroundPosition', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('backgroundPosition'))], '_backgroundRepeat', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('backgroundRepeat'))], '_border', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('border'))], '_borderBottom', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderBottom'))], '_borderBottomColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderBottomColor'))], '_borderBottomStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderBottomStyle'))], '_borderBottomWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderBottomWidth'))], '_borderCollapse', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderCollapse'))], '_borderColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderColor'))], '_borderLeft', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderLeft'))], '_borderLeftColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderLeftColor'))], '_borderLeftStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderLeftStyle'))], '_borderLeftWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderLeftWidth'))], '_borderRight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderRight'))], '_borderRightColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderRightColor'))], '_borderRightStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderRightStyle'))], '_borderRightWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderRightWidth'))], '_borderSpacing', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderSpacing'))], '_borderStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderStyle'))], '_borderTop', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderTop'))], '_borderTopColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderTopColor'))], '_borderTopStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderTopStyle'))], '_borderTopWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderTopWidth'))], '_borderWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('borderWidth'))], '_bottom', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('bottom'))], '_captionSide', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('captionSide'))], '_clear', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('clear'))], '_clip', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('clip'))], '_color', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('color'))], '_content', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('content'))], '_cursor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('cursor'))], '_direction', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('direction'))], '_display', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('display'))], '_emptyCells', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('emptyCells'))], '_font', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('font'))], '_fontFamily', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('fontFamily'))], '_fontSize', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('fontSize'))], '_fontStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('fontStyle'))], '_fontVariant', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('fontVariant'))], '_fontWeight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('fontWeight'))], '_height', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('height'))], '_left', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('left'))], '_letterSpacing', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('letterSpacing'))], '_lineHeight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('lineHeight'))], '_listStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('listStyle'))], '_listStyleImage', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('listStyleImage'))], '_listStylePosition', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('listStylePosition'))], '_listStyleType', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('listStyleType'))], '_margin', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('margin'))], '_marginBottom', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('marginBottom'))], '_marginLeft', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('marginLeft'))], '_marginRight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('marginRight'))], '_marginTop', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('marginTop'))], '_maxHeight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('maxHeight'))], '_maxWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('maxWidth'))], '_minHeight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('minHeight'))], '_minWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('minWidth'))], '_outline', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('outline'))], '_outlineColor', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('outlineColor'))], '_outlineStyle', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('outlineStyle'))], '_outlineWidth', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('outlineWidth'))], '_overflow', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('overflow'))], '_padding', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('padding'))], '_paddingBottom', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('paddingBottom'))], '_paddingLeft', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('paddingLeft'))], '_paddingRight', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('paddingRight'))], '_paddingTop', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('paddingTop'))], '_pageBreakAfter', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('pageBreakAfter'))], '_pageBreakBefore', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('pageBreakBefore'))], '_pageBreakInside', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('pageBreakInside'))], '_position', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('position'))], '_quotes', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('quotes'))], '_right', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('right'))], '_tableLayout', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('tableLayout'))], '_textAlign', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('textAlign'))], '_textDecoration', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('textDecoration'))], '_textIndent', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('textIndent'))], '_textTransform', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('textTransform'))], '_top', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('top'))], '_unicodeBidi', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('unicodeBidi'))], '_verticalAlign', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('verticalAlign'))], '_visibility', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('visibility'))], '_whiteSpace', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('whiteSpace'))], '_width', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('width'))], '_wordSpacing', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('wordSpacing'))], '_zIndex', [dart.const(new _js_helper.Returns('String')), dart.const(new _js_helper.JSName('zIndex'))]])]);
   CssStyleDeclaration[dart.owner] = exports;
   dart.defineLazyProperties(CssStyleDeclaration, {
     get _propertyCache() {
@@ -10321,273 +10322,543 @@
     set background(value) {
       this[_setAll]('background', value);
     }
+    get background() {
+      return super.background;
+    }
     set backgroundAttachment(value) {
       this[_setAll]('backgroundAttachment', value);
     }
+    get backgroundAttachment() {
+      return super.backgroundAttachment;
+    }
     set backgroundColor(value) {
       this[_setAll]('backgroundColor', value);
     }
+    get backgroundColor() {
+      return super.backgroundColor;
+    }
     set backgroundImage(value) {
       this[_setAll]('backgroundImage', value);
     }
+    get backgroundImage() {
+      return super.backgroundImage;
+    }
     set backgroundPosition(value) {
       this[_setAll]('backgroundPosition', value);
     }
+    get backgroundPosition() {
+      return super.backgroundPosition;
+    }
     set backgroundRepeat(value) {
       this[_setAll]('backgroundRepeat', value);
     }
+    get backgroundRepeat() {
+      return super.backgroundRepeat;
+    }
     set border(value) {
       this[_setAll]('border', value);
     }
+    get border() {
+      return super.border;
+    }
     set borderBottom(value) {
       this[_setAll]('borderBottom', value);
     }
+    get borderBottom() {
+      return super.borderBottom;
+    }
     set borderBottomColor(value) {
       this[_setAll]('borderBottomColor', value);
     }
+    get borderBottomColor() {
+      return super.borderBottomColor;
+    }
     set borderBottomStyle(value) {
       this[_setAll]('borderBottomStyle', value);
     }
+    get borderBottomStyle() {
+      return super.borderBottomStyle;
+    }
     set borderBottomWidth(value) {
       this[_setAll]('borderBottomWidth', value);
     }
+    get borderBottomWidth() {
+      return super.borderBottomWidth;
+    }
     set borderCollapse(value) {
       this[_setAll]('borderCollapse', value);
     }
+    get borderCollapse() {
+      return super.borderCollapse;
+    }
     set borderColor(value) {
       this[_setAll]('borderColor', value);
     }
+    get borderColor() {
+      return super.borderColor;
+    }
     set borderLeft(value) {
       this[_setAll]('borderLeft', value);
     }
+    get borderLeft() {
+      return super.borderLeft;
+    }
     set borderLeftColor(value) {
       this[_setAll]('borderLeftColor', value);
     }
+    get borderLeftColor() {
+      return super.borderLeftColor;
+    }
     set borderLeftStyle(value) {
       this[_setAll]('borderLeftStyle', value);
     }
+    get borderLeftStyle() {
+      return super.borderLeftStyle;
+    }
     set borderLeftWidth(value) {
       this[_setAll]('borderLeftWidth', value);
     }
+    get borderLeftWidth() {
+      return super.borderLeftWidth;
+    }
     set borderRight(value) {
       this[_setAll]('borderRight', value);
     }
+    get borderRight() {
+      return super.borderRight;
+    }
     set borderRightColor(value) {
       this[_setAll]('borderRightColor', value);
     }
+    get borderRightColor() {
+      return super.borderRightColor;
+    }
     set borderRightStyle(value) {
       this[_setAll]('borderRightStyle', value);
     }
+    get borderRightStyle() {
+      return super.borderRightStyle;
+    }
     set borderRightWidth(value) {
       this[_setAll]('borderRightWidth', value);
     }
+    get borderRightWidth() {
+      return super.borderRightWidth;
+    }
     set borderSpacing(value) {
       this[_setAll]('borderSpacing', value);
     }
+    get borderSpacing() {
+      return super.borderSpacing;
+    }
     set borderStyle(value) {
       this[_setAll]('borderStyle', value);
     }
+    get borderStyle() {
+      return super.borderStyle;
+    }
     set borderTop(value) {
       this[_setAll]('borderTop', value);
     }
+    get borderTop() {
+      return super.borderTop;
+    }
     set borderTopColor(value) {
       this[_setAll]('borderTopColor', value);
     }
+    get borderTopColor() {
+      return super.borderTopColor;
+    }
     set borderTopStyle(value) {
       this[_setAll]('borderTopStyle', value);
     }
+    get borderTopStyle() {
+      return super.borderTopStyle;
+    }
     set borderTopWidth(value) {
       this[_setAll]('borderTopWidth', value);
     }
+    get borderTopWidth() {
+      return super.borderTopWidth;
+    }
     set borderWidth(value) {
       this[_setAll]('borderWidth', value);
     }
+    get borderWidth() {
+      return super.borderWidth;
+    }
     set bottom(value) {
       this[_setAll]('bottom', value);
     }
+    get bottom() {
+      return super.bottom;
+    }
     set captionSide(value) {
       this[_setAll]('captionSide', value);
     }
+    get captionSide() {
+      return super.captionSide;
+    }
     set clear(value) {
       this[_setAll]('clear', value);
     }
+    get clear() {
+      return super.clear;
+    }
     set clip(value) {
       this[_setAll]('clip', value);
     }
+    get clip() {
+      return super.clip;
+    }
     set color(value) {
       this[_setAll]('color', value);
     }
+    get color() {
+      return super.color;
+    }
     set content(value) {
       this[_setAll]('content', value);
     }
+    get content() {
+      return super.content;
+    }
     set cursor(value) {
       this[_setAll]('cursor', value);
     }
+    get cursor() {
+      return super.cursor;
+    }
     set direction(value) {
       this[_setAll]('direction', value);
     }
+    get direction() {
+      return super.direction;
+    }
     set display(value) {
       this[_setAll]('display', value);
     }
+    get display() {
+      return super.display;
+    }
     set emptyCells(value) {
       this[_setAll]('emptyCells', value);
     }
+    get emptyCells() {
+      return super.emptyCells;
+    }
     set font(value) {
       this[_setAll]('font', value);
     }
+    get font() {
+      return super.font;
+    }
     set fontFamily(value) {
       this[_setAll]('fontFamily', value);
     }
+    get fontFamily() {
+      return super.fontFamily;
+    }
     set fontSize(value) {
       this[_setAll]('fontSize', value);
     }
+    get fontSize() {
+      return super.fontSize;
+    }
     set fontStyle(value) {
       this[_setAll]('fontStyle', value);
     }
+    get fontStyle() {
+      return super.fontStyle;
+    }
     set fontVariant(value) {
       this[_setAll]('fontVariant', value);
     }
+    get fontVariant() {
+      return super.fontVariant;
+    }
     set fontWeight(value) {
       this[_setAll]('fontWeight', value);
     }
+    get fontWeight() {
+      return super.fontWeight;
+    }
     set height(value) {
       this[_setAll]('height', value);
     }
+    get height() {
+      return super.height;
+    }
     set left(value) {
       this[_setAll]('left', value);
     }
+    get left() {
+      return super.left;
+    }
     set letterSpacing(value) {
       this[_setAll]('letterSpacing', value);
     }
+    get letterSpacing() {
+      return super.letterSpacing;
+    }
     set lineHeight(value) {
       this[_setAll]('lineHeight', value);
     }
+    get lineHeight() {
+      return super.lineHeight;
+    }
     set listStyle(value) {
       this[_setAll]('listStyle', value);
     }
+    get listStyle() {
+      return super.listStyle;
+    }
     set listStyleImage(value) {
       this[_setAll]('listStyleImage', value);
     }
+    get listStyleImage() {
+      return super.listStyleImage;
+    }
     set listStylePosition(value) {
       this[_setAll]('listStylePosition', value);
     }
+    get listStylePosition() {
+      return super.listStylePosition;
+    }
     set listStyleType(value) {
       this[_setAll]('listStyleType', value);
     }
+    get listStyleType() {
+      return super.listStyleType;
+    }
     set margin(value) {
       this[_setAll]('margin', value);
     }
+    get margin() {
+      return super.margin;
+    }
     set marginBottom(value) {
       this[_setAll]('marginBottom', value);
     }
+    get marginBottom() {
+      return super.marginBottom;
+    }
     set marginLeft(value) {
       this[_setAll]('marginLeft', value);
     }
+    get marginLeft() {
+      return super.marginLeft;
+    }
     set marginRight(value) {
       this[_setAll]('marginRight', value);
     }
+    get marginRight() {
+      return super.marginRight;
+    }
     set marginTop(value) {
       this[_setAll]('marginTop', value);
     }
+    get marginTop() {
+      return super.marginTop;
+    }
     set maxHeight(value) {
       this[_setAll]('maxHeight', value);
     }
+    get maxHeight() {
+      return super.maxHeight;
+    }
     set maxWidth(value) {
       this[_setAll]('maxWidth', value);
     }
+    get maxWidth() {
+      return super.maxWidth;
+    }
     set minHeight(value) {
       this[_setAll]('minHeight', value);
     }
+    get minHeight() {
+      return super.minHeight;
+    }
     set minWidth(value) {
       this[_setAll]('minWidth', value);
     }
+    get minWidth() {
+      return super.minWidth;
+    }
     set outline(value) {
       this[_setAll]('outline', value);
     }
+    get outline() {
+      return super.outline;
+    }
     set outlineColor(value) {
       this[_setAll]('outlineColor', value);
     }
+    get outlineColor() {
+      return super.outlineColor;
+    }
     set outlineStyle(value) {
       this[_setAll]('outlineStyle', value);
     }
+    get outlineStyle() {
+      return super.outlineStyle;
+    }
     set outlineWidth(value) {
       this[_setAll]('outlineWidth', value);
     }
+    get outlineWidth() {
+      return super.outlineWidth;
+    }
     set overflow(value) {
       this[_setAll]('overflow', value);
     }
+    get overflow() {
+      return super.overflow;
+    }
     set padding(value) {
       this[_setAll]('padding', value);
     }
+    get padding() {
+      return super.padding;
+    }
     set paddingBottom(value) {
       this[_setAll]('paddingBottom', value);
     }
+    get paddingBottom() {
+      return super.paddingBottom;
+    }
     set paddingLeft(value) {
       this[_setAll]('paddingLeft', value);
     }
+    get paddingLeft() {
+      return super.paddingLeft;
+    }
     set paddingRight(value) {
       this[_setAll]('paddingRight', value);
     }
+    get paddingRight() {
+      return super.paddingRight;
+    }
     set paddingTop(value) {
       this[_setAll]('paddingTop', value);
     }
+    get paddingTop() {
+      return super.paddingTop;
+    }
     set pageBreakAfter(value) {
       this[_setAll]('pageBreakAfter', value);
     }
+    get pageBreakAfter() {
+      return super.pageBreakAfter;
+    }
     set pageBreakBefore(value) {
       this[_setAll]('pageBreakBefore', value);
     }
+    get pageBreakBefore() {
+      return super.pageBreakBefore;
+    }
     set pageBreakInside(value) {
       this[_setAll]('pageBreakInside', value);
     }
+    get pageBreakInside() {
+      return super.pageBreakInside;
+    }
     set position(value) {
       this[_setAll]('position', value);
     }
+    get position() {
+      return super.position;
+    }
     set quotes(value) {
       this[_setAll]('quotes', value);
     }
+    get quotes() {
+      return super.quotes;
+    }
     set right(value) {
       this[_setAll]('right', value);
     }
+    get right() {
+      return super.right;
+    }
     set tableLayout(value) {
       this[_setAll]('tableLayout', value);
     }
+    get tableLayout() {
+      return super.tableLayout;
+    }
     set textAlign(value) {
       this[_setAll]('textAlign', value);
     }
+    get textAlign() {
+      return super.textAlign;
+    }
     set textDecoration(value) {
       this[_setAll]('textDecoration', value);
     }
+    get textDecoration() {
+      return super.textDecoration;
+    }
     set textIndent(value) {
       this[_setAll]('textIndent', value);
     }
+    get textIndent() {
+      return super.textIndent;
+    }
     set textTransform(value) {
       this[_setAll]('textTransform', value);
     }
+    get textTransform() {
+      return super.textTransform;
+    }
     set top(value) {
       this[_setAll]('top', value);
     }
+    get top() {
+      return super.top;
+    }
     set unicodeBidi(value) {
       this[_setAll]('unicodeBidi', value);
     }
+    get unicodeBidi() {
+      return super.unicodeBidi;
+    }
     set verticalAlign(value) {
       this[_setAll]('verticalAlign', value);
     }
+    get verticalAlign() {
+      return super.verticalAlign;
+    }
     set visibility(value) {
       this[_setAll]('visibility', value);
     }
+    get visibility() {
+      return super.visibility;
+    }
     set whiteSpace(value) {
       this[_setAll]('whiteSpace', value);
     }
+    get whiteSpace() {
+      return super.whiteSpace;
+    }
     set width(value) {
       this[_setAll]('width', value);
     }
+    get width() {
+      return super.width;
+    }
     set wordSpacing(value) {
       this[_setAll]('wordSpacing', value);
     }
+    get wordSpacing() {
+      return super.wordSpacing;
+    }
     set zIndex(value) {
       this[_setAll]('zIndex', value);
     }
+    get zIndex() {
+      return super.zIndex;
+    }
   }
   dart.setSignature(_CssStyleDeclarationSet, {
     constructors: () => ({_CssStyleDeclarationSet: [_CssStyleDeclarationSet, [core.Iterable$(Element)]]}),
@@ -10713,7 +10984,7 @@
   dart.setSignature(CssStyleRule, {
     constructors: () => ({_: [CssStyleRule, []]})
   });
-  CssStyleRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSStyleRule')), dart.const(new _js_helper.Native("CSSStyleRule"))];
+  CssStyleRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSStyleRule')), dart.const(new _js_helper.Native("CSSStyleRule"))], 'fields', dart.map(['selectorText', [dart.const(new _metadata.DomName('CSSStyleRule.selectorText')), dart.const(new _metadata.DocsEditable())], 'style', [dart.const(new _metadata.DomName('CSSStyleRule.style')), dart.const(new _metadata.DocsEditable())]])]);
   CssStyleRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSStyleRule, CssStyleRule);
   dart.defineExtensionNames([
@@ -10757,7 +11028,7 @@
   dart.setSignature(StyleSheet, {
     constructors: () => ({_: [StyleSheet, []]})
   });
-  StyleSheet[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleSheet')), dart.const(new _js_helper.Native("StyleSheet"))];
+  StyleSheet[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleSheet')), dart.const(new _js_helper.Native("StyleSheet"))], 'fields', dart.map(['disabled', [dart.const(new _metadata.DomName('StyleSheet.disabled')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('StyleSheet.href')), dart.const(new _metadata.DocsEditable())], 'media', [dart.const(new _metadata.DomName('StyleSheet.media')), dart.const(new _metadata.DocsEditable())], 'ownerNode', [dart.const(new _metadata.DomName('StyleSheet.ownerNode')), dart.const(new _metadata.DocsEditable())], 'parentStyleSheet', [dart.const(new _metadata.DomName('StyleSheet.parentStyleSheet')), dart.const(new _metadata.DocsEditable())], 'title', [dart.const(new _metadata.DomName('StyleSheet.title')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('StyleSheet.type')), dart.const(new _metadata.DocsEditable())]])]);
   StyleSheet[dart.owner] = exports;
   dart.registerExtension(dart.global.StyleSheet, StyleSheet);
   dart.defineExtensionNames([
@@ -10804,7 +11075,7 @@
       [dartx.removeRule]: [dart.void, [core.int]]
     })
   });
-  CssStyleSheet[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSStyleSheet')), dart.const(new _js_helper.Native("CSSStyleSheet"))];
+  CssStyleSheet[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSStyleSheet')), dart.const(new _js_helper.Native("CSSStyleSheet"))], 'fields', dart.map(['cssRules', [dart.const(new _metadata.DomName('CSSStyleSheet.cssRules')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('_CssRuleList')), dart.const(new _js_helper.Creates('_CssRuleList'))], 'ownerRule', [dart.const(new _metadata.DomName('CSSStyleSheet.ownerRule')), dart.const(new _metadata.DocsEditable())], 'rules', [dart.const(new _metadata.DomName('CSSStyleSheet.rules')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('_CssRuleList')), dart.const(new _js_helper.Creates('_CssRuleList'))]])]);
   CssStyleSheet[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSStyleSheet, CssStyleSheet);
   dart.defineExtensionNames([
@@ -10837,7 +11108,7 @@
       [dartx.insertRule]: [core.int, [core.String, core.int]]
     })
   });
-  CssSupportsRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSSupportsRule')), dart.const(new _js_helper.Native("CSSSupportsRule"))];
+  CssSupportsRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSSupportsRule')), dart.const(new _js_helper.Native("CSSSupportsRule"))], 'fields', dart.map(['conditionText', [dart.const(new _metadata.DomName('CSSSupportsRule.conditionText')), dart.const(new _metadata.DocsEditable())], 'cssRules', [dart.const(new _metadata.DomName('CSSSupportsRule.cssRules')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('_CssRuleList')), dart.const(new _js_helper.Creates('_CssRuleList'))]])]);
   CssSupportsRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSSupportsRule, CssSupportsRule);
   dart.defineExtensionNames([
@@ -10854,7 +11125,7 @@
   dart.setSignature(CssViewportRule, {
     constructors: () => ({_: [CssViewportRule, []]})
   });
-  CssViewportRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSViewportRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSViewportRule"))];
+  CssViewportRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSViewportRule')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("CSSViewportRule"))], 'fields', dart.map(['style', [dart.const(new _metadata.DomName('CSSViewportRule.style')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CssViewportRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSViewportRule, CssViewportRule);
   const _dartDetail = Symbol('_dartDetail');
@@ -10916,7 +11187,7 @@
     }),
     methods: () => ({[_initCustomEvent]: [dart.void, [core.String, core.bool, core.bool, core.Object]]})
   });
-  CustomEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('CustomEvent')), dart.const(new _js_helper.Native("CustomEvent"))];
+  CustomEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('CustomEvent')), dart.const(new _js_helper.Native("CustomEvent"))], 'fields', dart.map(['_dartDetail', [dart.const(new _js_helper.Creates('Null'))], '_get__detail', [dart.const(new _js_helper.JSName('detail')), dart.const(new _metadata.DomName('CustomEvent._detail')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Creates('Null'))]]), 'properties', dart.map(['detail', [dart.const(new _metadata.DomName('CustomEvent.detail'))], '_detail', [dart.const(new _metadata.DomName('CustomEvent._detail')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   CustomEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.CustomEvent, CustomEvent);
   class DListElement extends HtmlElement {
@@ -10938,7 +11209,7 @@
       created: [DListElement, []]
     })
   });
-  DListElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDListElement')), dart.const(new _js_helper.Native("HTMLDListElement"))];
+  DListElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDListElement')), dart.const(new _js_helper.Native("HTMLDListElement"))]]);
   DListElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDListElement, DListElement);
   dart.defineExtensionNames([
@@ -10970,7 +11241,7 @@
       created: [DataListElement, []]
     })
   });
-  DataListElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDataListElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLDataListElement"))];
+  DataListElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDataListElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLDataListElement"))], 'fields', dart.map(['options', [dart.const(new _metadata.DomName('HTMLDataListElement.options')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))]])]);
   DataListElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDataListElement, DataListElement);
   dart.defineExtensionNames([
@@ -11031,7 +11302,7 @@
       [dartx.setDragImage]: [dart.void, [Element, core.int, core.int]]
     })
   });
-  DataTransfer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransfer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransfer"))];
+  DataTransfer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransfer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransfer"))], 'fields', dart.map(['dropEffect', [dart.const(new _metadata.DomName('DataTransfer.dropEffect')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'effectAllowed', [dart.const(new _metadata.DomName('DataTransfer.effectAllowed')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'files', [dart.const(new _metadata.DomName('DataTransfer.files')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('FileList')), dart.const(new _js_helper.Creates('FileList'))], 'items', [dart.const(new _metadata.DomName('DataTransfer.items')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'types', [dart.const(new _metadata.DomName('DataTransfer.types')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DataTransfer[dart.owner] = exports;
   dart.registerExtension(dart.global.DataTransfer, DataTransfer);
   const _getAsString = Symbol('_getAsString');
@@ -11078,7 +11349,7 @@
       [dartx.getAsEntry]: [Entry, []]
     })
   });
-  DataTransferItem[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransferItem')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransferItem"))];
+  DataTransferItem[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransferItem')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransferItem"))], 'fields', dart.map(['kind', [dart.const(new _metadata.DomName('DataTransferItem.kind')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('DataTransferItem.type')), dart.const(new _metadata.DocsEditable())]])]);
   DataTransferItem[dart.owner] = exports;
   dart.registerExtension(dart.global.DataTransferItem, DataTransferItem);
   dart.defineExtensionNames([
@@ -11131,7 +11402,7 @@
       [dartx.get]: [DataTransferItem, [core.int]]
     })
   });
-  DataTransferItemList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransferItemList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransferItemList"))];
+  DataTransferItemList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DataTransferItemList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DataTransferItemList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('DataTransferItemList.length')), dart.const(new _metadata.DocsEditable())]])]);
   DataTransferItemList[dart.owner] = exports;
   dart.registerExtension(dart.global.DataTransferItemList, DataTransferItemList);
   const DatabaseCallback = dart.typedef('DatabaseCallback', () => dart.functionType(dart.void, [web_sql.SqlDatabase]));
@@ -11264,7 +11535,7 @@
       [_setTimeout]: [core.int, [core.Object, core.int]]
     })
   });
-  WorkerGlobalScope[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerGlobalScope"))];
+  WorkerGlobalScope[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerGlobalScope"))], 'fields', dart.map(['console', [dart.const(new _metadata.DomName('WorkerGlobalScope.console')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'crypto', [dart.const(new _metadata.DomName('WorkerGlobalScope.crypto')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'indexedDB', [dart.const(new _metadata.DomName('WorkerGlobalScope.indexedDB')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'location', [dart.const(new _metadata.DomName('WorkerGlobalScope.location')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'navigator', [dart.const(new _metadata.DomName('WorkerGlobalScope.navigator')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'performance', [dart.const(new _metadata.DomName('WorkerGlobalScope.performance')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'self', [dart.const(new _metadata.DomName('WorkerGlobalScope.self')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onError', [dart.const(new _metadata.DomName('WorkerGlobalScope.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   WorkerGlobalScope[dart.owner] = exports;
   WorkerGlobalScope.PERSISTENT = 1;
   WorkerGlobalScope.TEMPORARY = 0;
@@ -11311,7 +11582,7 @@
       [_postMessage_2]: [dart.void, [dart.dynamic]]
     })
   });
-  DedicatedWorkerGlobalScope[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DedicatedWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DedicatedWorkerGlobalScope"))];
+  DedicatedWorkerGlobalScope[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DedicatedWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DedicatedWorkerGlobalScope"))], 'properties', dart.map(['onMessage', [dart.const(new _metadata.DomName('DedicatedWorkerGlobalScope.onmessage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DedicatedWorkerGlobalScope[dart.owner] = exports;
   dart.defineLazyProperties(DedicatedWorkerGlobalScope, {
     get messageEvent() {
@@ -11341,7 +11612,7 @@
       [dartx.requestQuota]: [dart.void, [core.int, core.int], [StorageQuotaCallback, StorageErrorCallback]]
     })
   });
-  DeprecatedStorageInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeprecatedStorageInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeprecatedStorageInfo"))];
+  DeprecatedStorageInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeprecatedStorageInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeprecatedStorageInfo"))]]);
   DeprecatedStorageInfo[dart.owner] = exports;
   DeprecatedStorageInfo.PERSISTENT = 1;
   DeprecatedStorageInfo.TEMPORARY = 0;
@@ -11368,7 +11639,7 @@
       [dartx.requestQuota]: [dart.void, [core.int], [StorageQuotaCallback, StorageErrorCallback]]
     })
   });
-  DeprecatedStorageQuota[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeprecatedStorageQuota')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeprecatedStorageQuota"))];
+  DeprecatedStorageQuota[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeprecatedStorageQuota')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeprecatedStorageQuota"))]]);
   DeprecatedStorageQuota[dart.owner] = exports;
   dart.registerExtension(dart.global.DeprecatedStorageQuota, DeprecatedStorageQuota);
   dart.defineExtensionNames([
@@ -11403,7 +11674,7 @@
       created: [DetailsElement, []]
     })
   });
-  DetailsElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDetailsElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLDetailsElement"))];
+  DetailsElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDetailsElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLDetailsElement"))], 'fields', dart.map(['open', [dart.const(new _metadata.DomName('HTMLDetailsElement.open')), dart.const(new _metadata.DocsEditable())]])]);
   DetailsElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDetailsElement, DetailsElement);
   dart.defineExtensionNames([
@@ -11428,7 +11699,7 @@
   dart.setSignature(DeviceAcceleration, {
     constructors: () => ({_: [DeviceAcceleration, []]})
   });
-  DeviceAcceleration[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceAcceleration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceAcceleration"))];
+  DeviceAcceleration[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceAcceleration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceAcceleration"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('DeviceAcceleration.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('DeviceAcceleration.y')), dart.const(new _metadata.DocsEditable())], 'z', [dart.const(new _metadata.DomName('DeviceAcceleration.z')), dart.const(new _metadata.DocsEditable())]])]);
   DeviceAcceleration[dart.owner] = exports;
   dart.registerExtension(dart.global.DeviceAcceleration, DeviceAcceleration);
   dart.defineExtensionNames([
@@ -11445,7 +11716,7 @@
   dart.setSignature(DeviceLightEvent, {
     constructors: () => ({_: [DeviceLightEvent, []]})
   });
-  DeviceLightEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceLightEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceLightEvent"))];
+  DeviceLightEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceLightEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceLightEvent"))], 'fields', dart.map(['value', [dart.const(new _metadata.DomName('DeviceLightEvent.value')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DeviceLightEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.DeviceLightEvent, DeviceLightEvent);
   dart.defineExtensionNames([
@@ -11479,7 +11750,7 @@
     constructors: () => ({_: [DeviceMotionEvent, []]}),
     methods: () => ({[dartx.initDeviceMotionEvent]: [dart.void, [core.String, core.bool, core.bool, DeviceAcceleration, DeviceAcceleration, DeviceRotationRate, core.num]]})
   });
-  DeviceMotionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceMotionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceMotionEvent"))];
+  DeviceMotionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceMotionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceMotionEvent"))], 'fields', dart.map(['acceleration', [dart.const(new _metadata.DomName('DeviceMotionEvent.acceleration')), dart.const(new _metadata.DocsEditable())], 'accelerationIncludingGravity', [dart.const(new _metadata.DomName('DeviceMotionEvent.accelerationIncludingGravity')), dart.const(new _metadata.DocsEditable())], 'interval', [dart.const(new _metadata.DomName('DeviceMotionEvent.interval')), dart.const(new _metadata.DocsEditable())], 'rotationRate', [dart.const(new _metadata.DomName('DeviceMotionEvent.rotationRate')), dart.const(new _metadata.DocsEditable())]])]);
   DeviceMotionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.DeviceMotionEvent, DeviceMotionEvent);
   const _initDeviceOrientationEvent = Symbol('_initDeviceOrientationEvent');
@@ -11527,7 +11798,7 @@
     }),
     methods: () => ({[_initDeviceOrientationEvent]: [dart.void, [core.String, core.bool, core.bool, core.num, core.num, core.num, core.bool]]})
   });
-  DeviceOrientationEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('DeviceOrientationEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceOrientationEvent"))];
+  DeviceOrientationEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('DeviceOrientationEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceOrientationEvent"))], 'fields', dart.map(['absolute', [dart.const(new _metadata.DomName('DeviceOrientationEvent.absolute')), dart.const(new _metadata.DocsEditable())], 'alpha', [dart.const(new _metadata.DomName('DeviceOrientationEvent.alpha')), dart.const(new _metadata.DocsEditable())], 'beta', [dart.const(new _metadata.DomName('DeviceOrientationEvent.beta')), dart.const(new _metadata.DocsEditable())], 'gamma', [dart.const(new _metadata.DomName('DeviceOrientationEvent.gamma')), dart.const(new _metadata.DocsEditable())]])]);
   DeviceOrientationEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.DeviceOrientationEvent, DeviceOrientationEvent);
   dart.defineExtensionNames([
@@ -11552,7 +11823,7 @@
   dart.setSignature(DeviceRotationRate, {
     constructors: () => ({_: [DeviceRotationRate, []]})
   });
-  DeviceRotationRate[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceRotationRate')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceRotationRate"))];
+  DeviceRotationRate[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DeviceRotationRate')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DeviceRotationRate"))], 'fields', dart.map(['alpha', [dart.const(new _metadata.DomName('DeviceRotationRate.alpha')), dart.const(new _metadata.DocsEditable())], 'beta', [dart.const(new _metadata.DomName('DeviceRotationRate.beta')), dart.const(new _metadata.DocsEditable())], 'gamma', [dart.const(new _metadata.DomName('DeviceRotationRate.gamma')), dart.const(new _metadata.DocsEditable())]])]);
   DeviceRotationRate[dart.owner] = exports;
   dart.registerExtension(dart.global.DeviceRotationRate, DeviceRotationRate);
   dart.defineExtensionNames([
@@ -11605,7 +11876,7 @@
       [dartx.showModal]: [dart.void, []]
     })
   });
-  DialogElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDialogElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLDialogElement"))];
+  DialogElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDialogElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLDialogElement"))], 'fields', dart.map(['open', [dart.const(new _metadata.DomName('HTMLDialogElement.open')), dart.const(new _metadata.DocsEditable())], 'returnValue', [dart.const(new _metadata.DomName('HTMLDialogElement.returnValue')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DialogElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDialogElement, DialogElement);
   const _getDirectory = Symbol('_getDirectory');
@@ -11740,7 +12011,7 @@
       [dartx.toUrl]: [core.String, []]
     })
   });
-  Entry[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Entry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Entry"))];
+  Entry[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Entry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Entry"))], 'fields', dart.map(['filesystem', [dart.const(new _metadata.DomName('Entry.filesystem')), dart.const(new _metadata.DocsEditable())], 'fullPath', [dart.const(new _metadata.DomName('Entry.fullPath')), dart.const(new _metadata.DocsEditable())], 'isDirectory', [dart.const(new _metadata.DomName('Entry.isDirectory')), dart.const(new _metadata.DocsEditable())], 'isFile', [dart.const(new _metadata.DomName('Entry.isFile')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('Entry.name')), dart.const(new _metadata.DocsEditable())]])]);
   Entry[dart.owner] = exports;
   dart.registerExtension(dart.global.Entry, Entry);
   dart.defineExtensionNames([
@@ -11897,7 +12168,7 @@
       [dartx.removeRecursively]: [async.Future, []]
     })
   });
-  DirectoryEntry[dart.metadata] = () => [dart.const(new _metadata.DomName('DirectoryEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryEntry"))];
+  DirectoryEntry[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('DirectoryEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryEntry"))]]);
   DirectoryEntry[dart.owner] = exports;
   dart.registerExtension(dart.global.DirectoryEntry, DirectoryEntry);
   const _readEntries = Symbol('_readEntries');
@@ -11928,7 +12199,7 @@
       [dartx.readEntries]: [async.Future$(core.List$(Entry)), []]
     })
   });
-  DirectoryReader[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryReader')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryReader"))];
+  DirectoryReader[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryReader')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryReader"))]]);
   DirectoryReader[dart.owner] = exports;
   dart.registerExtension(dart.global.DirectoryReader, DirectoryReader);
   class DivElement extends HtmlElement {
@@ -11950,7 +12221,7 @@
       created: [DivElement, []]
     })
   });
-  DivElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDivElement')), dart.const(new _js_helper.Native("HTMLDivElement"))];
+  DivElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDivElement')), dart.const(new _js_helper.Native("HTMLDivElement"))]]);
   DivElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDivElement, DivElement);
   const _body = Symbol('_body');
@@ -12600,7 +12871,7 @@
       [_createTreeWalker]: [TreeWalker, [Node], [core.int, NodeFilter]]
     })
   });
-  Document[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Document')), dart.const(new _js_helper.Native("Document"))];
+  Document[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Document')), dart.const(new _js_helper.Native("Document"))], 'fields', dart.map(['activeElement', [dart.const(new _metadata.DomName('Document.activeElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_body', [dart.const(new _js_helper.JSName('body')), dart.const(new _metadata.DomName('Document.body')), dart.const(new _metadata.DocsEditable())], 'contentType', [dart.const(new _metadata.DomName('Document.contentType')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'cookie', [dart.const(new _metadata.DomName('Document.cookie')), dart.const(new _metadata.DocsEditable())], 'currentScript', [dart.const(new _metadata.DomName('Document.currentScript')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_window', [dart.const(new _js_helper.JSName('defaultView')), dart.const(new _metadata.DomName('Document.window')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object')), dart.const(new _js_helper.Creates('Window|=Object|Null')), dart.const(new _js_helper.Returns('Window|=Object|Null'))], 'documentElement', [dart.const(new _metadata.DomName('Document.documentElement')), dart.const(new _metadata.DocsEditable())], 'domain', [dart.const(new _metadata.DomName('Document.domain')), dart.const(new _metadata.DocsEditable())], 'fonts', [dart.const(new _metadata.DomName('Document.fonts')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fullscreenElement', [dart.const(new _metadata.DomName('Document.fullscreenElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fullscreenEnabled', [dart.const(new _metadata.DomName('Document.fullscreenEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_head', [dart.const(new _js_helper.JSName('head')), dart.const(new _metadata.DomName('Document.head')), dart.const(new _metadata.DocsEditable())], 'hidden', [dart.const(new _metadata.DomName('Document.hidden')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'implementation', [dart.const(new _metadata.DomName('Document.implementation')), dart.const(new _metadata.DocsEditable())], '_lastModified', [dart.const(new _js_helper.JSName('lastModified')), dart.const(new _metadata.DomName('Document.lastModified')), dart.const(new _metadata.DocsEditable())], 'pointerLockElement', [dart.const(new _metadata.DomName('Document.pointerLockElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_preferredStylesheetSet', [dart.const(new _js_helper.JSName('preferredStylesheetSet')), dart.const(new _metadata.DomName('Document.preferredStylesheetSet')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('Document.readyState')), dart.const(new _metadata.DocsEditable())], '_referrer', [dart.const(new _js_helper.JSName('referrer')), dart.const(new _metadata.DomName('Document.referrer')), dart.const(new _metadata.DocsEditable())], 'rootElement', [dart.const(new _metadata.DomName('Document.rootElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_selectedStylesheetSet', [dart.const(new _js_helper.JSName('selectedStylesheetSet')), dart.const(new _metadata.DomName('Document.selectedStylesheetSet')), dart.const(new _metadata.DocsEditable())], '_styleSheets', [dart.const(new _js_helper.JSName('styleSheets')), dart.const(new _metadata.DomName('Document.styleSheets')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('_StyleSheetList')), dart.const(new _js_helper.Creates('_StyleSheetList'))], 'timeline', [dart.const(new _metadata.DomName('Document.timeline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_title', [dart.const(new _js_helper.JSName('title')), dart.const(new _metadata.DomName('Document.title')), dart.const(new _metadata.DocsEditable())], 'visibilityState', [dart.const(new _metadata.DomName('Document.visibilityState')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_webkitFullscreenElement', [dart.const(new _js_helper.JSName('webkitFullscreenElement')), dart.const(new _metadata.DomName('Document.webkitFullscreenElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_webkitFullscreenEnabled', [dart.const(new _js_helper.JSName('webkitFullscreenEnabled')), dart.const(new _metadata.DomName('Document.webkitFullscreenEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_webkitHidden', [dart.const(new _js_helper.JSName('webkitHidden')), dart.const(new _metadata.DomName('Document.webkitHidden')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_webkitVisibilityState', [dart.const(new _js_helper.JSName('webkitVisibilityState')), dart.const(new _metadata.DomName('Document.webkitVisibilityState')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_childElementCount', [dart.const(new _js_helper.JSName('childElementCount')), dart.const(new _metadata.DomName('Document.childElementCount')), dart.const(new _metadata.DocsEditable())], '_children', [dart.const(new _js_helper.JSName('children')), dart.const(new _metadata.DomName('Document.children')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], '_firstElementChild', [dart.const(new _js_helper.JSName('firstElementChild')), dart.const(new _metadata.DomName('Document.firstElementChild')), dart.const(new _metadata.DocsEditable())], '_lastElementChild', [dart.const(new _js_helper.JSName('lastElementChild')), dart.const(new _metadata.DomName('Document.lastElementChild')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['window', [dart.const(new _metadata.DomName('Document.window')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onAbort', [dart.const(new _metadata.DomName('Document.onabort')), dart.const(new _metadata.DocsEditable())], 'onBeforeCopy', [dart.const(new _metadata.DomName('Document.onbeforecopy')), dart.const(new _metadata.DocsEditable())], 'onBeforeCut', [dart.const(new _metadata.DomName('Document.onbeforecut')), dart.const(new _metadata.DocsEditable())], 'onBeforePaste', [dart.const(new _metadata.DomName('Document.onbeforepaste')), dart.const(new _metadata.DocsEditable())], 'onBlur', [dart.const(new _metadata.DomName('Document.onblur')), dart.const(new _metadata.DocsEditable())], 'onCanPlay', [dart.const(new _metadata.DomName('Document.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('Document.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('Document.onchange')), dart.const(new _metadata.DocsEditable())], 'onClick', [dart.const(new _metadata.DomName('Document.onclick')), dart.const(new _metadata.DocsEditable())], 'onContextMenu', [dart.const(new _metadata.DomName('Document.oncontextmenu')), dart.const(new _metadata.DocsEditable())], 'onCopy', [dart.const(new _metadata.DomName('Document.oncopy')), dart.const(new _metadata.DocsEditable())], 'onCut', [dart.const(new _metadata.DomName('Document.oncut')), dart.const(new _metadata.DocsEditable())], 'onDoubleClick', [dart.const(new _metadata.DomName('Document.ondblclick')), dart.const(new _metadata.DocsEditable())], 'onDrag', [dart.const(new _metadata.DomName('Document.ondrag')), dart.const(new _metadata.DocsEditable())], 'onDragEnd', [dart.const(new _metadata.DomName('Document.ondragend')), dart.const(new _metadata.DocsEditable())], 'onDragEnter', [dart.const(new _metadata.DomName('Document.ondragenter')), dart.const(new _metadata.DocsEditable())], 'onDragLeave', [dart.const(new _metadata.DomName('Document.ondragleave')), dart.const(new _metadata.DocsEditable())], 'onDragOver', [dart.const(new _metadata.DomName('Document.ondragover')), dart.const(new _metadata.DocsEditable())], 'onDragStart', [dart.const(new _metadata.DomName('Document.ondragstart')), dart.const(new _metadata.DocsEditable())], 'onDrop', [dart.const(new _metadata.DomName('Document.ondrop')), dart.const(new _metadata.DocsEditable())], 'onDurationChange', [dart.const(new _metadata.DomName('Document.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('Document.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('Document.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('Document.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('Document.onfocus')), dart.const(new _metadata.DocsEditable())], 'onInput', [dart.const(new _metadata.DomName('Document.oninput')), dart.const(new _metadata.DocsEditable())], 'onInvalid', [dart.const(new _metadata.DomName('Document.oninvalid')), dart.const(new _metadata.DocsEditable())], 'onKeyDown', [dart.const(new _metadata.DomName('Document.onkeydown')), dart.const(new _metadata.DocsEditable())], 'onKeyPress', [dart.const(new _metadata.DomName('Document.onkeypress')), dart.const(new _metadata.DocsEditable())], 'onKeyUp', [dart.const(new _metadata.DomName('Document.onkeyup')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('Document.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadedData', [dart.const(new _metadata.DomName('Document.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('Document.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('Document.onmousedown')), dart.const(new _metadata.DocsEditable())], 'onMouseEnter', [dart.const(new _metadata.DomName('Document.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('Document.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('Document.onmousemove')), dart.const(new _metadata.DocsEditable())], 'onMouseOut', [dart.const(new _metadata.DomName('Document.onmouseout')), dart.const(new _metadata.DocsEditable())], 'onMouseOver', [dart.const(new _metadata.DomName('Document.onmouseover')), dart.const(new _metadata.DocsEditable())], 'onMouseUp', [dart.const(new _metadata.DomName('Document.onmouseup')), dart.const(new _metadata.DocsEditable())], 'onMouseWheel', [dart.const(new _metadata.DomName('Document.onmousewheel')), dart.const(new _metadata.DocsEditable())], 'onPaste', [dart.const(new _metadata.DomName('Document.onpaste')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('Document.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('Document.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('Document.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPointerLockChange', [dart.const(new _metadata.DomName('Document.onpointerlockchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPointerLockError', [dart.const(new _metadata.DomName('Document.onpointerlockerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('Document.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReadyStateChange', [dart.const(new _metadata.DomName('Document.onreadystatechange')), dart.const(new _metadata.DocsEditable())], 'onReset', [dart.const(new _metadata.DomName('Document.onreset')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('Document.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('Document.onscroll')), dart.const(new _metadata.DocsEditable())], 'onSearch', [dart.const(new _metadata.DomName('Document.onsearch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSecurityPolicyViolation', [dart.const(new _metadata.DomName('Document.onsecuritypolicyviolation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('Document.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('Document.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('Document.onselect')), dart.const(new _metadata.DocsEditable())], 'onSelectionChange', [dart.const(new _metadata.DomName('Document.onselectionchange')), dart.const(new _metadata.DocsEditable())], 'onSelectStart', [dart.const(new _metadata.DomName('Document.onselectstart')), dart.const(new _metadata.DocsEditable())], 'onStalled', [dart.const(new _metadata.DomName('Document.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('Document.onsubmit')), dart.const(new _metadata.DocsEditable())], 'onSuspend', [dart.const(new _metadata.DomName('Document.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('Document.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchCancel', [dart.const(new _metadata.DomName('Document.ontouchcancel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnd', [dart.const(new _metadata.DomName('Document.ontouchend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchMove', [dart.const(new _metadata.DomName('Document.ontouchmove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchStart', [dart.const(new _metadata.DomName('Document.ontouchstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onVolumeChange', [dart.const(new _metadata.DomName('Document.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('Document.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenChange', [dart.const(new _metadata.DomName('Document.onwebkitfullscreenchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenError', [dart.const(new _metadata.DomName('Document.onwebkitfullscreenerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'supportsRegister', [core.deprecated]])]);
   Document[dart.owner] = exports;
   dart.defineLazyProperties(Document, {
     get pointerLockChangeEvent() {
@@ -12744,7 +13015,7 @@
       [_querySelectorAll]: [core.List$(Node), [core.String]]
     })
   });
-  DocumentFragment[dart.metadata] = () => [dart.const(new _metadata.DomName('DocumentFragment')), dart.const(new _js_helper.Native("DocumentFragment"))];
+  DocumentFragment[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('DocumentFragment')), dart.const(new _js_helper.Native("DocumentFragment"))], 'fields', dart.map(['_docChildren', [dart.const(new _js_helper.Creates('Null'))], '_childElementCount', [dart.const(new _js_helper.JSName('childElementCount')), dart.const(new _metadata.DomName('DocumentFragment.childElementCount')), dart.const(new _metadata.DocsEditable())], '_firstElementChild', [dart.const(new _js_helper.JSName('firstElementChild')), dart.const(new _metadata.DomName('DocumentFragment.firstElementChild')), dart.const(new _metadata.DocsEditable())], '_lastElementChild', [dart.const(new _js_helper.JSName('lastElementChild')), dart.const(new _metadata.DomName('DocumentFragment.lastElementChild')), dart.const(new _metadata.DocsEditable())]])]);
   DocumentFragment[dart.owner] = exports;
   dart.registerExtension(dart.global.DocumentFragment, DocumentFragment);
   dart.defineExtensionNames([
@@ -12786,7 +13057,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  DomError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMError')), dart.const(new _js_helper.Native("DOMError"))];
+  DomError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMError')), dart.const(new _js_helper.Native("DOMError"))], 'fields', dart.map(['message', [dart.const(new _metadata.DomName('DOMError.message')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'name', [dart.const(new _metadata.DomName('DOMError.name')), dart.const(new _metadata.DocsEditable())]])]);
   DomError[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMError, DomError);
   dart.defineExtensionNames([
@@ -12814,7 +13085,7 @@
   dart.setSignature(DomException, {
     constructors: () => ({_: [DomException, []]})
   });
-  DomException[dart.metadata] = () => [dart.const(new _metadata.DomName('DOMException')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("DOMException"))];
+  DomException[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('DOMException')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("DOMException"))], 'fields', dart.map(['message', [dart.const(new _metadata.DomName('DOMException.message')), dart.const(new _metadata.DocsEditable())]])]);
   DomException[dart.owner] = exports;
   DomException.INDEX_SIZE = 'IndexSizeError';
   DomException.HIERARCHY_REQUEST = 'HierarchyRequestError';
@@ -12870,7 +13141,7 @@
       [dartx.hasFeature]: [core.bool, [core.String, core.String]]
     })
   });
-  DomImplementation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMImplementation')), dart.const(new _js_helper.Native("DOMImplementation"))];
+  DomImplementation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMImplementation')), dart.const(new _js_helper.Native("DOMImplementation"))]]);
   DomImplementation[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMImplementation, DomImplementation);
   dart.defineExtensionNames([
@@ -12888,7 +13159,7 @@
     constructors: () => ({_: [DomIterator, []]}),
     methods: () => ({[dartx.next]: [core.Object, [], [core.Object]]})
   });
-  DomIterator[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Iterator')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Iterator"))];
+  DomIterator[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Iterator')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Iterator"))]]);
   DomIterator[dart.owner] = exports;
   dart.registerExtension(dart.global.Iterator, DomIterator);
   dart.defineExtensionNames([
@@ -13034,7 +13305,7 @@
       [dartx.translate]: [DomMatrix, [core.num, core.num], [core.num]]
     })
   });
-  DomMatrixReadOnly[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMMatrixReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMMatrixReadOnly"))];
+  DomMatrixReadOnly[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMMatrixReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMMatrixReadOnly"))], 'fields', dart.map(['a', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.a')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'b', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.b')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'c', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.c')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'd', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.d')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'e', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.e')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'f', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.f')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'is2D', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.is2D')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'isIdentity', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.isIdentity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm11', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m11')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm12', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m12')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm13', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m13')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm14', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m14')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm21', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m21')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm22', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m22')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm23', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m23')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm24', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m24')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm31', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m31')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm32', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m32')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm33', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m33')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm34', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m34')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm41', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m41')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm42', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m42')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm43', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m43')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'm44', [dart.const(new _metadata.DomName('DOMMatrixReadOnly.m44')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DomMatrixReadOnly[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMMatrixReadOnly, DomMatrixReadOnly);
   dart.defineExtensionNames([
@@ -13279,7 +13550,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  DomMatrix[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMMatrix')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMMatrix"))];
+  DomMatrix[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMMatrix')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMMatrix"))]]);
   DomMatrix[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMMatrix, DomMatrix);
   dart.defineExtensionNames([
@@ -13308,7 +13579,7 @@
     statics: () => ({_create_1: [DomParser, []]}),
     names: ['_create_1']
   });
-  DomParser[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMParser')), dart.const(new _js_helper.Native("DOMParser"))];
+  DomParser[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMParser')), dart.const(new _js_helper.Native("DOMParser"))]]);
   DomParser[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMParser, DomParser);
   dart.defineExtensionNames([
@@ -13348,7 +13619,7 @@
     statics: () => ({_create_1: [DomPointReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  DomPointReadOnly[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMPointReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMPointReadOnly"))];
+  DomPointReadOnly[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMPointReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMPointReadOnly"))], 'fields', dart.map(['w', [dart.const(new _metadata.DomName('DOMPointReadOnly.w')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'x', [dart.const(new _metadata.DomName('DOMPointReadOnly.x')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'y', [dart.const(new _metadata.DomName('DOMPointReadOnly.y')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'z', [dart.const(new _metadata.DomName('DOMPointReadOnly.z')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DomPointReadOnly[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMPointReadOnly, DomPointReadOnly);
   dart.defineExtensionNames([
@@ -13445,7 +13716,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
   });
-  DomPoint[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMPoint')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMPoint"))];
+  DomPoint[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMPoint')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMPoint"))]]);
   DomPoint[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMPoint, DomPoint);
   dart.defineExtensionNames([
@@ -13571,7 +13842,7 @@
     statics: () => ({_create_1: [DomRectReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  DomRectReadOnly[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMRectReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMRectReadOnly"))];
+  DomRectReadOnly[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMRectReadOnly')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMRectReadOnly"))], 'fields', dart.map(['bottom', [dart.const(new _metadata.DomName('DOMRectReadOnly.bottom')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'height', [dart.const(new _metadata.DomName('DOMRectReadOnly.height')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'left', [dart.const(new _metadata.DomName('DOMRectReadOnly.left')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'right', [dart.const(new _metadata.DomName('DOMRectReadOnly.right')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'top', [dart.const(new _metadata.DomName('DOMRectReadOnly.top')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('DOMRectReadOnly.width')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'x', [dart.const(new _metadata.DomName('DOMRectReadOnly.x')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'y', [dart.const(new _metadata.DomName('DOMRectReadOnly.y')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   DomRectReadOnly[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMRectReadOnly, DomRectReadOnly);
   dart.defineExtensionNames([
@@ -13615,7 +13886,7 @@
       [dartx.toggle]: [core.bool, [core.String], [core.bool]]
     })
   });
-  DomTokenList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMTokenList')), dart.const(new _js_helper.Native("DOMTokenList"))];
+  DomTokenList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMTokenList')), dart.const(new _js_helper.Native("DOMTokenList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('DOMTokenList.length')), dart.const(new _metadata.DocsEditable())]])]);
   DomTokenList[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMTokenList, DomTokenList);
   dart.defineExtensionNames([
@@ -13639,7 +13910,7 @@
     constructors: () => ({_: [DomSettableTokenList, []]}),
     methods: () => ({[__getter__]: [core.String, [core.int]]})
   });
-  DomSettableTokenList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMSettableTokenList')), dart.const(new _js_helper.Native("DOMSettableTokenList"))];
+  DomSettableTokenList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMSettableTokenList')), dart.const(new _js_helper.Native("DOMSettableTokenList"))], 'fields', dart.map(['value', [dart.const(new _metadata.DomName('DOMSettableTokenList.value')), dart.const(new _metadata.DocsEditable())]])]);
   DomSettableTokenList[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMSettableTokenList, DomSettableTokenList);
   const ImmutableListMixin$ = dart.generic(function(E) {
@@ -13849,7 +14120,7 @@
       [dartx.item]: [core.String, [core.int]]
     })
   });
-  DomStringList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMStringList')), dart.const(new _js_helper.Native("DOMStringList"))];
+  DomStringList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMStringList')), dart.const(new _js_helper.Native("DOMStringList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('DOMStringList.length')), dart.const(new _metadata.DocsEditable())]])]);
   DomStringList[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMStringList, DomStringList);
   class DomStringMap extends _interceptors.Interceptor {
@@ -13860,7 +14131,7 @@
   dart.setSignature(DomStringMap, {
     constructors: () => ({_: [DomStringMap, []]})
   });
-  DomStringMap[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMStringMap'))];
+  DomStringMap[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMStringMap'))]]);
   DomStringMap[dart.owner] = exports;
   const _childElements = Symbol('_childElements');
   const _element = Symbol('_element');
@@ -14049,6 +14320,7 @@
   _ChildrenElementList[dart.owner] = exports;
   const ElementList$ = dart.generic(function(T) {
     class ElementList extends collection.ListBase$(T) {}
+    ElementList[dart.metadata] = () => dart.map(['properties', dart.map(['contentEdge', [dart.const(new _metadata.Experimental())], 'paddingEdge', [dart.const(new _metadata.Experimental())], 'borderEdge', [dart.const(new _metadata.Experimental())], 'marginEdge', [dart.const(new _metadata.Experimental())], 'onAbort', [dart.const(new _metadata.DomName('Element.onabort')), dart.const(new _metadata.DocsEditable())], 'onBeforeCopy', [dart.const(new _metadata.DomName('Element.onbeforecopy')), dart.const(new _metadata.DocsEditable())], 'onBeforeCut', [dart.const(new _metadata.DomName('Element.onbeforecut')), dart.const(new _metadata.DocsEditable())], 'onBeforePaste', [dart.const(new _metadata.DomName('Element.onbeforepaste')), dart.const(new _metadata.DocsEditable())], 'onBlur', [dart.const(new _metadata.DomName('Element.onblur')), dart.const(new _metadata.DocsEditable())], 'onCanPlay', [dart.const(new _metadata.DomName('Element.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('Element.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('Element.onchange')), dart.const(new _metadata.DocsEditable())], 'onClick', [dart.const(new _metadata.DomName('Element.onclick')), dart.const(new _metadata.DocsEditable())], 'onContextMenu', [dart.const(new _metadata.DomName('Element.oncontextmenu')), dart.const(new _metadata.DocsEditable())], 'onCopy', [dart.const(new _metadata.DomName('Element.oncopy')), dart.const(new _metadata.DocsEditable())], 'onCut', [dart.const(new _metadata.DomName('Element.oncut')), dart.const(new _metadata.DocsEditable())], 'onDoubleClick', [dart.const(new _metadata.DomName('Element.ondblclick')), dart.const(new _metadata.DocsEditable())], 'onDrag', [dart.const(new _metadata.DomName('Element.ondrag')), dart.const(new _metadata.DocsEditable())], 'onDragEnd', [dart.const(new _metadata.DomName('Element.ondragend')), dart.const(new _metadata.DocsEditable())], 'onDragEnter', [dart.const(new _metadata.DomName('Element.ondragenter')), dart.const(new _metadata.DocsEditable())], 'onDragLeave', [dart.const(new _metadata.DomName('Element.ondragleave')), dart.const(new _metadata.DocsEditable())], 'onDragOver', [dart.const(new _metadata.DomName('Element.ondragover')), dart.const(new _metadata.DocsEditable())], 'onDragStart', [dart.const(new _metadata.DomName('Element.ondragstart')), dart.const(new _metadata.DocsEditable())], 'onDrop', [dart.const(new _metadata.DomName('Element.ondrop')), dart.const(new _metadata.DocsEditable())], 'onDurationChange', [dart.const(new _metadata.DomName('Element.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('Element.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('Element.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('Element.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('Element.onfocus')), dart.const(new _metadata.DocsEditable())], 'onInput', [dart.const(new _metadata.DomName('Element.oninput')), dart.const(new _metadata.DocsEditable())], 'onInvalid', [dart.const(new _metadata.DomName('Element.oninvalid')), dart.const(new _metadata.DocsEditable())], 'onKeyDown', [dart.const(new _metadata.DomName('Element.onkeydown')), dart.const(new _metadata.DocsEditable())], 'onKeyPress', [dart.const(new _metadata.DomName('Element.onkeypress')), dart.const(new _metadata.DocsEditable())], 'onKeyUp', [dart.const(new _metadata.DomName('Element.onkeyup')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('Element.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadedData', [dart.const(new _metadata.DomName('Element.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('Element.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('Element.onmousedown')), dart.const(new _metadata.DocsEditable())], 'onMouseEnter', [dart.const(new _metadata.DomName('Element.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('Element.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('Element.onmousemove')), dart.const(new _metadata.DocsEditable())], 'onMouseOut', [dart.const(new _metadata.DomName('Element.onmouseout')), dart.const(new _metadata.DocsEditable())], 'onMouseOver', [dart.const(new _metadata.DomName('Element.onmouseover')), dart.const(new _metadata.DocsEditable())], 'onMouseUp', [dart.const(new _metadata.DomName('Element.onmouseup')), dart.const(new _metadata.DocsEditable())], 'onMouseWheel', [dart.const(new _metadata.DomName('Element.onmousewheel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPaste', [dart.const(new _metadata.DomName('Element.onpaste')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('Element.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('Element.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('Element.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('Element.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReset', [dart.const(new _metadata.DomName('Element.onreset')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('Element.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('Element.onscroll')), dart.const(new _metadata.DocsEditable())], 'onSearch', [dart.const(new _metadata.DomName('Element.onsearch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('Element.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('Element.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('Element.onselect')), dart.const(new _metadata.DocsEditable())], 'onSelectStart', [dart.const(new _metadata.DomName('Element.onselectstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStalled', [dart.const(new _metadata.DomName('Element.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('Element.onsubmit')), dart.const(new _metadata.DocsEditable())], 'onSuspend', [dart.const(new _metadata.DomName('Element.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('Element.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchCancel', [dart.const(new _metadata.DomName('Element.ontouchcancel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnd', [dart.const(new _metadata.DomName('Element.ontouchend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnter', [dart.const(new _metadata.DomName('Element.ontouchenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchLeave', [dart.const(new _metadata.DomName('Element.ontouchleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchMove', [dart.const(new _metadata.DomName('Element.ontouchmove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchStart', [dart.const(new _metadata.DomName('Element.ontouchstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTransitionEnd', [dart.const(new _metadata.DomName('Element.ontransitionend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'onVolumeChange', [dart.const(new _metadata.DomName('Element.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('Element.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenChange', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenError', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
     ElementList[dart.owner] = exports;
     return ElementList;
   });
@@ -14342,6 +14614,7 @@
     'last',
     'single'
   ]);
+  _FrozenElementList[dart.metadata] = () => dart.map(['properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('Element.onabort')), dart.const(new _metadata.DocsEditable())], 'onBeforeCopy', [dart.const(new _metadata.DomName('Element.onbeforecopy')), dart.const(new _metadata.DocsEditable())], 'onBeforeCut', [dart.const(new _metadata.DomName('Element.onbeforecut')), dart.const(new _metadata.DocsEditable())], 'onBeforePaste', [dart.const(new _metadata.DomName('Element.onbeforepaste')), dart.const(new _metadata.DocsEditable())], 'onBlur', [dart.const(new _metadata.DomName('Element.onblur')), dart.const(new _metadata.DocsEditable())], 'onCanPlay', [dart.const(new _metadata.DomName('Element.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('Element.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('Element.onchange')), dart.const(new _metadata.DocsEditable())], 'onClick', [dart.const(new _metadata.DomName('Element.onclick')), dart.const(new _metadata.DocsEditable())], 'onContextMenu', [dart.const(new _metadata.DomName('Element.oncontextmenu')), dart.const(new _metadata.DocsEditable())], 'onCopy', [dart.const(new _metadata.DomName('Element.oncopy')), dart.const(new _metadata.DocsEditable())], 'onCut', [dart.const(new _metadata.DomName('Element.oncut')), dart.const(new _metadata.DocsEditable())], 'onDoubleClick', [dart.const(new _metadata.DomName('Element.ondblclick')), dart.const(new _metadata.DocsEditable())], 'onDrag', [dart.const(new _metadata.DomName('Element.ondrag')), dart.const(new _metadata.DocsEditable())], 'onDragEnd', [dart.const(new _metadata.DomName('Element.ondragend')), dart.const(new _metadata.DocsEditable())], 'onDragEnter', [dart.const(new _metadata.DomName('Element.ondragenter')), dart.const(new _metadata.DocsEditable())], 'onDragLeave', [dart.const(new _metadata.DomName('Element.ondragleave')), dart.const(new _metadata.DocsEditable())], 'onDragOver', [dart.const(new _metadata.DomName('Element.ondragover')), dart.const(new _metadata.DocsEditable())], 'onDragStart', [dart.const(new _metadata.DomName('Element.ondragstart')), dart.const(new _metadata.DocsEditable())], 'onDrop', [dart.const(new _metadata.DomName('Element.ondrop')), dart.const(new _metadata.DocsEditable())], 'onDurationChange', [dart.const(new _metadata.DomName('Element.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('Element.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('Element.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('Element.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('Element.onfocus')), dart.const(new _metadata.DocsEditable())], 'onInput', [dart.const(new _metadata.DomName('Element.oninput')), dart.const(new _metadata.DocsEditable())], 'onInvalid', [dart.const(new _metadata.DomName('Element.oninvalid')), dart.const(new _metadata.DocsEditable())], 'onKeyDown', [dart.const(new _metadata.DomName('Element.onkeydown')), dart.const(new _metadata.DocsEditable())], 'onKeyPress', [dart.const(new _metadata.DomName('Element.onkeypress')), dart.const(new _metadata.DocsEditable())], 'onKeyUp', [dart.const(new _metadata.DomName('Element.onkeyup')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('Element.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadedData', [dart.const(new _metadata.DomName('Element.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('Element.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('Element.onmousedown')), dart.const(new _metadata.DocsEditable())], 'onMouseEnter', [dart.const(new _metadata.DomName('Element.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('Element.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('Element.onmousemove')), dart.const(new _metadata.DocsEditable())], 'onMouseOut', [dart.const(new _metadata.DomName('Element.onmouseout')), dart.const(new _metadata.DocsEditable())], 'onMouseOver', [dart.const(new _metadata.DomName('Element.onmouseover')), dart.const(new _metadata.DocsEditable())], 'onMouseUp', [dart.const(new _metadata.DomName('Element.onmouseup')), dart.const(new _metadata.DocsEditable())], 'onMouseWheel', [dart.const(new _metadata.DomName('Element.onmousewheel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPaste', [dart.const(new _metadata.DomName('Element.onpaste')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('Element.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('Element.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('Element.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('Element.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReset', [dart.const(new _metadata.DomName('Element.onreset')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('Element.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('Element.onscroll')), dart.const(new _metadata.DocsEditable())], 'onSearch', [dart.const(new _metadata.DomName('Element.onsearch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('Element.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('Element.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('Element.onselect')), dart.const(new _metadata.DocsEditable())], 'onSelectStart', [dart.const(new _metadata.DomName('Element.onselectstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStalled', [dart.const(new _metadata.DomName('Element.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('Element.onsubmit')), dart.const(new _metadata.DocsEditable())], 'onSuspend', [dart.const(new _metadata.DomName('Element.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('Element.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchCancel', [dart.const(new _metadata.DomName('Element.ontouchcancel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnd', [dart.const(new _metadata.DomName('Element.ontouchend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnter', [dart.const(new _metadata.DomName('Element.ontouchenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchLeave', [dart.const(new _metadata.DomName('Element.ontouchleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchMove', [dart.const(new _metadata.DomName('Element.ontouchmove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchStart', [dart.const(new _metadata.DomName('Element.ontouchstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTransitionEnd', [dart.const(new _metadata.DomName('Element.ontransitionend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'onVolumeChange', [dart.const(new _metadata.DomName('Element.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('Element.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenChange', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFullscreenError', [dart.const(new _metadata.DomName('Element.onwebkitfullscreenerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   _FrozenElementList[dart.owner] = exports;
   class _ElementFactoryProvider extends core.Object {
     static createElement_tag(tag, typeExtension) {
@@ -14463,7 +14736,7 @@
       [__setter__]: [dart.void, [dart.dynamic, Node]]
     })
   });
-  EmbedElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLEmbedElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLEmbedElement"))];
+  EmbedElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLEmbedElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLEmbedElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('HTMLEmbedElement.height')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLEmbedElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'name', [dart.const(new _metadata.DomName('HTMLEmbedElement.name')), dart.const(new _metadata.DocsEditable())], 'src', [dart.const(new _metadata.DomName('HTMLEmbedElement.src')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLEmbedElement.type')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('HTMLEmbedElement.width')), dart.const(new _metadata.DocsEditable())]])]);
   EmbedElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLEmbedElement, EmbedElement);
   const _EntriesCallback = dart.typedef('_EntriesCallback', () => dart.functionType(dart.void, [core.List$(Entry)]));
@@ -14499,7 +14772,7 @@
   dart.setSignature(ErrorEvent, {
     constructors: () => ({_: [ErrorEvent, []]})
   });
-  ErrorEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ErrorEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ErrorEvent"))];
+  ErrorEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ErrorEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ErrorEvent"))], 'fields', dart.map(['colno', [dart.const(new _metadata.DomName('ErrorEvent.colno')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'error', [dart.const(new _metadata.DomName('ErrorEvent.error')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Creates('Null'))], 'filename', [dart.const(new _metadata.DomName('ErrorEvent.filename')), dart.const(new _metadata.DocsEditable())], 'lineno', [dart.const(new _metadata.DomName('ErrorEvent.lineno')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('ErrorEvent.message')), dart.const(new _metadata.DocsEditable())]])]);
   ErrorEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.ErrorEvent, ErrorEvent);
   dart.defineExtensionNames([
@@ -14569,7 +14842,7 @@
     }),
     names: ['_factoryEventSource', '_create_1', '_create_2']
   });
-  EventSource[dart.metadata] = () => [dart.const(new _metadata.DomName('EventSource')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EventSource"))];
+  EventSource[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('EventSource')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EventSource"))], 'fields', dart.map(['readyState', [dart.const(new _metadata.DomName('EventSource.readyState')), dart.const(new _metadata.DocsEditable())], 'url', [dart.const(new _metadata.DomName('EventSource.url')), dart.const(new _metadata.DocsEditable())], 'withCredentials', [dart.const(new _metadata.DomName('EventSource.withCredentials')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onError', [dart.const(new _metadata.DomName('EventSource.onerror')), dart.const(new _metadata.DocsEditable())], 'onMessage', [dart.const(new _metadata.DomName('EventSource.onmessage')), dart.const(new _metadata.DocsEditable())], 'onOpen', [dart.const(new _metadata.DomName('EventSource.onopen')), dart.const(new _metadata.DocsEditable())]])]);
   EventSource[dart.owner] = exports;
   EventSource.CLOSED = 2;
   EventSource.CONNECTING = 0;
@@ -14640,7 +14913,7 @@
     constructors: () => ({_: [ExtendableEvent, []]}),
     methods: () => ({[dartx.waitUntil]: [dart.void, [core.Object]]})
   });
-  ExtendableEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ExtendableEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ExtendableEvent"))];
+  ExtendableEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ExtendableEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ExtendableEvent"))]]);
   ExtendableEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.ExtendableEvent, ExtendableEvent);
   dart.defineExtensionNames([
@@ -14668,7 +14941,7 @@
     statics: () => ({_create_1: [FederatedCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  FederatedCredential[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FederatedCredential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FederatedCredential"))];
+  FederatedCredential[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FederatedCredential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FederatedCredential"))], 'fields', dart.map(['federation', [dart.const(new _metadata.DomName('FederatedCredential.federation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FederatedCredential[dart.owner] = exports;
   dart.registerExtension(dart.global.FederatedCredential, FederatedCredential);
   dart.defineExtensionNames([
@@ -14694,7 +14967,7 @@
     constructors: () => ({_: [FetchEvent, []]}),
     methods: () => ({[dartx.respondWith]: [dart.void, [core.Object]]})
   });
-  FetchEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FetchEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FetchEvent"))];
+  FetchEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FetchEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FetchEvent"))], 'fields', dart.map(['isReload', [dart.const(new _metadata.DomName('FetchEvent.isReload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'request', [dart.const(new _metadata.DomName('FetchEvent.request')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FetchEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.FetchEvent, FetchEvent);
   dart.defineExtensionNames([
@@ -14776,7 +15049,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  FieldSetElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFieldSetElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLFieldSetElement"))];
+  FieldSetElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFieldSetElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLFieldSetElement"))], 'fields', dart.map(['disabled', [dart.const(new _metadata.DomName('HTMLFieldSetElement.disabled')), dart.const(new _metadata.DocsEditable())], 'elements', [dart.const(new _metadata.DomName('HTMLFieldSetElement.elements')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], 'form', [dart.const(new _metadata.DomName('HTMLFieldSetElement.form')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLFieldSetElement.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLFieldSetElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLFieldSetElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLFieldSetElement.validity')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLFieldSetElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   FieldSetElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFieldSetElement, FieldSetElement);
   const _get_lastModifiedDate = Symbol('_get_lastModifiedDate');
@@ -14809,7 +15082,7 @@
   dart.setSignature(File, {
     constructors: () => ({_: [File, []]})
   });
-  File[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('File')), dart.const(new _js_helper.Native("File"))];
+  File[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('File')), dart.const(new _js_helper.Native("File"))], 'fields', dart.map(['lastModified', [dart.const(new _metadata.DomName('File.lastModified')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_lastModifiedDate', [dart.const(new _js_helper.JSName('lastModifiedDate')), dart.const(new _metadata.DomName('File.lastModifiedDate')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'name', [dart.const(new _metadata.DomName('File.name')), dart.const(new _metadata.DocsEditable())], 'relativePath', [dart.const(new _js_helper.JSName('webkitRelativePath')), dart.const(new _metadata.DomName('File.webkitRelativePath')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['lastModifiedDate', [dart.const(new _metadata.DomName('File.lastModifiedDate')), dart.const(new _metadata.DocsEditable())]])]);
   File[dart.owner] = exports;
   dart.registerExtension(dart.global.File, File);
   const _FileCallback = dart.typedef('_FileCallback', () => dart.functionType(dart.void, [File]));
@@ -14857,7 +15130,7 @@
       [dartx.file]: [async.Future$(File), []]
     })
   });
-  FileEntry[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileEntry"))];
+  FileEntry[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileEntry"))]]);
   FileEntry[dart.owner] = exports;
   dart.registerExtension(dart.global.FileEntry, FileEntry);
   dart.defineExtensionNames([
@@ -14874,7 +15147,7 @@
   dart.setSignature(FileError, {
     constructors: () => ({_: [FileError, []]})
   });
-  FileError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileError"))];
+  FileError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileError"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('FileError.code')), dart.const(new _metadata.DocsEditable())]])]);
   FileError[dart.owner] = exports;
   FileError.ABORT_ERR = 3;
   FileError.ENCODING_ERR = 5;
@@ -14956,7 +15229,7 @@
       [dartx.item]: [File, [core.int]]
     })
   });
-  FileList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileList')), dart.const(new _js_helper.Native("FileList"))];
+  FileList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileList')), dart.const(new _js_helper.Native("FileList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('FileList.length')), dart.const(new _metadata.DocsEditable())]])]);
   FileList[dart.owner] = exports;
   dart.registerExtension(dart.global.FileList, FileList);
   dart.defineExtensionNames([
@@ -15042,7 +15315,7 @@
     statics: () => ({_create_1: [FileReader, []]}),
     names: ['_create_1']
   });
-  FileReader[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileReader')), dart.const(new _js_helper.Native("FileReader"))];
+  FileReader[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileReader')), dart.const(new _js_helper.Native("FileReader"))], 'fields', dart.map(['error', [dart.const(new _metadata.DomName('FileReader.error')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('FileReader.readyState')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['result', [dart.const(new _metadata.DomName('FileReader.result')), dart.const(new _metadata.DocsEditable())], 'onAbort', [dart.const(new _metadata.DomName('FileReader.onabort')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('FileReader.onerror')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('FileReader.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadEnd', [dart.const(new _metadata.DomName('FileReader.onloadend')), dart.const(new _metadata.DocsEditable())], 'onLoadStart', [dart.const(new _metadata.DomName('FileReader.onloadstart')), dart.const(new _metadata.DocsEditable())], 'onProgress', [dart.const(new _metadata.DomName('FileReader.onprogress')), dart.const(new _metadata.DocsEditable())]])]);
   FileReader[dart.owner] = exports;
   FileReader.DONE = 2;
   FileReader.EMPTY = 0;
@@ -15082,7 +15355,7 @@
   dart.setSignature(FileStream, {
     constructors: () => ({_: [FileStream, []]})
   });
-  FileStream[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Stream')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Stream"))];
+  FileStream[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Stream')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Stream"))], 'fields', dart.map(['type', [dart.const(new _metadata.DomName('Stream.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FileStream[dart.owner] = exports;
   dart.registerExtension(dart.global.Stream, FileStream);
   dart.defineExtensionNames([
@@ -15106,7 +15379,7 @@
   dart.setSignature(FileSystem, {
     constructors: () => ({_: [FileSystem, []]})
   });
-  FileSystem[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMFileSystem')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMFileSystem"))];
+  FileSystem[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMFileSystem')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMFileSystem"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('DOMFileSystem.name')), dart.const(new _metadata.DocsEditable())], 'root', [dart.const(new _metadata.DomName('DOMFileSystem.root')), dart.const(new _metadata.DocsEditable())]])]);
   FileSystem[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMFileSystem, FileSystem);
   const _FileSystemCallback = dart.typedef('_FileSystemCallback', () => dart.functionType(dart.void, [FileSystem]));
@@ -15182,7 +15455,7 @@
       [dartx.write]: [dart.void, [Blob]]
     })
   });
-  FileWriter[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileWriter')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileWriter"))];
+  FileWriter[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileWriter')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileWriter"))], 'fields', dart.map(['error', [dart.const(new _metadata.DomName('FileWriter.error')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('FileWriter.length')), dart.const(new _metadata.DocsEditable())], 'position', [dart.const(new _metadata.DomName('FileWriter.position')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('FileWriter.readyState')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('FileWriter.onabort')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('FileWriter.onerror')), dart.const(new _metadata.DocsEditable())], 'onProgress', [dart.const(new _metadata.DomName('FileWriter.onprogress')), dart.const(new _metadata.DocsEditable())], 'onWrite', [dart.const(new _metadata.DomName('FileWriter.onwrite')), dart.const(new _metadata.DocsEditable())], 'onWriteEnd', [dart.const(new _metadata.DomName('FileWriter.onwriteend')), dart.const(new _metadata.DocsEditable())], 'onWriteStart', [dart.const(new _metadata.DomName('FileWriter.onwritestart')), dart.const(new _metadata.DocsEditable())]])]);
   FileWriter[dart.owner] = exports;
   FileWriter.DONE = 2;
   FileWriter.INIT = 0;
@@ -15227,7 +15500,7 @@
   dart.setSignature(FocusEvent, {
     constructors: () => ({_: [FocusEvent, []]})
   });
-  FocusEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FocusEvent')), dart.const(new _js_helper.Native("FocusEvent"))];
+  FocusEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FocusEvent')), dart.const(new _js_helper.Native("FocusEvent"))], 'fields', dart.map(['_get_relatedTarget', [dart.const(new _js_helper.JSName('relatedTarget')), dart.const(new _metadata.DomName('FocusEvent.relatedTarget')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))]]), 'properties', dart.map(['relatedTarget', [dart.const(new _metadata.DomName('FocusEvent.relatedTarget')), dart.const(new _metadata.DocsEditable())]])]);
   FocusEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.FocusEvent, FocusEvent);
   dart.defineExtensionNames([
@@ -15357,7 +15630,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6']
   });
-  FontFace[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFace')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFace"))];
+  FontFace[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFace')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFace"))], 'fields', dart.map(['family', [dart.const(new _metadata.DomName('FontFace.family')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'featureSettings', [dart.const(new _metadata.DomName('FontFace.featureSettings')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'loaded', [dart.const(new _metadata.DomName('FontFace.loaded')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'status', [dart.const(new _metadata.DomName('FontFace.status')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'stretch', [dart.const(new _metadata.DomName('FontFace.stretch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'style', [dart.const(new _metadata.DomName('FontFace.style')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'unicodeRange', [dart.const(new _metadata.DomName('FontFace.unicodeRange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'variant', [dart.const(new _metadata.DomName('FontFace.variant')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'weight', [dart.const(new _metadata.DomName('FontFace.weight')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FontFace[dart.owner] = exports;
   dart.registerExtension(dart.global.FontFace, FontFace);
   dart.defineExtensionNames([
@@ -15410,7 +15683,7 @@
       [dartx.has]: [core.bool, [FontFace]]
     })
   });
-  FontFaceSet[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFaceSet')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFaceSet"))];
+  FontFaceSet[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFaceSet')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFaceSet"))], 'fields', dart.map(['size', [dart.const(new _metadata.DomName('FontFaceSet.size')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'status', [dart.const(new _metadata.DomName('FontFaceSet.status')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FontFaceSet[dart.owner] = exports;
   dart.registerExtension(dart.global.FontFaceSet, FontFaceSet);
   const FontFaceSetForEachCallback = dart.typedef('FontFaceSetForEachCallback', () => dart.functionType(dart.void, [FontFace, FontFace, FontFaceSet]));
@@ -15428,7 +15701,7 @@
   dart.setSignature(FontFaceSetLoadEvent, {
     constructors: () => ({_: [FontFaceSetLoadEvent, []]})
   });
-  FontFaceSetLoadEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFaceSetLoadEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFaceSetLoadEvent"))];
+  FontFaceSetLoadEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FontFaceSetLoadEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FontFaceSetLoadEvent"))], 'fields', dart.map(['fontfaces', [dart.const(new _metadata.DomName('FontFaceSetLoadEvent.fontfaces')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   FontFaceSetLoadEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.FontFaceSetLoadEvent, FontFaceSetLoadEvent);
   dart.defineExtensionNames([
@@ -15477,7 +15750,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  FormData[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FormData')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("FormData"))];
+  FormData[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FormData')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("FormData"))]]);
   FormData[dart.owner] = exports;
   dart.registerExtension(dart.global.FormData, FormData);
   const _requestAutocomplete_1 = Symbol('_requestAutocomplete_1');
@@ -15611,7 +15884,7 @@
       [dartx.submit]: [dart.void, []]
     })
   });
-  FormElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFormElement')), dart.const(new _js_helper.Native("HTMLFormElement"))];
+  FormElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFormElement')), dart.const(new _js_helper.Native("HTMLFormElement"))], 'fields', dart.map(['acceptCharset', [dart.const(new _metadata.DomName('HTMLFormElement.acceptCharset')), dart.const(new _metadata.DocsEditable())], 'action', [dart.const(new _metadata.DomName('HTMLFormElement.action')), dart.const(new _metadata.DocsEditable())], 'autocomplete', [dart.const(new _metadata.DomName('HTMLFormElement.autocomplete')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'encoding', [dart.const(new _metadata.DomName('HTMLFormElement.encoding')), dart.const(new _metadata.DocsEditable())], 'enctype', [dart.const(new _metadata.DomName('HTMLFormElement.enctype')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('HTMLFormElement.length')), dart.const(new _metadata.DocsEditable())], 'method', [dart.const(new _metadata.DomName('HTMLFormElement.method')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLFormElement.name')), dart.const(new _metadata.DocsEditable())], 'noValidate', [dart.const(new _metadata.DomName('HTMLFormElement.noValidate')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('HTMLFormElement.target')), dart.const(new _metadata.DocsEditable())]])]);
   FormElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFormElement, FormElement);
   dart.defineExtensionNames([
@@ -15648,7 +15921,7 @@
   dart.setSignature(Gamepad, {
     constructors: () => ({_: [Gamepad, []]})
   });
-  Gamepad[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Gamepad')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Gamepad"))];
+  Gamepad[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Gamepad')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Gamepad"))], 'fields', dart.map(['axes', [dart.const(new _metadata.DomName('Gamepad.axes')), dart.const(new _metadata.DocsEditable())], 'connected', [dart.const(new _metadata.DomName('Gamepad.connected')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'id', [dart.const(new _metadata.DomName('Gamepad.id')), dart.const(new _metadata.DocsEditable())], 'index', [dart.const(new _metadata.DomName('Gamepad.index')), dart.const(new _metadata.DocsEditable())], 'mapping', [dart.const(new _metadata.DomName('Gamepad.mapping')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'timestamp', [dart.const(new _metadata.DomName('Gamepad.timestamp')), dart.const(new _metadata.DocsEditable())]])]);
   Gamepad[dart.owner] = exports;
   dart.registerExtension(dart.global.Gamepad, Gamepad);
   dart.defineExtensionNames([
@@ -15669,7 +15942,7 @@
   dart.setSignature(GamepadButton, {
     constructors: () => ({_: [GamepadButton, []]})
   });
-  GamepadButton[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadButton')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadButton"))];
+  GamepadButton[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadButton')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadButton"))], 'fields', dart.map(['pressed', [dart.const(new _metadata.DomName('GamepadButton.pressed')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'value', [dart.const(new _metadata.DomName('GamepadButton.value')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   GamepadButton[dart.owner] = exports;
   dart.registerExtension(dart.global.GamepadButton, GamepadButton);
   dart.defineExtensionNames([
@@ -15686,7 +15959,7 @@
   dart.setSignature(GamepadEvent, {
     constructors: () => ({_: [GamepadEvent, []]})
   });
-  GamepadEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadEvent"))];
+  GamepadEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadEvent"))], 'fields', dart.map(['gamepad', [dart.const(new _metadata.DomName('GamepadEvent.gamepad')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   GamepadEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.GamepadEvent, GamepadEvent);
   dart.defineExtensionNames([
@@ -15716,7 +15989,7 @@
       [dartx.unregisterRegion]: [async.Future, [core.String]]
     })
   });
-  Geofencing[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geofencing')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Geofencing"))];
+  Geofencing[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geofencing')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Geofencing"))]]);
   Geofencing[dart.owner] = exports;
   dart.registerExtension(dart.global.Geofencing, Geofencing);
   const _getCurrentPosition = Symbol('_getCurrentPosition');
@@ -15870,7 +16143,7 @@
       [_watchPosition_3]: [core.int, [_PositionCallback]]
     })
   });
-  Geolocation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geolocation')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Geolocation"))];
+  Geolocation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geolocation')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Geolocation"))]]);
   Geolocation[dart.owner] = exports;
   dart.registerExtension(dart.global.Geolocation, Geolocation);
   class _GeopositionWrapper extends core.Object {
@@ -15907,7 +16180,7 @@
   dart.setSignature(Geoposition, {
     constructors: () => ({_: [Geoposition, []]})
   });
-  Geoposition[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geoposition')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Geoposition"))];
+  Geoposition[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Geoposition')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Geoposition"))], 'fields', dart.map(['coords', [dart.const(new _metadata.DomName('Geoposition.coords')), dart.const(new _metadata.DocsEditable())], 'timestamp', [dart.const(new _metadata.DomName('Geoposition.timestamp')), dart.const(new _metadata.DocsEditable())]])]);
   Geoposition[dart.owner] = exports;
   dart.registerExtension(dart.global.Geoposition, Geoposition);
   dart.defineExtensionNames([
@@ -16183,7 +16456,7 @@
     'onVolumeChange',
     'onWaiting'
   ]);
-  GlobalEventHandlers[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GlobalEventHandlers')), dart.const(new _metadata.Experimental())];
+  GlobalEventHandlers[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GlobalEventHandlers')), dart.const(new _metadata.Experimental())], 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('GlobalEventHandlers.onabort')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onBlur', [dart.const(new _metadata.DomName('GlobalEventHandlers.onblur')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlay', [dart.const(new _metadata.DomName('GlobalEventHandlers.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('GlobalEventHandlers.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('GlobalEventHandlers.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onClick', [dart.const(new _metadata.DomName('GlobalEventHandlers.onclick')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onContextMenu', [dart.const(new _metadata.DomName('GlobalEventHandlers.oncontextmenu')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDoubleClick', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondblclick')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDrag', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondrag')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragEnd', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondragend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragEnter', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondragenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragLeave', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondragleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragOver', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondragover')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragStart', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondragstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDrop', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondrop')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDurationChange', [dart.const(new _metadata.DomName('GlobalEventHandlers.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('GlobalEventHandlers.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('GlobalEventHandlers.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('GlobalEventHandlers.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFocus', [dart.const(new _metadata.DomName('GlobalEventHandlers.onfocus')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onInput', [dart.const(new _metadata.DomName('GlobalEventHandlers.oninput')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onInvalid', [dart.const(new _metadata.DomName('GlobalEventHandlers.oninvalid')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyDown', [dart.const(new _metadata.DomName('GlobalEventHandlers.onkeydown')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyPress', [dart.const(new _metadata.DomName('GlobalEventHandlers.onkeypress')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyUp', [dart.const(new _metadata.DomName('GlobalEventHandlers.onkeyup')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoad', [dart.const(new _metadata.DomName('GlobalEventHandlers.onload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedData', [dart.const(new _metadata.DomName('GlobalEventHandlers.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('GlobalEventHandlers.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmousedown')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseEnter', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmousemove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseOut', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmouseout')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseOver', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmouseover')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseUp', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmouseup')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseWheel', [dart.const(new _metadata.DomName('GlobalEventHandlers.onmousewheel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPause', [dart.const(new _metadata.DomName('GlobalEventHandlers.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('GlobalEventHandlers.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('GlobalEventHandlers.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('GlobalEventHandlers.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReset', [dart.const(new _metadata.DomName('GlobalEventHandlers.onreset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onResize', [dart.const(new _metadata.DomName('GlobalEventHandlers.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('GlobalEventHandlers.onscroll')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('GlobalEventHandlers.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('GlobalEventHandlers.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('GlobalEventHandlers.onselect')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStalled', [dart.const(new _metadata.DomName('GlobalEventHandlers.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('GlobalEventHandlers.onsubmit')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSuspend', [dart.const(new _metadata.DomName('GlobalEventHandlers.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('GlobalEventHandlers.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onVolumeChange', [dart.const(new _metadata.DomName('GlobalEventHandlers.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('GlobalEventHandlers.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   GlobalEventHandlers[dart.owner] = exports;
   dart.defineLazyProperties(GlobalEventHandlers, {
     get abortEvent() {
@@ -16372,7 +16645,7 @@
       created: [HRElement, []]
     })
   });
-  HRElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHRElement')), dart.const(new _js_helper.Native("HTMLHRElement"))];
+  HRElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHRElement')), dart.const(new _js_helper.Native("HTMLHRElement"))], 'fields', dart.map(['color', [dart.const(new _metadata.DomName('HTMLHRElement.color')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   HRElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLHRElement, HRElement);
   const _initHashChangeEvent = Symbol('_initHashChangeEvent');
@@ -16412,7 +16685,7 @@
     }),
     methods: () => ({[_initHashChangeEvent]: [dart.void, [core.String, core.bool, core.bool, core.String, core.String]]})
   });
-  HashChangeEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('HashChangeEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HashChangeEvent"))];
+  HashChangeEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HashChangeEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HashChangeEvent"))], 'fields', dart.map(['newUrl', [dart.const(new _js_helper.JSName('newURL')), dart.const(new _metadata.DomName('HashChangeEvent.newURL')), dart.const(new _metadata.DocsEditable())], 'oldUrl', [dart.const(new _js_helper.JSName('oldURL')), dart.const(new _metadata.DomName('HashChangeEvent.oldURL')), dart.const(new _metadata.DocsEditable())]])]);
   HashChangeEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.HashChangeEvent, HashChangeEvent);
   class HeadElement extends HtmlElement {
@@ -16434,7 +16707,7 @@
       created: [HeadElement, []]
     })
   });
-  HeadElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHeadElement')), dart.const(new _js_helper.Native("HTMLHeadElement"))];
+  HeadElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHeadElement')), dart.const(new _js_helper.Native("HTMLHeadElement"))]]);
   HeadElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLHeadElement, HeadElement);
   dart.defineExtensionNames([
@@ -16488,7 +16761,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  Headers[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Headers')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Headers"))];
+  Headers[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Headers')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Headers"))], 'fields', dart.map(['size', [dart.const(new _metadata.DomName('Headers.size')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Headers[dart.owner] = exports;
   dart.registerExtension(dart.global.Headers, Headers);
   const HeadersForEachCallback = dart.typedef('HeadersForEachCallback', () => dart.functionType(dart.void, [core.String, core.String, Headers]));
@@ -16531,7 +16804,7 @@
       created: [HeadingElement, []]
     })
   });
-  HeadingElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHeadingElement')), dart.const(new _js_helper.Native("HTMLHeadingElement"))];
+  HeadingElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHeadingElement')), dart.const(new _js_helper.Native("HTMLHeadingElement"))]]);
   HeadingElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLHeadingElement, HeadingElement);
   const _get_state = Symbol('_get_state');
@@ -16623,7 +16896,7 @@
       [_replaceState_2]: [dart.void, [dart.dynamic, dart.dynamic]]
     })
   });
-  History[dart.metadata] = () => [dart.const(new _metadata.DomName('History')), dart.const(new _js_helper.Native("History"))];
+  History[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('History')), dart.const(new _js_helper.Native("History"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('History.length')), dart.const(new _metadata.DocsEditable())], '_get_state', [dart.const(new _js_helper.JSName('state')), dart.const(new _metadata.DomName('History.state')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue, html_common.annotation_Returns_SerializedScriptValue]]), 'properties', dart.map(['state', [dart.const(new _metadata.DomName('History.state')), dart.const(new _metadata.DocsEditable())]])]);
   History[dart.owner] = exports;
   dart.registerExtension(dart.global.History, History);
   dart.defineExtensionNames([
@@ -16698,7 +16971,7 @@
       [dartx.namedItem]: [Element, [core.String]]
     })
   });
-  HtmlCollection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLCollection')), dart.const(new _js_helper.Native("HTMLCollection"))];
+  HtmlCollection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLCollection')), dart.const(new _js_helper.Native("HTMLCollection"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('HTMLCollection.length')), dart.const(new _metadata.DocsEditable())]])]);
   HtmlCollection[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLCollection, HtmlCollection);
   dart.defineExtensionNames([
@@ -16830,7 +17103,7 @@
     statics: () => ({_determineVisibilityChangeEventType: [core.String, [EventTarget]]}),
     names: ['_determineVisibilityChangeEventType']
   });
-  HtmlDocument[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLDocument')), dart.const(new _js_helper.Native("HTMLDocument"))];
+  HtmlDocument[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLDocument')), dart.const(new _js_helper.Native("HTMLDocument"))], 'fields', dart.map(['body', [dart.const(new _metadata.DomName('Document.body'))]]), 'properties', dart.map(['head', [dart.const(new _metadata.DomName('Document.head'))], 'lastModified', [dart.const(new _metadata.DomName('Document.lastModified'))], 'preferredStylesheetSet', [dart.const(new _metadata.DomName('Document.preferredStylesheetSet'))], 'referrer', [dart.const(new _metadata.DomName('Document.referrer'))], 'selectedStylesheetSet', [dart.const(new _metadata.DomName('Document.selectedStylesheetSet'))], 'styleSheets', [dart.const(new _metadata.DomName('Document.styleSheets'))], 'title', [dart.const(new _metadata.DomName('Document.title'))], 'title=', [dart.const(new _metadata.DomName('Document.title'))], 'fullscreenElement', [dart.const(new _metadata.DomName('Document.webkitFullscreenElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'fullscreenEnabled', [dart.const(new _metadata.DomName('Document.webkitFullscreenEnabled')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'hidden', [dart.const(new _metadata.DomName('Document.webkitHidden')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'visibilityState', [dart.const(new _metadata.DomName('Document.visibilityState')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental())], 'onVisibilityChange', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental())]])]);
   HtmlDocument[dart.owner] = exports;
   dart.defineLazyProperties(HtmlDocument, {
     get visibilityChangeEvent() {
@@ -16853,7 +17126,7 @@
     constructors: () => ({_: [HtmlFormControlsCollection, []]}),
     methods: () => ({[dartx.namedItem]: [core.Object, [core.String]]})
   });
-  HtmlFormControlsCollection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFormControlsCollection')), dart.const(new _js_helper.Native("HTMLFormControlsCollection"))];
+  HtmlFormControlsCollection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFormControlsCollection')), dart.const(new _js_helper.Native("HTMLFormControlsCollection"))]]);
   HtmlFormControlsCollection[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFormControlsCollection, HtmlFormControlsCollection);
   class HtmlHtmlElement extends HtmlElement {
@@ -16875,7 +17148,7 @@
       created: [HtmlHtmlElement, []]
     })
   });
-  HtmlHtmlElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHtmlElement')), dart.const(new _js_helper.Native("HTMLHtmlElement"))];
+  HtmlHtmlElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLHtmlElement')), dart.const(new _js_helper.Native("HTMLHtmlElement"))]]);
   HtmlHtmlElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLHtmlElement, HtmlHtmlElement);
   class HtmlOptionsCollection extends HtmlCollection {
@@ -16886,7 +17159,7 @@
   dart.setSignature(HtmlOptionsCollection, {
     constructors: () => ({_: [HtmlOptionsCollection, []]})
   });
-  HtmlOptionsCollection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOptionsCollection')), dart.const(new _js_helper.Native("HTMLOptionsCollection"))];
+  HtmlOptionsCollection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOptionsCollection')), dart.const(new _js_helper.Native("HTMLOptionsCollection"))]]);
   HtmlOptionsCollection[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLOptionsCollection, HtmlOptionsCollection);
   const _get_response = Symbol('_get_response');
@@ -16928,7 +17201,7 @@
   dart.setSignature(HttpRequestEventTarget, {
     constructors: () => ({_: [HttpRequestEventTarget, []]})
   });
-  HttpRequestEventTarget[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestEventTarget')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestEventTarget"))];
+  HttpRequestEventTarget[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestEventTarget')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestEventTarget"))], 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onabort')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoad', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadEnd', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onloadend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'onLoadStart', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onloadstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onProgress', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.onprogress')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'onTimeout', [dart.const(new _metadata.DomName('XMLHttpRequestEventTarget.ontimeout')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   HttpRequestEventTarget[dart.owner] = exports;
   dart.defineLazyProperties(HttpRequestEventTarget, {
     get abortEvent() {
@@ -17220,7 +17493,7 @@
     }),
     names: ['getString', 'postFormData', 'request', 'requestCrossOrigin', '_create_1']
   });
-  HttpRequest[dart.metadata] = () => [dart.const(new _metadata.DomName('XMLHttpRequest')), dart.const(new _js_helper.Native("XMLHttpRequest"))];
+  HttpRequest[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('XMLHttpRequest')), dart.const(new _js_helper.Native("XMLHttpRequest"))], 'fields', dart.map(['readyState', [dart.const(new _metadata.DomName('XMLHttpRequest.readyState')), dart.const(new _metadata.DocsEditable())], '_get_response', [dart.const(new _js_helper.JSName('response')), dart.const(new _metadata.DomName('XMLHttpRequest.response')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Creates('NativeByteBuffer|Blob|Document|=Object|JSExtendableArray|String|num'))], 'responseText', [dart.const(new _metadata.DomName('XMLHttpRequest.responseText')), dart.const(new _metadata.DocsEditable())], 'responseType', [dart.const(new _metadata.DomName('XMLHttpRequest.responseType')), dart.const(new _metadata.DocsEditable())], 'responseUrl', [dart.const(new _js_helper.JSName('responseURL')), dart.const(new _metadata.DomName('XMLHttpRequest.responseURL')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'responseXml', [dart.const(new _js_helper.JSName('responseXML')), dart.const(new _metadata.DomName('XMLHttpRequest.responseXML')), dart.const(new _metadata.DocsEditable())], 'status', [dart.const(new _metadata.DomName('XMLHttpRequest.status')), dart.const(new _metadata.DocsEditable())], 'statusText', [dart.const(new _metadata.DomName('XMLHttpRequest.statusText')), dart.const(new _metadata.DocsEditable())], 'timeout', [dart.const(new _metadata.DomName('XMLHttpRequest.timeout')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'upload', [dart.const(new _metadata.DomName('XMLHttpRequest.upload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'withCredentials', [dart.const(new _metadata.DomName('XMLHttpRequest.withCredentials')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['response', [dart.const(new _metadata.DomName('XMLHttpRequest.response')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'onReadyStateChange', [dart.const(new _metadata.DomName('XMLHttpRequest.onreadystatechange')), dart.const(new _metadata.DocsEditable())]])]);
   HttpRequest[dart.owner] = exports;
   HttpRequest.DONE = 4;
   HttpRequest.HEADERS_RECEIVED = 2;
@@ -17241,7 +17514,7 @@
   dart.setSignature(HttpRequestUpload, {
     constructors: () => ({_: [HttpRequestUpload, []]})
   });
-  HttpRequestUpload[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestUpload')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestUpload"))];
+  HttpRequestUpload[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestUpload')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestUpload"))]]);
   HttpRequestUpload[dart.owner] = exports;
   dart.registerExtension(dart.global.XMLHttpRequestUpload, HttpRequestUpload);
   const _get_contentWindow = Symbol('_get_contentWindow');
@@ -17338,7 +17611,7 @@
       created: [IFrameElement, []]
     })
   });
-  IFrameElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLIFrameElement')), dart.const(new _js_helper.Native("HTMLIFrameElement"))];
+  IFrameElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLIFrameElement')), dart.const(new _js_helper.Native("HTMLIFrameElement"))], 'fields', dart.map(['allowFullscreen', [dart.const(new _metadata.DomName('HTMLIFrameElement.allowFullscreen')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_contentWindow', [dart.const(new _js_helper.JSName('contentWindow')), dart.const(new _metadata.DomName('HTMLIFrameElement.contentWindow')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], 'height', [dart.const(new _metadata.DomName('HTMLIFrameElement.height')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLIFrameElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'name', [dart.const(new _metadata.DomName('HTMLIFrameElement.name')), dart.const(new _metadata.DocsEditable())], 'sandbox', [dart.const(new _metadata.DomName('HTMLIFrameElement.sandbox')), dart.const(new _metadata.DocsEditable())], 'src', [dart.const(new _metadata.DomName('HTMLIFrameElement.src')), dart.const(new _metadata.DocsEditable())], 'srcdoc', [dart.const(new _metadata.DomName('HTMLIFrameElement.srcdoc')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('HTMLIFrameElement.width')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['contentWindow', [dart.const(new _metadata.DomName('HTMLIFrameElement.contentWindow')), dart.const(new _metadata.DocsEditable())]])]);
   IFrameElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLIFrameElement, IFrameElement);
   dart.defineExtensionNames([
@@ -17359,7 +17632,7 @@
   dart.setSignature(ImageBitmap, {
     constructors: () => ({_: [ImageBitmap, []]})
   });
-  ImageBitmap[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ImageBitmap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ImageBitmap"))];
+  ImageBitmap[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ImageBitmap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ImageBitmap"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('ImageBitmap.height')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('ImageBitmap.width')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ImageBitmap[dart.owner] = exports;
   dart.registerExtension(dart.global.ImageBitmap, ImageBitmap);
   dart.defineExtensionNames([
@@ -17415,7 +17688,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  ImageData[dart.metadata] = () => [dart.const(new _metadata.DomName('ImageData')), dart.const(new _js_helper.Native("ImageData"))];
+  ImageData[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('ImageData')), dart.const(new _js_helper.Native("ImageData"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('ImageData.data')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('NativeUint8ClampedList')), dart.const(new _js_helper.Returns('NativeUint8ClampedList'))], 'height', [dart.const(new _metadata.DomName('ImageData.height')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('ImageData.width')), dart.const(new _metadata.DocsEditable())]])]);
   ImageData[dart.owner] = exports;
   dart.registerExtension(dart.global.ImageData, ImageData);
   dart.defineExtensionNames([
@@ -17547,7 +17820,7 @@
       created: [ImageElement, []]
     })
   });
-  ImageElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLImageElement')), dart.const(new _js_helper.Native("HTMLImageElement"))];
+  ImageElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLImageElement')), dart.const(new _js_helper.Native("HTMLImageElement"))], 'fields', dart.map(['alt', [dart.const(new _metadata.DomName('HTMLImageElement.alt')), dart.const(new _metadata.DocsEditable())], 'complete', [dart.const(new _metadata.DomName('HTMLImageElement.complete')), dart.const(new _metadata.DocsEditable())], 'crossOrigin', [dart.const(new _metadata.DomName('HTMLImageElement.crossOrigin')), dart.const(new _metadata.DocsEditable())], 'currentSrc', [dart.const(new _metadata.DomName('HTMLImageElement.currentSrc')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'height', [dart.const(new _metadata.DomName('HTMLImageElement.height')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLImageElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'isMap', [dart.const(new _metadata.DomName('HTMLImageElement.isMap')), dart.const(new _metadata.DocsEditable())], 'naturalHeight', [dart.const(new _metadata.DomName('HTMLImageElement.naturalHeight')), dart.const(new _metadata.DocsEditable())], 'naturalWidth', [dart.const(new _metadata.DomName('HTMLImageElement.naturalWidth')), dart.const(new _metadata.DocsEditable())], 'sizes', [dart.const(new _metadata.DomName('HTMLImageElement.sizes')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'src', [dart.const(new _metadata.DomName('HTMLImageElement.src')), dart.const(new _metadata.DocsEditable())], 'srcset', [dart.const(new _metadata.DomName('HTMLImageElement.srcset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'useMap', [dart.const(new _metadata.DomName('HTMLImageElement.useMap')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('HTMLImageElement.width')), dart.const(new _metadata.DocsEditable())]])]);
   ImageElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLImageElement, ImageElement);
   dart.defineExtensionNames([
@@ -17565,7 +17838,7 @@
     constructors: () => ({_: [InjectedScriptHost, []]}),
     methods: () => ({[dartx.inspect]: [dart.void, [core.Object, core.Object]]})
   });
-  InjectedScriptHost[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InjectedScriptHost')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InjectedScriptHost"))];
+  InjectedScriptHost[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InjectedScriptHost')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InjectedScriptHost"))]]);
   InjectedScriptHost[dart.owner] = exports;
   dart.registerExtension(dart.global.InjectedScriptHost, InjectedScriptHost);
   const _get_valueAsDate = Symbol('_get_valueAsDate');
@@ -18008,7 +18281,7 @@
       [dartx.stepUp]: [dart.void, [], [core.int]]
     })
   });
-  InputElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLInputElement')), dart.const(new _js_helper.Native("HTMLInputElement"))];
+  InputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLInputElement')), dart.const(new _js_helper.Native("HTMLInputElement"))], 'fields', dart.map(['accept', [dart.const(new _metadata.DomName('HTMLInputElement.accept')), dart.const(new _metadata.DocsEditable())], 'alt', [dart.const(new _metadata.DomName('HTMLInputElement.alt')), dart.const(new _metadata.DocsEditable())], 'autocomplete', [dart.const(new _metadata.DomName('HTMLInputElement.autocomplete')), dart.const(new _metadata.DocsEditable())], 'autofocus', [dart.const(new _metadata.DomName('HTMLInputElement.autofocus')), dart.const(new _metadata.DocsEditable())], 'capture', [dart.const(new _metadata.DomName('HTMLInputElement.capture')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'checked', [dart.const(new _metadata.DomName('HTMLInputElement.checked')), dart.const(new _metadata.DocsEditable())], 'defaultChecked', [dart.const(new _metadata.DomName('HTMLInputElement.defaultChecked')), dart.const(new _metadata.DocsEditable())], 'defaultValue', [dart.const(new _metadata.DomName('HTMLInputElement.defaultValue')), dart.const(new _metadata.DocsEditable())], 'dirName', [dart.const(new _metadata.DomName('HTMLInputElement.dirName')), dart.const(new _metadata.DocsEditable())], 'disabled', [dart.const(new _metadata.DomName('HTMLInputElement.disabled')), dart.const(new _metadata.DocsEditable())], 'files', [dart.const(new _metadata.DomName('HTMLInputElement.files')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('FileList')), dart.const(new _js_helper.Creates('FileList'))], 'form', [dart.const(new _metadata.DomName('HTMLInputElement.form')), dart.const(new _metadata.DocsEditable())], 'formAction', [dart.const(new _metadata.DomName('HTMLInputElement.formAction')), dart.const(new _metadata.DocsEditable())], 'formEnctype', [dart.const(new _metadata.DomName('HTMLInputElement.formEnctype')), dart.const(new _metadata.DocsEditable())], 'formMethod', [dart.const(new _metadata.DomName('HTMLInputElement.formMethod')), dart.const(new _metadata.DocsEditable())], 'formNoValidate', [dart.const(new _metadata.DomName('HTMLInputElement.formNoValidate')), dart.const(new _metadata.DocsEditable())], 'formTarget', [dart.const(new _metadata.DomName('HTMLInputElement.formTarget')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('HTMLInputElement.height')), dart.const(new _metadata.DocsEditable())], 'incremental', [dart.const(new _metadata.DomName('HTMLInputElement.incremental')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'indeterminate', [dart.const(new _metadata.DomName('HTMLInputElement.indeterminate')), dart.const(new _metadata.DocsEditable())], 'inputMode', [dart.const(new _metadata.DomName('HTMLInputElement.inputMode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'labels', [dart.const(new _metadata.DomName('HTMLInputElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'list', [dart.const(new _metadata.DomName('HTMLInputElement.list')), dart.const(new _metadata.DocsEditable())], 'max', [dart.const(new _metadata.DomName('HTMLInputElement.max')), dart.const(new _metadata.DocsEditable())], 'maxLength', [dart.const(new _metadata.DomName('HTMLInputElement.maxLength')), dart.const(new _metadata.DocsEditable())], 'min', [dart.const(new _metadata.DomName('HTMLInputElement.min')), dart.const(new _metadata.DocsEditable())], 'multiple', [dart.const(new _metadata.DomName('HTMLInputElement.multiple')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLInputElement.name')), dart.const(new _metadata.DocsEditable())], 'pattern', [dart.const(new _metadata.DomName('HTMLInputElement.pattern')), dart.const(new _metadata.DocsEditable())], 'placeholder', [dart.const(new _metadata.DomName('HTMLInputElement.placeholder')), dart.const(new _metadata.DocsEditable())], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly')), dart.const(new _metadata.DocsEditable())], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required')), dart.const(new _metadata.DocsEditable())], 'selectionDirection', [dart.const(new _metadata.DomName('HTMLInputElement.selectionDirection')), dart.const(new _metadata.DocsEditable())], 'selectionEnd', [dart.const(new _metadata.DomName('HTMLInputElement.selectionEnd')), dart.const(new _metadata.DocsEditable())], 'selectionStart', [dart.const(new _metadata.DomName('HTMLInputElement.selectionStart')), dart.const(new _metadata.DocsEditable())], 'size', [dart.const(new _metadata.DomName('HTMLInputElement.size')), dart.const(new _metadata.DocsEditable())], 'src', [dart.const(new _metadata.DomName('HTMLInputElement.src')), dart.const(new _metadata.DocsEditable())], 'step', [dart.const(new _metadata.DomName('HTMLInputElement.step')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLInputElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLInputElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLInputElement.validity')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLInputElement.value')), dart.const(new _metadata.DocsEditable())], '_get_valueAsDate', [dart.const(new _js_helper.JSName('valueAsDate')), dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'valueAsNumber', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsNumber')), dart.const(new _metadata.DocsEditable())], 'entries', [dart.const(new _js_helper.JSName('webkitEntries')), dart.const(new _metadata.DomName('HTMLInputElement.webkitEntries')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'directory', [dart.const(new _js_helper.JSName('webkitdirectory')), dart.const(new _metadata.DomName('HTMLInputElement.webkitdirectory')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('HTMLInputElement.width')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLInputElement.willValidate')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['valueAsDate', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate')), dart.const(new _metadata.DocsEditable())]])]);
   InputElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLInputElement, InputElement);
   dart.defineExtensionNames([
@@ -18045,6 +18318,7 @@
     'value',
     'value'
   ]);
+  InputElementBase[dart.metadata] = () => dart.map(['fields', dart.map(['autofocus', [dart.const(new _metadata.DomName('HTMLInputElement.autofocus'))], 'disabled', [dart.const(new _metadata.DomName('HTMLInputElement.disabled'))], 'incremental', [dart.const(new _metadata.DomName('HTMLInputElement.incremental'))], 'indeterminate', [dart.const(new _metadata.DomName('HTMLInputElement.indeterminate'))], 'name', [dart.const(new _metadata.DomName('HTMLInputElement.name'))], 'value', [dart.const(new _metadata.DomName('HTMLInputElement.value'))]]), 'properties', dart.map(['labels', [dart.const(new _metadata.DomName('HTMLInputElement.labels'))], 'validationMessage', [dart.const(new _metadata.DomName('HTMLInputElement.validationMessage'))], 'validity', [dart.const(new _metadata.DomName('HTMLInputElement.validity'))], 'willValidate', [dart.const(new _metadata.DomName('HTMLInputElement.willValidate'))]])]);
   InputElementBase[dart.owner] = exports;
   class HiddenInputElement extends core.Object {
     static new() {
@@ -18106,6 +18380,7 @@
     'selectionStart',
     'selectionStart'
   ]);
+  TextInputElementBase[dart.metadata] = () => dart.map(['fields', dart.map(['autocomplete', [dart.const(new _metadata.DomName('HTMLInputElement.autocomplete'))], 'maxLength', [dart.const(new _metadata.DomName('HTMLInputElement.maxLength'))], 'pattern', [dart.const(new _metadata.DomName('HTMLInputElement.pattern'))], 'placeholder', [dart.const(new _metadata.DomName('HTMLInputElement.placeholder'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))], 'size', [dart.const(new _metadata.DomName('HTMLInputElement.size'))], 'selectionDirection', [dart.const(new _metadata.DomName('HTMLInputElement.selectionDirection'))], 'selectionEnd', [dart.const(new _metadata.DomName('HTMLInputElement.selectionEnd'))], 'selectionStart', [dart.const(new _metadata.DomName('HTMLInputElement.selectionStart'))]])]);
   TextInputElementBase[dart.owner] = exports;
   dart.defineExtensionNames([
     'dirName'
@@ -18123,7 +18398,7 @@
     constructors: () => ({new: [SearchInputElement, []]})
   });
   dart.defineExtensionMembers(SearchInputElement, ['dirName', 'dirName']);
-  SearchInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))];
+  SearchInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'fields', dart.map(['dirName', [dart.const(new _metadata.DomName('HTMLInputElement.dirName'))]]), 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   SearchInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'dirName'
@@ -18138,6 +18413,7 @@
     constructors: () => ({new: [TextInputElement, []]})
   });
   dart.defineExtensionMembers(TextInputElement, ['dirName', 'dirName']);
+  TextInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['dirName', [dart.const(new _metadata.DomName('HTMLInputElement.dirName'))]]), 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   TextInputElement[dart.owner] = exports;
   class UrlInputElement extends core.Object {
     static new() {
@@ -18151,7 +18427,7 @@
   dart.setSignature(UrlInputElement, {
     constructors: () => ({new: [UrlInputElement, []]})
   });
-  UrlInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))];
+  UrlInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   UrlInputElement[dart.owner] = exports;
   class TelephoneInputElement extends core.Object {
     static new() {
@@ -18165,7 +18441,7 @@
   dart.setSignature(TelephoneInputElement, {
     constructors: () => ({new: [TelephoneInputElement, []]})
   });
-  TelephoneInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))];
+  TelephoneInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   TelephoneInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'autocomplete',
@@ -18210,7 +18486,7 @@
     'size',
     'size'
   ]);
-  EmailInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))];
+  EmailInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI))], 'fields', dart.map(['autocomplete', [dart.const(new _metadata.DomName('HTMLInputElement.autocomplete'))], 'autofocus', [dart.const(new _metadata.DomName('HTMLInputElement.autofocus'))], 'maxLength', [dart.const(new _metadata.DomName('HTMLInputElement.maxLength'))], 'multiple', [dart.const(new _metadata.DomName('HTMLInputElement.multiple'))], 'pattern', [dart.const(new _metadata.DomName('HTMLInputElement.pattern'))], 'placeholder', [dart.const(new _metadata.DomName('HTMLInputElement.placeholder'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))], 'size', [dart.const(new _metadata.DomName('HTMLInputElement.size'))]]), 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   EmailInputElement[dart.owner] = exports;
   class PasswordInputElement extends core.Object {
     static new() {
@@ -18248,6 +18524,7 @@
     'valueAsNumber',
     'valueAsNumber'
   ]);
+  RangeInputElementBase[dart.metadata] = () => dart.map(['fields', dart.map(['max', [dart.const(new _metadata.DomName('HTMLInputElement.max'))], 'min', [dart.const(new _metadata.DomName('HTMLInputElement.min'))], 'step', [dart.const(new _metadata.DomName('HTMLInputElement.step'))], 'valueAsNumber', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsNumber'))]]), 'properties', dart.map(['list', [dart.const(new _metadata.DomName('HTMLInputElement.list'))]])]);
   RangeInputElementBase[dart.owner] = exports;
   dart.defineExtensionNames([
     'valueAsDate',
@@ -18274,7 +18551,7 @@
     'required',
     'required'
   ]);
-  DateInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())];
+  DateInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())], 'fields', dart.map(['valueAsDate', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   DateInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'valueAsDate',
@@ -18301,7 +18578,7 @@
     'required',
     'required'
   ]);
-  MonthInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())];
+  MonthInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())], 'fields', dart.map(['valueAsDate', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   MonthInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'valueAsDate',
@@ -18328,7 +18605,7 @@
     'required',
     'required'
   ]);
-  WeekInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())];
+  WeekInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())], 'fields', dart.map(['valueAsDate', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   WeekInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'valueAsDate',
@@ -18355,7 +18632,7 @@
     'required',
     'required'
   ]);
-  TimeInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental())];
+  TimeInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental())], 'fields', dart.map(['valueAsDate', [dart.const(new _metadata.DomName('HTMLInputElement.valueAsDate'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   TimeInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'readOnly',
@@ -18374,7 +18651,7 @@
     constructors: () => ({new: [LocalDateTimeInputElement, []]})
   });
   dart.defineExtensionMembers(LocalDateTimeInputElement, ['readOnly', 'readOnly', 'required', 'required']);
-  LocalDateTimeInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())];
+  LocalDateTimeInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental())], 'fields', dart.map(['readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   LocalDateTimeInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'placeholder',
@@ -18401,7 +18678,7 @@
     'required',
     'required'
   ]);
-  NumberInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())];
+  NumberInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'fields', dart.map(['placeholder', [dart.const(new _metadata.DomName('HTMLInputElement.placeholder'))], 'readOnly', [dart.const(new _metadata.DomName('HTMLInputElement.readOnly'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   NumberInputElement[dart.owner] = exports;
   class RangeInputElement extends core.Object {
     static new() {
@@ -18415,7 +18692,7 @@
   dart.setSignature(RangeInputElement, {
     constructors: () => ({new: [RangeInputElement, []]})
   });
-  RangeInputElement[dart.metadata] = () => [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental())];
+  RangeInputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental())]]);
   RangeInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'checked',
@@ -18431,6 +18708,7 @@
     constructors: () => ({new: [CheckboxInputElement, []]})
   });
   dart.defineExtensionMembers(CheckboxInputElement, ['checked', 'checked', 'required', 'required']);
+  CheckboxInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['checked', [dart.const(new _metadata.DomName('HTMLInputElement.checked'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   CheckboxInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'checked',
@@ -18446,6 +18724,7 @@
     constructors: () => ({new: [RadioButtonInputElement, []]})
   });
   dart.defineExtensionMembers(RadioButtonInputElement, ['checked', 'checked', 'required', 'required']);
+  RadioButtonInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['checked', [dart.const(new _metadata.DomName('HTMLInputElement.checked'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))]])]);
   RadioButtonInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'accept',
@@ -18472,6 +18751,7 @@
     'files',
     'files'
   ]);
+  FileUploadInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['accept', [dart.const(new _metadata.DomName('HTMLInputElement.accept'))], 'multiple', [dart.const(new _metadata.DomName('HTMLInputElement.multiple'))], 'required', [dart.const(new _metadata.DomName('HTMLInputElement.required'))], 'files', [dart.const(new _metadata.DomName('HTMLInputElement.files'))]])]);
   FileUploadInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'formAction',
@@ -18501,6 +18781,7 @@
     'formTarget',
     'formTarget'
   ]);
+  SubmitButtonInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['formAction', [dart.const(new _metadata.DomName('HTMLInputElement.formAction'))], 'formEnctype', [dart.const(new _metadata.DomName('HTMLInputElement.formEnctype'))], 'formMethod', [dart.const(new _metadata.DomName('HTMLInputElement.formMethod'))], 'formNoValidate', [dart.const(new _metadata.DomName('HTMLInputElement.formNoValidate'))], 'formTarget', [dart.const(new _metadata.DomName('HTMLInputElement.formTarget'))]])]);
   SubmitButtonInputElement[dart.owner] = exports;
   dart.defineExtensionNames([
     'alt',
@@ -18542,6 +18823,7 @@
     'width',
     'width'
   ]);
+  ImageButtonInputElement[dart.metadata] = () => dart.map(['fields', dart.map(['alt', [dart.const(new _metadata.DomName('HTMLInputElement.alt'))], 'formAction', [dart.const(new _metadata.DomName('HTMLInputElement.formAction'))], 'formEnctype', [dart.const(new _metadata.DomName('HTMLInputElement.formEnctype'))], 'formMethod', [dart.const(new _metadata.DomName('HTMLInputElement.formMethod'))], 'formNoValidate', [dart.const(new _metadata.DomName('HTMLInputElement.formNoValidate'))], 'formTarget', [dart.const(new _metadata.DomName('HTMLInputElement.formTarget'))], 'height', [dart.const(new _metadata.DomName('HTMLInputElement.height'))], 'src', [dart.const(new _metadata.DomName('HTMLInputElement.src'))], 'width', [dart.const(new _metadata.DomName('HTMLInputElement.width'))]])]);
   ImageButtonInputElement[dart.owner] = exports;
   class ResetButtonInputElement extends core.Object {
     static new() {
@@ -18594,7 +18876,7 @@
     constructors: () => ({_: [InputMethodContext, []]}),
     methods: () => ({[dartx.confirmComposition]: [dart.void, []]})
   });
-  InputMethodContext[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InputMethodContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InputMethodContext"))];
+  InputMethodContext[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InputMethodContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InputMethodContext"))], 'fields', dart.map(['compositionEndOffset', [dart.const(new _metadata.DomName('InputMethodContext.compositionEndOffset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'compositionStartOffset', [dart.const(new _metadata.DomName('InputMethodContext.compositionStartOffset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'locale', [dart.const(new _metadata.DomName('InputMethodContext.locale')), dart.const(new _metadata.DocsEditable())], 'target', [dart.const(new _metadata.DomName('InputMethodContext.target')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   InputMethodContext[dart.owner] = exports;
   dart.registerExtension(dart.global.InputMethodContext, InputMethodContext);
   dart.defineExtensionNames([
@@ -18619,7 +18901,7 @@
       [dartx.replace]: [dart.void, []]
     })
   });
-  InstallEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InstallEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InstallEvent"))];
+  InstallEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('InstallEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("InstallEvent"))]]);
   InstallEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.InstallEvent, InstallEvent);
   const _initKeyboardEvent = Symbol('_initKeyboardEvent');
@@ -18707,7 +18989,7 @@
       [dartx.getModifierState]: [core.bool, [core.String]]
     })
   });
-  KeyboardEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('KeyboardEvent')), dart.const(new _js_helper.Native("KeyboardEvent"))];
+  KeyboardEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('KeyboardEvent')), dart.const(new _js_helper.Native("KeyboardEvent"))], 'fields', dart.map(['altKey', [dart.const(new _metadata.DomName('KeyboardEvent.altKey')), dart.const(new _metadata.DocsEditable())], 'ctrlKey', [dart.const(new _metadata.DomName('KeyboardEvent.ctrlKey')), dart.const(new _metadata.DocsEditable())], '_keyIdentifier', [dart.const(new _js_helper.JSName('keyIdentifier')), dart.const(new _metadata.DomName('KeyboardEvent.keyIdentifier')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'keyLocation', [dart.const(new _metadata.DomName('KeyboardEvent.keyLocation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'location', [dart.const(new _metadata.DomName('KeyboardEvent.location')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'metaKey', [dart.const(new _metadata.DomName('KeyboardEvent.metaKey')), dart.const(new _metadata.DocsEditable())], 'repeat', [dart.const(new _metadata.DomName('KeyboardEvent.repeat')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'shiftKey', [dart.const(new _metadata.DomName('KeyboardEvent.shiftKey')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['keyCode', [dart.const(new _metadata.DomName('KeyboardEvent.keyCode'))], 'charCode', [dart.const(new _metadata.DomName('KeyboardEvent.charCode'))]])]);
   KeyboardEvent[dart.owner] = exports;
   KeyboardEvent.DOM_KEY_LOCATION_LEFT = 1;
   KeyboardEvent.DOM_KEY_LOCATION_NUMPAD = 3;
@@ -18820,7 +19102,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  KeygenElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLKeygenElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLKeygenElement"))];
+  KeygenElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLKeygenElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLKeygenElement"))], 'fields', dart.map(['autofocus', [dart.const(new _metadata.DomName('HTMLKeygenElement.autofocus')), dart.const(new _metadata.DocsEditable())], 'challenge', [dart.const(new _metadata.DomName('HTMLKeygenElement.challenge')), dart.const(new _metadata.DocsEditable())], 'disabled', [dart.const(new _metadata.DomName('HTMLKeygenElement.disabled')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLKeygenElement.form')), dart.const(new _metadata.DocsEditable())], 'keytype', [dart.const(new _metadata.DomName('HTMLKeygenElement.keytype')), dart.const(new _metadata.DocsEditable())], 'labels', [dart.const(new _metadata.DomName('HTMLKeygenElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'name', [dart.const(new _metadata.DomName('HTMLKeygenElement.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLKeygenElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLKeygenElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLKeygenElement.validity')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLKeygenElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   KeygenElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLKeygenElement, KeygenElement);
   dart.defineExtensionNames([
@@ -18852,7 +19134,7 @@
       created: [LIElement, []]
     })
   });
-  LIElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLIElement')), dart.const(new _js_helper.Native("HTMLLIElement"))];
+  LIElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLIElement')), dart.const(new _js_helper.Native("HTMLLIElement"))], 'fields', dart.map(['value', [dart.const(new _metadata.DomName('HTMLLIElement.value')), dart.const(new _metadata.DocsEditable())]])]);
   LIElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLLIElement, LIElement);
   dart.defineExtensionNames([
@@ -18894,7 +19176,7 @@
       created: [LabelElement, []]
     })
   });
-  LabelElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLabelElement')), dart.const(new _js_helper.Native("HTMLLabelElement"))];
+  LabelElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLabelElement')), dart.const(new _js_helper.Native("HTMLLabelElement"))], 'fields', dart.map(['control', [dart.const(new _metadata.DomName('HTMLLabelElement.control')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLLabelElement.form')), dart.const(new _metadata.DocsEditable())], 'htmlFor', [dart.const(new _metadata.DomName('HTMLLabelElement.htmlFor')), dart.const(new _metadata.DocsEditable())]])]);
   LabelElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLLabelElement, LabelElement);
   dart.defineExtensionNames([
@@ -18923,7 +19205,7 @@
       created: [LegendElement, []]
     })
   });
-  LegendElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLegendElement')), dart.const(new _js_helper.Native("HTMLLegendElement"))];
+  LegendElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLegendElement')), dart.const(new _js_helper.Native("HTMLLegendElement"))], 'fields', dart.map(['form', [dart.const(new _metadata.DomName('HTMLLegendElement.form')), dart.const(new _metadata.DocsEditable())]])]);
   LegendElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLLegendElement, LegendElement);
   dart.defineExtensionNames([
@@ -19030,7 +19312,7 @@
       created: [LinkElement, []]
     })
   });
-  LinkElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLinkElement')), dart.const(new _js_helper.Native("HTMLLinkElement"))];
+  LinkElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLLinkElement')), dart.const(new _js_helper.Native("HTMLLinkElement"))], 'fields', dart.map(['crossOrigin', [dart.const(new _metadata.DomName('HTMLLinkElement.crossOrigin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'disabled', [dart.const(new _metadata.DomName('HTMLLinkElement.disabled')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('HTMLLinkElement.href')), dart.const(new _metadata.DocsEditable())], 'hreflang', [dart.const(new _metadata.DomName('HTMLLinkElement.hreflang')), dart.const(new _metadata.DocsEditable())], 'import', [dart.const(new _metadata.DomName('HTMLLinkElement.import')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'integrity', [dart.const(new _metadata.DomName('HTMLLinkElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'media', [dart.const(new _metadata.DomName('HTMLLinkElement.media')), dart.const(new _metadata.DocsEditable())], 'rel', [dart.const(new _metadata.DomName('HTMLLinkElement.rel')), dart.const(new _metadata.DocsEditable())], 'sheet', [dart.const(new _metadata.DomName('HTMLLinkElement.sheet')), dart.const(new _metadata.DocsEditable())], 'sizes', [dart.const(new _metadata.DomName('HTMLLinkElement.sizes')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLLinkElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   LinkElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLLinkElement, LinkElement);
   dart.defineExtensionNames([
@@ -19058,7 +19340,7 @@
     statics: () => ({_create_1: [LocalCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  LocalCredential[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('LocalCredential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("LocalCredential"))];
+  LocalCredential[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('LocalCredential')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("LocalCredential"))], 'fields', dart.map(['password', [dart.const(new _metadata.DomName('LocalCredential.password')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   LocalCredential[dart.owner] = exports;
   dart.registerExtension(dart.global.LocalCredential, LocalCredential);
   dart.defineExtensionNames([
@@ -19160,7 +19442,7 @@
       [dartx.replace]: [dart.void, [core.String]]
     })
   });
-  Location[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Location')), dart.const(new _js_helper.Native("Location"))];
+  Location[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Location')), dart.const(new _js_helper.Native("Location"))], 'fields', dart.map(['ancestorOrigins', [dart.const(new _metadata.DomName('Location.ancestorOrigins')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('DomStringList')), dart.const(new _js_helper.Creates('DomStringList'))], 'hash', [dart.const(new _metadata.DomName('Location.hash')), dart.const(new _metadata.DocsEditable())], 'host', [dart.const(new _metadata.DomName('Location.host')), dart.const(new _metadata.DocsEditable())], 'hostname', [dart.const(new _metadata.DomName('Location.hostname')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('Location.href')), dart.const(new _metadata.DocsEditable())], 'pathname', [dart.const(new _metadata.DomName('Location.pathname')), dart.const(new _metadata.DocsEditable())], 'port', [dart.const(new _metadata.DomName('Location.port')), dart.const(new _metadata.DocsEditable())], 'protocol', [dart.const(new _metadata.DomName('Location.protocol')), dart.const(new _metadata.DocsEditable())], 'search', [dart.const(new _metadata.DomName('Location.search')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['origin', [dart.const(new _metadata.DomName('Location.origin'))]])]);
   Location[dart.owner] = exports;
   dart.registerExtension(dart.global.Location, Location);
   const MidiErrorCallback = dart.typedef('MidiErrorCallback', () => dart.functionType(dart.void, [DomError]));
@@ -19199,7 +19481,7 @@
       created: [MapElement, []]
     })
   });
-  MapElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMapElement')), dart.const(new _js_helper.Native("HTMLMapElement"))];
+  MapElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMapElement')), dart.const(new _js_helper.Native("HTMLMapElement"))], 'fields', dart.map(['areas', [dart.const(new _metadata.DomName('HTMLMapElement.areas')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], 'name', [dart.const(new _metadata.DomName('HTMLMapElement.name')), dart.const(new _metadata.DocsEditable())]])]);
   MapElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMapElement, MapElement);
   dart.defineExtensionNames([
@@ -19299,7 +19581,7 @@
     statics: () => ({_create_1: [MediaController, []]}),
     names: ['_create_1']
   });
-  MediaController[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaController')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaController"))];
+  MediaController[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaController')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaController"))], 'fields', dart.map(['buffered', [dart.const(new _metadata.DomName('MediaController.buffered')), dart.const(new _metadata.DocsEditable())], 'currentTime', [dart.const(new _metadata.DomName('MediaController.currentTime')), dart.const(new _metadata.DocsEditable())], 'defaultPlaybackRate', [dart.const(new _metadata.DomName('MediaController.defaultPlaybackRate')), dart.const(new _metadata.DocsEditable())], 'duration', [dart.const(new _metadata.DomName('MediaController.duration')), dart.const(new _metadata.DocsEditable())], 'muted', [dart.const(new _metadata.DomName('MediaController.muted')), dart.const(new _metadata.DocsEditable())], 'paused', [dart.const(new _metadata.DomName('MediaController.paused')), dart.const(new _metadata.DocsEditable())], 'playbackRate', [dart.const(new _metadata.DomName('MediaController.playbackRate')), dart.const(new _metadata.DocsEditable())], 'playbackState', [dart.const(new _metadata.DomName('MediaController.playbackState')), dart.const(new _metadata.DocsEditable())], 'played', [dart.const(new _metadata.DomName('MediaController.played')), dart.const(new _metadata.DocsEditable())], 'seekable', [dart.const(new _metadata.DomName('MediaController.seekable')), dart.const(new _metadata.DocsEditable())], 'volume', [dart.const(new _metadata.DomName('MediaController.volume')), dart.const(new _metadata.DocsEditable())]])]);
   MediaController[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaController, MediaController);
   dart.defineExtensionNames([
@@ -19328,7 +19610,7 @@
   dart.setSignature(MediaDeviceInfo, {
     constructors: () => ({_: [MediaDeviceInfo, []]})
   });
-  MediaDeviceInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaDeviceInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaDeviceInfo"))];
+  MediaDeviceInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaDeviceInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaDeviceInfo"))], 'fields', dart.map(['deviceId', [dart.const(new _metadata.DomName('MediaDeviceInfo.deviceId')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'groupId', [dart.const(new _metadata.DomName('MediaDeviceInfo.groupId')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('MediaDeviceInfo.kind')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('MediaDeviceInfo.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaDeviceInfo[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaDeviceInfo, MediaDeviceInfo);
   const MediaDeviceInfoCallback = dart.typedef('MediaDeviceInfoCallback', () => dart.functionType(dart.void, [core.List$(MediaDeviceInfo)]));
@@ -19346,7 +19628,7 @@
   dart.setSignature(MediaError, {
     constructors: () => ({_: [MediaError, []]})
   });
-  MediaError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaError')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaError"))];
+  MediaError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaError')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaError"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('MediaError.code')), dart.const(new _metadata.DocsEditable())]])]);
   MediaError[dart.owner] = exports;
   MediaError.MEDIA_ERR_ABORTED = 1;
   MediaError.MEDIA_ERR_DECODE = 3;
@@ -19372,7 +19654,7 @@
   dart.setSignature(MediaKeyError, {
     constructors: () => ({_: [MediaKeyError, []]})
   });
-  MediaKeyError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyError"))];
+  MediaKeyError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyError"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('MediaKeyError.code')), dart.const(new _metadata.DocsEditable())], 'systemCode', [dart.const(new _metadata.DomName('MediaKeyError.systemCode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaKeyError[dart.owner] = exports;
   MediaKeyError.MEDIA_KEYERR_CLIENT = 2;
   MediaKeyError.MEDIA_KEYERR_DOMAIN = 6;
@@ -19419,7 +19701,7 @@
   dart.setSignature(MediaKeyEvent, {
     constructors: () => ({_: [MediaKeyEvent, []]})
   });
-  MediaKeyEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyEvent"))];
+  MediaKeyEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyEvent"))], 'fields', dart.map(['defaultUrl', [dart.const(new _js_helper.JSName('defaultURL')), dart.const(new _metadata.DomName('MediaKeyEvent.defaultURL')), dart.const(new _metadata.DocsEditable())], 'errorCode', [dart.const(new _metadata.DomName('MediaKeyEvent.errorCode')), dart.const(new _metadata.DocsEditable())], 'initData', [dart.const(new _metadata.DomName('MediaKeyEvent.initData')), dart.const(new _metadata.DocsEditable())], 'keySystem', [dart.const(new _metadata.DomName('MediaKeyEvent.keySystem')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('MediaKeyEvent.message')), dart.const(new _metadata.DocsEditable())], 'sessionId', [dart.const(new _metadata.DomName('MediaKeyEvent.sessionId')), dart.const(new _metadata.DocsEditable())], 'systemCode', [dart.const(new _metadata.DomName('MediaKeyEvent.systemCode')), dart.const(new _metadata.DocsEditable())]])]);
   MediaKeyEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaKeyEvent, MediaKeyEvent);
   dart.defineExtensionNames([
@@ -19440,7 +19722,7 @@
   dart.setSignature(MediaKeyMessageEvent, {
     constructors: () => ({_: [MediaKeyMessageEvent, []]})
   });
-  MediaKeyMessageEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyMessageEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyMessageEvent"))];
+  MediaKeyMessageEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyMessageEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyMessageEvent"))], 'fields', dart.map(['destinationUrl', [dart.const(new _js_helper.JSName('destinationURL')), dart.const(new _metadata.DomName('MediaKeyMessageEvent.destinationURL')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('MediaKeyMessageEvent.message')), dart.const(new _metadata.DocsEditable())]])]);
   MediaKeyMessageEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaKeyMessageEvent, MediaKeyMessageEvent);
   dart.defineExtensionNames([
@@ -19461,7 +19743,7 @@
   dart.setSignature(MediaKeyNeededEvent, {
     constructors: () => ({_: [MediaKeyNeededEvent, []]})
   });
-  MediaKeyNeededEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyNeededEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyNeededEvent"))];
+  MediaKeyNeededEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeyNeededEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeyNeededEvent"))], 'fields', dart.map(['contentType', [dart.const(new _metadata.DomName('MediaKeyNeededEvent.contentType')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'initData', [dart.const(new _metadata.DomName('MediaKeyNeededEvent.initData')), dart.const(new _metadata.DocsEditable())]])]);
   MediaKeyNeededEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaKeyNeededEvent, MediaKeyNeededEvent);
   const _update = Symbol('_update');
@@ -19507,7 +19789,7 @@
       [_update]: [async.Future, [dart.dynamic]]
     })
   });
-  MediaKeySession[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeySession')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeySession"))];
+  MediaKeySession[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeySession')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeySession"))], 'fields', dart.map(['closed', [dart.const(new _metadata.DomName('MediaKeySession.closed')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'error', [dart.const(new _metadata.DomName('MediaKeySession.error')), dart.const(new _metadata.DocsEditable())], 'keySystem', [dart.const(new _metadata.DomName('MediaKeySession.keySystem')), dart.const(new _metadata.DocsEditable())], 'sessionId', [dart.const(new _metadata.DomName('MediaKeySession.sessionId')), dart.const(new _metadata.DocsEditable())]])]);
   MediaKeySession[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaKeySession, MediaKeySession);
   const _createSession = Symbol('_createSession');
@@ -19534,7 +19816,7 @@
     }),
     names: ['create', 'isTypeSupported']
   });
-  MediaKeys[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeys')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeys"))];
+  MediaKeys[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaKeys')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaKeys"))], 'fields', dart.map(['keySystem', [dart.const(new _metadata.DomName('MediaKeys.keySystem')), dart.const(new _metadata.DocsEditable())]])]);
   MediaKeys[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaKeys, MediaKeys);
   dart.defineExtensionNames([
@@ -19575,7 +19857,7 @@
       [dartx.item]: [core.String, [core.int]]
     })
   });
-  MediaList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaList"))];
+  MediaList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('MediaList.length')), dart.const(new _metadata.DocsEditable())], 'mediaText', [dart.const(new _metadata.DomName('MediaList.mediaText')), dart.const(new _metadata.DocsEditable())]])]);
   MediaList[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaList, MediaList);
   dart.defineExtensionNames([
@@ -19612,7 +19894,7 @@
       [dartx.removeListener]: [dart.void, [EventListener]]
     })
   });
-  MediaQueryList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaQueryList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaQueryList"))];
+  MediaQueryList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaQueryList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MediaQueryList"))], 'fields', dart.map(['matches', [dart.const(new _metadata.DomName('MediaQueryList.matches')), dart.const(new _metadata.DocsEditable())], 'media', [dart.const(new _metadata.DomName('MediaQueryList.media')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onChange', [dart.const(new _metadata.DomName('MediaQueryList.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaQueryList[dart.owner] = exports;
   dart.defineLazyProperties(MediaQueryList, {
     get changeEvent() {
@@ -19638,7 +19920,7 @@
   dart.setSignature(MediaQueryListEvent, {
     constructors: () => ({_: [MediaQueryListEvent, []]})
   });
-  MediaQueryListEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaQueryListEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaQueryListEvent"))];
+  MediaQueryListEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaQueryListEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaQueryListEvent"))], 'fields', dart.map(['matches', [dart.const(new _metadata.DomName('MediaQueryListEvent.matches')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'media', [dart.const(new _metadata.DomName('MediaQueryListEvent.media')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaQueryListEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaQueryListEvent, MediaQueryListEvent);
   dart.defineExtensionNames([
@@ -19704,7 +19986,7 @@
     }),
     names: ['_create_1', 'isTypeSupported']
   });
-  MediaSource[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaSource')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '11')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaSource"))];
+  MediaSource[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaSource')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '11')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaSource"))], 'fields', dart.map(['activeSourceBuffers', [dart.const(new _metadata.DomName('MediaSource.activeSourceBuffers')), dart.const(new _metadata.DocsEditable())], 'duration', [dart.const(new _metadata.DomName('MediaSource.duration')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('MediaSource.readyState')), dart.const(new _metadata.DocsEditable())], 'sourceBuffers', [dart.const(new _metadata.DomName('MediaSource.sourceBuffers')), dart.const(new _metadata.DocsEditable())]])]);
   MediaSource[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaSource, MediaSource);
   dart.defineExtensionNames([
@@ -19817,7 +20099,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  MediaStream[dart.metadata] = () => [dart.const(new _metadata.DomName('MediaStream')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStream"))];
+  MediaStream[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('MediaStream')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStream"))], 'fields', dart.map(['ended', [dart.const(new _metadata.DomName('MediaStream.ended')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('MediaStream.id')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('MediaStream.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onAddTrack', [dart.const(new _metadata.DomName('MediaStream.onaddtrack')), dart.const(new _metadata.DocsEditable())], 'onEnded', [dart.const(new _metadata.DomName('MediaStream.onended')), dart.const(new _metadata.DocsEditable())], 'onRemoveTrack', [dart.const(new _metadata.DomName('MediaStream.onremovetrack')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStream[dart.owner] = exports;
   dart.defineLazyProperties(MediaStream, {
     get addTrackEvent() {
@@ -19848,7 +20130,7 @@
   dart.setSignature(MediaStreamEvent, {
     constructors: () => ({_: [MediaStreamEvent, []]})
   });
-  MediaStreamEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamEvent"))];
+  MediaStreamEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamEvent"))], 'fields', dart.map(['stream', [dart.const(new _metadata.DomName('MediaStreamEvent.stream')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStreamEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaStreamEvent, MediaStreamEvent);
   dart.defineExtensionNames([
@@ -19924,7 +20206,7 @@
     }),
     names: ['_getSources', 'getSources']
   });
-  MediaStreamTrack[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamTrack')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamTrack"))];
+  MediaStreamTrack[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamTrack')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamTrack"))], 'fields', dart.map(['enabled', [dart.const(new _metadata.DomName('MediaStreamTrack.enabled')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('MediaStreamTrack.id')), dart.const(new _metadata.DocsEditable())], 'kind', [dart.const(new _metadata.DomName('MediaStreamTrack.kind')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('MediaStreamTrack.label')), dart.const(new _metadata.DocsEditable())], 'muted', [dart.const(new _metadata.DomName('MediaStreamTrack.muted')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'readyState', [dart.const(new _metadata.DomName('MediaStreamTrack.readyState')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onEnded', [dart.const(new _metadata.DomName('MediaStreamTrack.onended')), dart.const(new _metadata.DocsEditable())], 'onMute', [dart.const(new _metadata.DomName('MediaStreamTrack.onmute')), dart.const(new _metadata.DocsEditable())], 'onUnmute', [dart.const(new _metadata.DomName('MediaStreamTrack.onunmute')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStreamTrack[dart.owner] = exports;
   dart.defineLazyProperties(MediaStreamTrack, {
     get endedEvent() {
@@ -19955,7 +20237,7 @@
   dart.setSignature(MediaStreamTrackEvent, {
     constructors: () => ({_: [MediaStreamTrackEvent, []]})
   });
-  MediaStreamTrackEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamTrackEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamTrackEvent"))];
+  MediaStreamTrackEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamTrackEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamTrackEvent"))], 'fields', dart.map(['track', [dart.const(new _metadata.DomName('MediaStreamTrackEvent.track')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStreamTrackEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaStreamTrackEvent, MediaStreamTrackEvent);
   const MediaStreamTrackSourcesCallback = dart.typedef('MediaStreamTrackSourcesCallback', () => dart.functionType(dart.void, [core.List$(SourceInfo)]));
@@ -19981,7 +20263,7 @@
   dart.setSignature(MemoryInfo, {
     constructors: () => ({_: [MemoryInfo, []]})
   });
-  MemoryInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MemoryInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MemoryInfo"))];
+  MemoryInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MemoryInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MemoryInfo"))], 'fields', dart.map(['jsHeapSizeLimit', [dart.const(new _metadata.DomName('MemoryInfo.jsHeapSizeLimit')), dart.const(new _metadata.DocsEditable())], 'totalJSHeapSize', [dart.const(new _metadata.DomName('MemoryInfo.totalJSHeapSize')), dart.const(new _metadata.DocsEditable())], 'usedJSHeapSize', [dart.const(new _metadata.DomName('MemoryInfo.usedJSHeapSize')), dart.const(new _metadata.DocsEditable())]])]);
   MemoryInfo[dart.owner] = exports;
   dart.registerExtension(dart.global.MemoryInfo, MemoryInfo);
   dart.defineExtensionNames([
@@ -20021,7 +20303,7 @@
       created: [MenuElement, []]
     })
   });
-  MenuElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMenuElement')), dart.const(new _js_helper.Native("HTMLMenuElement"))];
+  MenuElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMenuElement')), dart.const(new _js_helper.Native("HTMLMenuElement"))], 'fields', dart.map(['label', [dart.const(new _metadata.DomName('HTMLMenuElement.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('HTMLMenuElement.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MenuElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMenuElement, MenuElement);
   dart.defineExtensionNames([
@@ -20081,7 +20363,7 @@
       created: [MenuItemElement, []]
     })
   });
-  MenuItemElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMenuItemElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLMenuItemElement"))];
+  MenuItemElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMenuItemElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLMenuItemElement"))], 'fields', dart.map(['checked', [dart.const(new _metadata.DomName('HTMLMenuItemElement.checked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'defaultValue', [dart.const(new _js_helper.JSName('default')), dart.const(new _metadata.DomName('HTMLMenuItemElement.default')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'disabled', [dart.const(new _metadata.DomName('HTMLMenuItemElement.disabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('HTMLMenuItemElement.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('HTMLMenuItemElement.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MenuItemElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMenuItemElement, MenuItemElement);
   dart.defineExtensionNames([
@@ -20102,7 +20384,7 @@
   dart.setSignature(MessageChannel, {
     constructors: () => ({_: [MessageChannel, []]})
   });
-  MessageChannel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MessageChannel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MessageChannel"))];
+  MessageChannel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MessageChannel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MessageChannel"))], 'fields', dart.map(['port1', [dart.const(new _metadata.DomName('MessageChannel.port1')), dart.const(new _metadata.DocsEditable())], 'port2', [dart.const(new _metadata.DomName('MessageChannel.port2')), dart.const(new _metadata.DocsEditable())]])]);
   MessageChannel[dart.owner] = exports;
   dart.registerExtension(dart.global.MessageChannel, MessageChannel);
   const _initMessageEvent = Symbol('_initMessageEvent');
@@ -20165,7 +20447,7 @@
     }),
     methods: () => ({[_initMessageEvent]: [dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, Window, core.List$(MessagePort)]]})
   });
-  MessageEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('MessageEvent')), dart.const(new _js_helper.Native("MessageEvent"))];
+  MessageEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('MessageEvent')), dart.const(new _js_helper.Native("MessageEvent"))], 'fields', dart.map(['_get_data', [dart.const(new _js_helper.JSName('data')), dart.const(new _metadata.DomName('MessageEvent.data')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue, html_common.annotation_Returns_SerializedScriptValue], 'lastEventId', [dart.const(new _metadata.DomName('MessageEvent.lastEventId')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'origin', [dart.const(new _metadata.DomName('MessageEvent.origin')), dart.const(new _metadata.DocsEditable())], '_get_source', [dart.const(new _js_helper.JSName('source')), dart.const(new _metadata.DomName('MessageEvent.source')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null')), dart.const(new _js_helper.Returns('EventTarget|=Object'))]]), 'properties', dart.map(['data', [dart.const(new _metadata.DomName('MessageEvent.data')), dart.const(new _metadata.DocsEditable())], 'source', [dart.const(new _metadata.DomName('MessageEvent.source')), dart.const(new _metadata.DocsEditable())]])]);
   MessageEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MessageEvent, MessageEvent);
   dart.defineExtensionNames([
@@ -20215,7 +20497,7 @@
       [dartx.start]: [dart.void, []]
     })
   });
-  MessagePort[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MessagePort')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MessagePort"))];
+  MessagePort[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MessagePort')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("MessagePort"))], 'properties', dart.map(['onMessage', [dart.const(new _metadata.DomName('MessagePort.onmessage')), dart.const(new _metadata.DocsEditable())]])]);
   MessagePort[dart.owner] = exports;
   dart.defineLazyProperties(MessagePort, {
     get messageEvent() {
@@ -20268,7 +20550,7 @@
       created: [MetaElement, []]
     })
   });
-  MetaElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMetaElement')), dart.const(new _js_helper.Native("HTMLMetaElement"))];
+  MetaElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMetaElement')), dart.const(new _js_helper.Native("HTMLMetaElement"))], 'fields', dart.map(['content', [dart.const(new _metadata.DomName('HTMLMetaElement.content')), dart.const(new _metadata.DocsEditable())], 'httpEquiv', [dart.const(new _metadata.DomName('HTMLMetaElement.httpEquiv')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLMetaElement.name')), dart.const(new _metadata.DocsEditable())]])]);
   MetaElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMetaElement, MetaElement);
   const _get_modificationTime = Symbol('_get_modificationTime');
@@ -20293,7 +20575,7 @@
   dart.setSignature(Metadata, {
     constructors: () => ({_: [Metadata, []]})
   });
-  Metadata[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Metadata')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Metadata"))];
+  Metadata[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Metadata')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Metadata"))], 'fields', dart.map(['_get_modificationTime', [dart.const(new _js_helper.JSName('modificationTime')), dart.const(new _metadata.DomName('Metadata.modificationTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'size', [dart.const(new _metadata.DomName('Metadata.size')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['modificationTime', [dart.const(new _metadata.DomName('Metadata.modificationTime')), dart.const(new _metadata.DocsEditable())]])]);
   Metadata[dart.owner] = exports;
   dart.registerExtension(dart.global.Metadata, Metadata);
   const MetadataCallback = dart.typedef('MetadataCallback', () => dart.functionType(dart.void, [Metadata]));
@@ -20374,7 +20656,7 @@
       created: [MeterElement, []]
     })
   });
-  MeterElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMeterElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLMeterElement"))];
+  MeterElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMeterElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLMeterElement"))], 'fields', dart.map(['high', [dart.const(new _metadata.DomName('HTMLMeterElement.high')), dart.const(new _metadata.DocsEditable())], 'labels', [dart.const(new _metadata.DomName('HTMLMeterElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'low', [dart.const(new _metadata.DomName('HTMLMeterElement.low')), dart.const(new _metadata.DocsEditable())], 'max', [dart.const(new _metadata.DomName('HTMLMeterElement.max')), dart.const(new _metadata.DocsEditable())], 'min', [dart.const(new _metadata.DomName('HTMLMeterElement.min')), dart.const(new _metadata.DocsEditable())], 'optimum', [dart.const(new _metadata.DomName('HTMLMeterElement.optimum')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLMeterElement.value')), dart.const(new _metadata.DocsEditable())]])]);
   MeterElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMeterElement, MeterElement);
   dart.defineExtensionNames([
@@ -20407,7 +20689,7 @@
   dart.setSignature(MidiAccess, {
     constructors: () => ({_: [MidiAccess, []]})
   });
-  MidiAccess[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIAccess')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIAccess"))];
+  MidiAccess[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIAccess')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIAccess"))], 'fields', dart.map(['inputs', [dart.const(new _metadata.DomName('MIDIAccess.inputs')), dart.const(new _metadata.DocsEditable())], 'outputs', [dart.const(new _metadata.DomName('MIDIAccess.outputs')), dart.const(new _metadata.DocsEditable())], 'sysexEnabled', [dart.const(new _metadata.DomName('MIDIAccess.sysexEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onConnect', [dart.const(new _metadata.DomName('MIDIAccess.onconnect')), dart.const(new _metadata.DocsEditable())], 'onDisconnect', [dart.const(new _metadata.DomName('MIDIAccess.ondisconnect')), dart.const(new _metadata.DocsEditable())]])]);
   MidiAccess[dart.owner] = exports;
   dart.defineLazyProperties(MidiAccess, {
     get connectEvent() {
@@ -20432,7 +20714,7 @@
   dart.setSignature(MidiConnectionEvent, {
     constructors: () => ({_: [MidiConnectionEvent, []]})
   });
-  MidiConnectionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIConnectionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIConnectionEvent"))];
+  MidiConnectionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIConnectionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIConnectionEvent"))], 'fields', dart.map(['port', [dart.const(new _metadata.DomName('MIDIConnectionEvent.port')), dart.const(new _metadata.DocsEditable())]])]);
   MidiConnectionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MIDIConnectionEvent, MidiConnectionEvent);
   dart.defineExtensionNames([
@@ -20469,7 +20751,7 @@
   dart.setSignature(MidiPort, {
     constructors: () => ({_: [MidiPort, []]})
   });
-  MidiPort[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIPort')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIPort"))];
+  MidiPort[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIPort')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIPort"))], 'fields', dart.map(['id', [dart.const(new _metadata.DomName('MIDIPort.id')), dart.const(new _metadata.DocsEditable())], 'manufacturer', [dart.const(new _metadata.DomName('MIDIPort.manufacturer')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('MIDIPort.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('MIDIPort.type')), dart.const(new _metadata.DocsEditable())], 'version', [dart.const(new _metadata.DomName('MIDIPort.version')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onDisconnect', [dart.const(new _metadata.DomName('MIDIPort.ondisconnect')), dart.const(new _metadata.DocsEditable())]])]);
   MidiPort[dart.owner] = exports;
   dart.defineLazyProperties(MidiPort, {
     get disconnectEvent() {
@@ -20491,7 +20773,7 @@
   dart.setSignature(MidiInput, {
     constructors: () => ({_: [MidiInput, []]})
   });
-  MidiInput[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIInput')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIInput"))];
+  MidiInput[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIInput')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIInput"))], 'properties', dart.map(['onMidiMessage', [dart.const(new _metadata.DomName('MIDIInput.onmidimessage')), dart.const(new _metadata.DocsEditable())]])]);
   MidiInput[dart.owner] = exports;
   dart.defineLazyProperties(MidiInput, {
     get midiMessageEvent() {
@@ -20540,7 +20822,7 @@
       [dartx.values]: [DomIterator, []]
     })
   });
-  MidiInputMap[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIInputMap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIInputMap"))];
+  MidiInputMap[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIInputMap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIInputMap"))], 'fields', dart.map(['size', [dart.const(new _metadata.DomName('MIDIInputMap.size')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MidiInputMap[dart.owner] = exports;
   dart.registerExtension(dart.global.MIDIInputMap, MidiInputMap);
   dart.defineExtensionNames([
@@ -20561,7 +20843,7 @@
   dart.setSignature(MidiMessageEvent, {
     constructors: () => ({_: [MidiMessageEvent, []]})
   });
-  MidiMessageEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIMessageEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIMessageEvent"))];
+  MidiMessageEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIMessageEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIMessageEvent"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('MIDIMessageEvent.data')), dart.const(new _metadata.DocsEditable())], 'receivedTime', [dart.const(new _metadata.DomName('MIDIMessageEvent.receivedTime')), dart.const(new _metadata.DocsEditable())]])]);
   MidiMessageEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MIDIMessageEvent, MidiMessageEvent);
   dart.defineExtensionNames([
@@ -20579,7 +20861,7 @@
     constructors: () => ({_: [MidiOutput, []]}),
     methods: () => ({[dartx.send]: [dart.void, [typed_data.Uint8List], [core.num]]})
   });
-  MidiOutput[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIOutput')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIOutput"))];
+  MidiOutput[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIOutput')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIOutput"))]]);
   MidiOutput[dart.owner] = exports;
   dart.registerExtension(dart.global.MIDIOutput, MidiOutput);
   dart.defineExtensionNames([
@@ -20623,7 +20905,7 @@
       [dartx.values]: [DomIterator, []]
     })
   });
-  MidiOutputMap[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIOutputMap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIOutputMap"))];
+  MidiOutputMap[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MIDIOutputMap')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MIDIOutputMap"))], 'fields', dart.map(['size', [dart.const(new _metadata.DomName('MIDIOutputMap.size')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MidiOutputMap[dart.owner] = exports;
   dart.registerExtension(dart.global.MIDIOutputMap, MidiOutputMap);
   dart.defineExtensionNames([
@@ -20652,7 +20934,7 @@
   dart.setSignature(MimeType, {
     constructors: () => ({_: [MimeType, []]})
   });
-  MimeType[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MimeType')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MimeType"))];
+  MimeType[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MimeType')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MimeType"))], 'fields', dart.map(['description', [dart.const(new _metadata.DomName('MimeType.description')), dart.const(new _metadata.DocsEditable())], 'enabledPlugin', [dart.const(new _metadata.DomName('MimeType.enabledPlugin')), dart.const(new _metadata.DocsEditable())], 'suffixes', [dart.const(new _metadata.DomName('MimeType.suffixes')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('MimeType.type')), dart.const(new _metadata.DocsEditable())]])]);
   MimeType[dart.owner] = exports;
   dart.registerExtension(dart.global.MimeType, MimeType);
   dart.defineExtensionNames([
@@ -20731,7 +21013,7 @@
       [dartx.namedItem]: [MimeType, [core.String]]
     })
   });
-  MimeTypeArray[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MimeTypeArray')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MimeTypeArray"))];
+  MimeTypeArray[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MimeTypeArray')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MimeTypeArray"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('MimeTypeArray.length')), dart.const(new _metadata.DocsEditable())]])]);
   MimeTypeArray[dart.owner] = exports;
   dart.registerExtension(dart.global.MimeTypeArray, MimeTypeArray);
   dart.defineExtensionNames([
@@ -20767,7 +21049,7 @@
       created: [ModElement, []]
     })
   });
-  ModElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLModElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLModElement"))];
+  ModElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLModElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLModElement"))], 'fields', dart.map(['cite', [dart.const(new _metadata.DomName('HTMLModElement.cite')), dart.const(new _metadata.DocsEditable())], 'dateTime', [dart.const(new _metadata.DomName('HTMLModElement.dateTime')), dart.const(new _metadata.DocsEditable())]])]);
   ModElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLModElement, ModElement);
   const _initMouseEvent = Symbol('_initMouseEvent');
@@ -20921,7 +21203,7 @@
       [_initMouseEvent_1]: [dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]]
     })
   });
-  MouseEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('MouseEvent')), dart.const(new _js_helper.Native("MouseEvent,DragEvent,PointerEvent,MSPointerEvent"))];
+  MouseEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('MouseEvent')), dart.const(new _js_helper.Native("MouseEvent,DragEvent,PointerEvent,MSPointerEvent"))], 'fields', dart.map(['altKey', [dart.const(new _metadata.DomName('MouseEvent.altKey')), dart.const(new _metadata.DocsEditable())], 'button', [dart.const(new _metadata.DomName('MouseEvent.button')), dart.const(new _metadata.DocsEditable())], '_clientX', [dart.const(new _js_helper.JSName('clientX')), dart.const(new _metadata.DomName('MouseEvent.clientX')), dart.const(new _metadata.DocsEditable())], '_clientY', [dart.const(new _js_helper.JSName('clientY')), dart.const(new _metadata.DomName('MouseEvent.clientY')), dart.const(new _metadata.DocsEditable())], 'ctrlKey', [dart.const(new _metadata.DomName('MouseEvent.ctrlKey')), dart.const(new _metadata.DocsEditable())], 'dataTransfer', [dart.const(new _metadata.DomName('MouseEvent.dataTransfer')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'fromElement', [dart.const(new _metadata.DomName('MouseEvent.fromElement')), dart.const(new _metadata.DocsEditable()), core.deprecated], 'metaKey', [dart.const(new _metadata.DomName('MouseEvent.metaKey')), dart.const(new _metadata.DocsEditable())], '_movementX', [dart.const(new _js_helper.JSName('movementX')), dart.const(new _metadata.DomName('MouseEvent.movementX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_movementY', [dart.const(new _js_helper.JSName('movementY')), dart.const(new _metadata.DomName('MouseEvent.movementY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'region', [dart.const(new _metadata.DomName('MouseEvent.region')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_relatedTarget', [dart.const(new _js_helper.JSName('relatedTarget')), dart.const(new _metadata.DomName('MouseEvent.relatedTarget')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Node')), dart.const(new _js_helper.Returns('EventTarget|=Object|Null'))], '_screenX', [dart.const(new _js_helper.JSName('screenX')), dart.const(new _metadata.DomName('MouseEvent.screenX')), dart.const(new _metadata.DocsEditable())], '_screenY', [dart.const(new _js_helper.JSName('screenY')), dart.const(new _metadata.DomName('MouseEvent.screenY')), dart.const(new _metadata.DocsEditable())], 'shiftKey', [dart.const(new _metadata.DomName('MouseEvent.shiftKey')), dart.const(new _metadata.DocsEditable())], 'toElement', [dart.const(new _metadata.DomName('MouseEvent.toElement')), dart.const(new _metadata.DocsEditable()), core.deprecated], '_webkitMovementX', [dart.const(new _js_helper.JSName('webkitMovementX')), dart.const(new _metadata.DomName('MouseEvent.webkitMovementX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], '_webkitMovementY', [dart.const(new _js_helper.JSName('webkitMovementY')), dart.const(new _metadata.DomName('MouseEvent.webkitMovementY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['relatedTarget', [dart.const(new _metadata.DomName('MouseEvent.relatedTarget')), dart.const(new _metadata.DocsEditable())], 'client', [dart.const(new _metadata.DomName('MouseEvent.clientX')), dart.const(new _metadata.DomName('MouseEvent.clientY'))], 'movement', [dart.const(new _metadata.DomName('MouseEvent.movementX')), dart.const(new _metadata.DomName('MouseEvent.movementY')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'screen', [dart.const(new _metadata.DomName('MouseEvent.screenX')), dart.const(new _metadata.DomName('MouseEvent.screenY'))]])]);
   MouseEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MouseEvent, MouseEvent);
   const MutationCallback = dart.typedef('MutationCallback', () => dart.functionType(dart.void, [core.List$(MutationRecord), MutationObserver]));
@@ -21009,7 +21291,7 @@
     }),
     names: ['_createDict', '_add', '_fixupList']
   });
-  MutationObserver[dart.metadata] = () => [dart.const(new _metadata.DomName('MutationObserver')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MutationObserver,WebKitMutationObserver"))];
+  MutationObserver[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('MutationObserver')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MutationObserver,WebKitMutationObserver"))]]);
   MutationObserver[dart.owner] = exports;
   MutationObserver._boolKeys = dart.const(dart.map({childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true}));
   dart.registerExtension(dart.global.MutationObserver, MutationObserver);
@@ -21059,7 +21341,7 @@
   dart.setSignature(MutationRecord, {
     constructors: () => ({_: [MutationRecord, []]})
   });
-  MutationRecord[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MutationRecord')), dart.const(new _js_helper.Native("MutationRecord"))];
+  MutationRecord[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MutationRecord')), dart.const(new _js_helper.Native("MutationRecord"))], 'fields', dart.map(['addedNodes', [dart.const(new _metadata.DomName('MutationRecord.addedNodes')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'attributeName', [dart.const(new _metadata.DomName('MutationRecord.attributeName')), dart.const(new _metadata.DocsEditable())], 'attributeNamespace', [dart.const(new _metadata.DomName('MutationRecord.attributeNamespace')), dart.const(new _metadata.DocsEditable())], 'nextSibling', [dart.const(new _metadata.DomName('MutationRecord.nextSibling')), dart.const(new _metadata.DocsEditable())], 'oldValue', [dart.const(new _metadata.DomName('MutationRecord.oldValue')), dart.const(new _metadata.DocsEditable())], 'previousSibling', [dart.const(new _metadata.DomName('MutationRecord.previousSibling')), dart.const(new _metadata.DocsEditable())], 'removedNodes', [dart.const(new _metadata.DomName('MutationRecord.removedNodes')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'target', [dart.const(new _metadata.DomName('MutationRecord.target')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('MutationRecord.type')), dart.const(new _metadata.DocsEditable())]])]);
   MutationRecord[dart.owner] = exports;
   dart.registerExtension(dart.global.MutationRecord, MutationRecord);
   const _ensureGetUserMedia = Symbol('_ensureGetUserMedia');
@@ -21239,7 +21521,7 @@
       [dartx.sendBeacon]: [core.bool, [core.String, dart.dynamic]]
     })
   });
-  Navigator[dart.metadata] = () => [dart.const(new _metadata.DomName('Navigator')), dart.const(new _js_helper.Native("Navigator"))];
+  Navigator[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Navigator')), dart.const(new _js_helper.Native("Navigator"))], 'fields', dart.map(['connection', [dart.const(new _metadata.DomName('Navigator.connection')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'cookieEnabled', [dart.const(new _metadata.DomName('Navigator.cookieEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'credentials', [dart.const(new _metadata.DomName('Navigator.credentials')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'doNotTrack', [dart.const(new _metadata.DomName('Navigator.doNotTrack')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'geofencing', [dart.const(new _metadata.DomName('Navigator.geofencing')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'geolocation', [dart.const(new _metadata.DomName('Navigator.geolocation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'maxTouchPoints', [dart.const(new _metadata.DomName('Navigator.maxTouchPoints')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'mimeTypes', [dart.const(new _metadata.DomName('Navigator.mimeTypes')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'presentation', [dart.const(new _metadata.DomName('Navigator.presentation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'productSub', [dart.const(new _metadata.DomName('Navigator.productSub')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'push', [dart.const(new _metadata.DomName('Navigator.push')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'serviceWorker', [dart.const(new _metadata.DomName('Navigator.serviceWorker')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'storageQuota', [dart.const(new _metadata.DomName('Navigator.storageQuota')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'vendor', [dart.const(new _metadata.DomName('Navigator.vendor')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'vendorSub', [dart.const(new _metadata.DomName('Navigator.vendorSub')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'persistentStorage', [dart.const(new _js_helper.JSName('webkitPersistentStorage')), dart.const(new _metadata.DomName('Navigator.webkitPersistentStorage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'temporaryStorage', [dart.const(new _js_helper.JSName('webkitTemporaryStorage')), dart.const(new _metadata.DomName('Navigator.webkitTemporaryStorage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'hardwareConcurrency', [dart.const(new _metadata.DomName('Navigator.hardwareConcurrency')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'appCodeName', [dart.const(new _metadata.DomName('Navigator.appCodeName')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'appName', [dart.const(new _metadata.DomName('Navigator.appName')), dart.const(new _metadata.DocsEditable())], 'appVersion', [dart.const(new _metadata.DomName('Navigator.appVersion')), dart.const(new _metadata.DocsEditable())], 'dartEnabled', [dart.const(new _metadata.DomName('Navigator.dartEnabled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'platform', [dart.const(new _metadata.DomName('Navigator.platform')), dart.const(new _metadata.DocsEditable())], 'product', [dart.const(new _metadata.DomName('Navigator.product')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())], 'userAgent', [dart.const(new _metadata.DomName('Navigator.userAgent')), dart.const(new _metadata.DocsEditable())], 'languages', [dart.const(new _metadata.DomName('Navigator.languages')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLine', [dart.const(new _metadata.DomName('Navigator.onLine')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable())]]), 'properties', dart.map(['language', [dart.const(new _metadata.DomName('Navigator.language'))]])]);
   Navigator[dart.owner] = exports;
   dart.registerExtension(dart.global.Navigator, Navigator);
   dart.defineExtensionNames([
@@ -21254,7 +21536,7 @@
     constructors: () => ({_: [NavigatorCpu, []]})
   });
   dart.defineExtensionMembers(NavigatorCpu, ['hardwareConcurrency']);
-  NavigatorCpu[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorCPU')), dart.const(new _metadata.Experimental())];
+  NavigatorCpu[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorCPU')), dart.const(new _metadata.Experimental())]]);
   NavigatorCpu[dart.owner] = exports;
   dart.defineExtensionNames([
     'appCodeName',
@@ -21282,7 +21564,7 @@
     'product',
     'userAgent'
   ]);
-  NavigatorID[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorID')), dart.const(new _metadata.Experimental())];
+  NavigatorID[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorID')), dart.const(new _metadata.Experimental())]]);
   NavigatorID[dart.owner] = exports;
   dart.defineExtensionNames([
     'language',
@@ -21297,7 +21579,7 @@
     constructors: () => ({_: [NavigatorLanguage, []]})
   });
   dart.defineExtensionMembers(NavigatorLanguage, ['language', 'languages']);
-  NavigatorLanguage[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorLanguage')), dart.const(new _metadata.Experimental())];
+  NavigatorLanguage[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorLanguage')), dart.const(new _metadata.Experimental())]]);
   NavigatorLanguage[dart.owner] = exports;
   dart.defineExtensionNames([
     'onLine'
@@ -21311,7 +21593,7 @@
     constructors: () => ({_: [NavigatorOnLine, []]})
   });
   dart.defineExtensionMembers(NavigatorOnLine, ['onLine']);
-  NavigatorOnLine[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorOnLine')), dart.const(new _metadata.Experimental())];
+  NavigatorOnLine[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorOnLine')), dart.const(new _metadata.Experimental())]]);
   NavigatorOnLine[dart.owner] = exports;
   dart.defineExtensionNames([
     'constraintName',
@@ -21335,7 +21617,7 @@
   dart.setSignature(NavigatorUserMediaError, {
     constructors: () => ({_: [NavigatorUserMediaError, []]})
   });
-  NavigatorUserMediaError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorUserMediaError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("NavigatorUserMediaError"))];
+  NavigatorUserMediaError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NavigatorUserMediaError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("NavigatorUserMediaError"))], 'fields', dart.map(['constraintName', [dart.const(new _metadata.DomName('NavigatorUserMediaError.constraintName')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('NavigatorUserMediaError.message')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('NavigatorUserMediaError.name')), dart.const(new _metadata.DocsEditable())]])]);
   NavigatorUserMediaError[dart.owner] = exports;
   dart.registerExtension(dart.global.NavigatorUserMediaError, NavigatorUserMediaError);
   const _NavigatorUserMediaErrorCallback = dart.typedef('_NavigatorUserMediaErrorCallback', () => dart.functionType(dart.void, [NavigatorUserMediaError]));
@@ -21354,7 +21636,7 @@
   dart.setSignature(NetworkInformation, {
     constructors: () => ({_: [NetworkInformation, []]})
   });
-  NetworkInformation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NetworkInformation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("NetworkInformation"))];
+  NetworkInformation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NetworkInformation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("NetworkInformation"))], 'fields', dart.map(['type', [dart.const(new _metadata.DomName('NetworkInformation.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   NetworkInformation[dart.owner] = exports;
   dart.registerExtension(dart.global.NetworkInformation, NetworkInformation);
   class _ChildNodeListLazy extends collection.ListBase$(Node) {
@@ -21546,7 +21828,7 @@
   dart.setSignature(NodeFilter, {
     constructors: () => ({_: [NodeFilter, []]})
   });
-  NodeFilter[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NodeFilter')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("NodeFilter"))];
+  NodeFilter[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NodeFilter')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("NodeFilter"))]]);
   NodeFilter[dart.owner] = exports;
   NodeFilter.FILTER_ACCEPT = 1;
   NodeFilter.FILTER_REJECT = 2;
@@ -21609,7 +21891,7 @@
       [dartx.previousNode]: [Node, []]
     })
   });
-  NodeIterator[dart.metadata] = () => [dart.const(new _metadata.DomName('NodeIterator')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("NodeIterator"))];
+  NodeIterator[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('NodeIterator')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("NodeIterator"))], 'fields', dart.map(['pointerBeforeReferenceNode', [dart.const(new _metadata.DomName('NodeIterator.pointerBeforeReferenceNode')), dart.const(new _metadata.DocsEditable())], 'referenceNode', [dart.const(new _metadata.DomName('NodeIterator.referenceNode')), dart.const(new _metadata.DocsEditable())], 'root', [dart.const(new _metadata.DomName('NodeIterator.root')), dart.const(new _metadata.DocsEditable())], 'whatToShow', [dart.const(new _metadata.DomName('NodeIterator.whatToShow')), dart.const(new _metadata.DocsEditable())]])]);
   NodeIterator[dart.owner] = exports;
   dart.registerExtension(dart.global.NodeIterator, NodeIterator);
   const _item = Symbol('_item');
@@ -21679,7 +21961,7 @@
       [_item]: [Node, [core.int]]
     })
   });
-  NodeList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NodeList')), dart.const(new _js_helper.Native("NodeList,RadioNodeList"))];
+  NodeList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NodeList')), dart.const(new _js_helper.Native("NodeList,RadioNodeList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('NodeList.length')), dart.const(new _metadata.DocsEditable())]])]);
   NodeList[dart.owner] = exports;
   dart.registerExtension(dart.global.NodeList, NodeList);
   dart.defineExtensionNames([
@@ -21790,7 +22072,7 @@
     }),
     names: ['_factoryNotification', '_create_1', '_create_2', '_requestPermission', 'requestPermission']
   });
-  Notification[dart.metadata] = () => [dart.const(new _metadata.DomName('Notification')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Notification"))];
+  Notification[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Notification')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Notification"))], 'fields', dart.map(['body', [dart.const(new _metadata.DomName('Notification.body')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'dir', [dart.const(new _metadata.DomName('Notification.dir')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'icon', [dart.const(new _metadata.DomName('Notification.icon')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'lang', [dart.const(new _metadata.DomName('Notification.lang')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'permission', [dart.const(new _metadata.DomName('Notification.permission')), dart.const(new _metadata.DocsEditable())], 'tag', [dart.const(new _metadata.DomName('Notification.tag')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'title', [dart.const(new _metadata.DomName('Notification.title')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onClick', [dart.const(new _metadata.DomName('Notification.onclick')), dart.const(new _metadata.DocsEditable())], 'onClose', [dart.const(new _metadata.DomName('Notification.onclose')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('Notification.onerror')), dart.const(new _metadata.DocsEditable())], 'onShow', [dart.const(new _metadata.DomName('Notification.onshow')), dart.const(new _metadata.DocsEditable())]])]);
   Notification[dart.owner] = exports;
   dart.defineLazyProperties(Notification, {
     get clickEvent() {
@@ -21853,7 +22135,7 @@
       created: [OListElement, []]
     })
   });
-  OListElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOListElement')), dart.const(new _js_helper.Native("HTMLOListElement"))];
+  OListElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOListElement')), dart.const(new _js_helper.Native("HTMLOListElement"))], 'fields', dart.map(['reversed', [dart.const(new _metadata.DomName('HTMLOListElement.reversed')), dart.const(new _metadata.DocsEditable())], 'start', [dart.const(new _metadata.DomName('HTMLOListElement.start')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLOListElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   OListElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLOListElement, OListElement);
   dart.defineExtensionNames([
@@ -21976,7 +22258,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  ObjectElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLObjectElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLObjectElement"))];
+  ObjectElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLObjectElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLObjectElement"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('HTMLObjectElement.data')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLObjectElement.form')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('HTMLObjectElement.height')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLObjectElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'name', [dart.const(new _metadata.DomName('HTMLObjectElement.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLObjectElement.type')), dart.const(new _metadata.DocsEditable())], 'useMap', [dart.const(new _metadata.DomName('HTMLObjectElement.useMap')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLObjectElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLObjectElement.validity')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('HTMLObjectElement.width')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLObjectElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   ObjectElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLObjectElement, ObjectElement);
   dart.defineExtensionNames([
@@ -22016,7 +22298,7 @@
       created: [OptGroupElement, []]
     })
   });
-  OptGroupElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOptGroupElement')), dart.const(new _js_helper.Native("HTMLOptGroupElement"))];
+  OptGroupElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOptGroupElement')), dart.const(new _js_helper.Native("HTMLOptGroupElement"))], 'fields', dart.map(['disabled', [dart.const(new _metadata.DomName('HTMLOptGroupElement.disabled')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('HTMLOptGroupElement.label')), dart.const(new _metadata.DocsEditable())]])]);
   OptGroupElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLOptGroupElement, OptGroupElement);
   dart.defineExtensionNames([
@@ -22132,7 +22414,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
   });
-  OptionElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLOptionElement')), dart.const(new _js_helper.Native("HTMLOptionElement"))];
+  OptionElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLOptionElement')), dart.const(new _js_helper.Native("HTMLOptionElement"))], 'fields', dart.map(['defaultSelected', [dart.const(new _metadata.DomName('HTMLOptionElement.defaultSelected')), dart.const(new _metadata.DocsEditable())], 'disabled', [dart.const(new _metadata.DomName('HTMLOptionElement.disabled')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLOptionElement.form')), dart.const(new _metadata.DocsEditable())], 'index', [dart.const(new _metadata.DomName('HTMLOptionElement.index')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('HTMLOptionElement.label')), dart.const(new _metadata.DocsEditable())], 'selected', [dart.const(new _metadata.DomName('HTMLOptionElement.selected')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLOptionElement.value')), dart.const(new _metadata.DocsEditable())]])]);
   OptionElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLOptionElement, OptionElement);
   dart.defineExtensionNames([
@@ -22230,7 +22512,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  OutputElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOutputElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLOutputElement"))];
+  OutputElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLOutputElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLOutputElement"))], 'fields', dart.map(['defaultValue', [dart.const(new _metadata.DomName('HTMLOutputElement.defaultValue')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLOutputElement.form')), dart.const(new _metadata.DocsEditable())], 'htmlFor', [dart.const(new _metadata.DomName('HTMLOutputElement.htmlFor')), dart.const(new _metadata.DocsEditable())], 'labels', [dart.const(new _metadata.DomName('HTMLOutputElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'name', [dart.const(new _metadata.DomName('HTMLOutputElement.name')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLOutputElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLOutputElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLOutputElement.validity')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLOutputElement.value')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLOutputElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   OutputElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLOutputElement, OutputElement);
   dart.defineExtensionNames([
@@ -22255,7 +22537,7 @@
   dart.setSignature(OverflowEvent, {
     constructors: () => ({_: [OverflowEvent, []]})
   });
-  OverflowEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OverflowEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OverflowEvent"))];
+  OverflowEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OverflowEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OverflowEvent"))], 'fields', dart.map(['horizontalOverflow', [dart.const(new _metadata.DomName('OverflowEvent.horizontalOverflow')), dart.const(new _metadata.DocsEditable())], 'orient', [dart.const(new _metadata.DomName('OverflowEvent.orient')), dart.const(new _metadata.DocsEditable())], 'verticalOverflow', [dart.const(new _metadata.DomName('OverflowEvent.verticalOverflow')), dart.const(new _metadata.DocsEditable())]])]);
   OverflowEvent[dart.owner] = exports;
   OverflowEvent.BOTH = 2;
   OverflowEvent.HORIZONTAL = 0;
@@ -22275,7 +22557,7 @@
   dart.setSignature(PageTransitionEvent, {
     constructors: () => ({_: [PageTransitionEvent, []]})
   });
-  PageTransitionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PageTransitionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PageTransitionEvent"))];
+  PageTransitionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PageTransitionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PageTransitionEvent"))], 'fields', dart.map(['persisted', [dart.const(new _metadata.DomName('PageTransitionEvent.persisted')), dart.const(new _metadata.DocsEditable())]])]);
   PageTransitionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.PageTransitionEvent, PageTransitionEvent);
   class ParagraphElement extends HtmlElement {
@@ -22297,7 +22579,7 @@
       created: [ParagraphElement, []]
     })
   });
-  ParagraphElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLParagraphElement')), dart.const(new _js_helper.Native("HTMLParagraphElement"))];
+  ParagraphElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLParagraphElement')), dart.const(new _js_helper.Native("HTMLParagraphElement"))]]);
   ParagraphElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLParagraphElement, ParagraphElement);
   dart.defineExtensionNames([
@@ -22337,7 +22619,7 @@
       created: [ParamElement, []]
     })
   });
-  ParamElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLParamElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLParamElement"))];
+  ParamElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLParamElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("HTMLParamElement"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('HTMLParamElement.name')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLParamElement.value')), dart.const(new _metadata.DocsEditable())]])]);
   ParamElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLParamElement, ParamElement);
   class ParentNode extends _interceptors.Interceptor {
@@ -22349,7 +22631,7 @@
     constructors: () => ({_: [ParentNode, []]})
   });
   dart.defineExtensionMembers(ParentNode, [_childElementCount, _children, _firstElementChild, _lastElementChild]);
-  ParentNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ParentNode')), dart.const(new _metadata.Experimental())];
+  ParentNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ParentNode')), dart.const(new _metadata.Experimental())]]);
   ParentNode[dart.owner] = exports;
   dart.defineExtensionNames([
     'addPath',
@@ -22445,7 +22727,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  Path2D[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Path2D')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Path2D"))];
+  Path2D[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Path2D')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Path2D"))]]);
   Path2D[dart.owner] = exports;
   dart.registerExtension(dart.global.Path2D, Path2D);
   dart.defineExtensionNames([
@@ -22529,7 +22811,7 @@
       [dartx.setResourceTimingBufferSize]: [dart.void, [core.int]]
     })
   });
-  Performance[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Performance')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _js_helper.Native("Performance"))];
+  Performance[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Performance')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE)), dart.const(new _js_helper.Native("Performance"))], 'fields', dart.map(['memory', [dart.const(new _metadata.DomName('Performance.memory')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'navigation', [dart.const(new _metadata.DomName('Performance.navigation')), dart.const(new _metadata.DocsEditable())], 'timing', [dart.const(new _metadata.DomName('Performance.timing')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onResourceTimingBufferFull', [dart.const(new _metadata.DomName('Performance.onwebkitresourcetimingbufferfull')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Performance[dart.owner] = exports;
   dart.defineLazyProperties(Performance, {
     get resourceTimingBufferFullEvent() {
@@ -22563,7 +22845,7 @@
   dart.setSignature(PerformanceEntry, {
     constructors: () => ({_: [PerformanceEntry, []]})
   });
-  PerformanceEntry[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceEntry"))];
+  PerformanceEntry[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceEntry')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceEntry"))], 'fields', dart.map(['duration', [dart.const(new _metadata.DomName('PerformanceEntry.duration')), dart.const(new _metadata.DocsEditable())], 'entryType', [dart.const(new _metadata.DomName('PerformanceEntry.entryType')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('PerformanceEntry.name')), dart.const(new _metadata.DocsEditable())], 'startTime', [dart.const(new _metadata.DomName('PerformanceEntry.startTime')), dart.const(new _metadata.DocsEditable())]])]);
   PerformanceEntry[dart.owner] = exports;
   dart.registerExtension(dart.global.PerformanceEntry, PerformanceEntry);
   class PerformanceMark extends PerformanceEntry {
@@ -22574,7 +22856,7 @@
   dart.setSignature(PerformanceMark, {
     constructors: () => ({_: [PerformanceMark, []]})
   });
-  PerformanceMark[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceMark')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceMark"))];
+  PerformanceMark[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceMark')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceMark"))]]);
   PerformanceMark[dart.owner] = exports;
   dart.registerExtension(dart.global.PerformanceMark, PerformanceMark);
   class PerformanceMeasure extends PerformanceEntry {
@@ -22585,7 +22867,7 @@
   dart.setSignature(PerformanceMeasure, {
     constructors: () => ({_: [PerformanceMeasure, []]})
   });
-  PerformanceMeasure[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceMeasure')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceMeasure"))];
+  PerformanceMeasure[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceMeasure')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceMeasure"))]]);
   PerformanceMeasure[dart.owner] = exports;
   dart.registerExtension(dart.global.PerformanceMeasure, PerformanceMeasure);
   dart.defineExtensionNames([
@@ -22606,7 +22888,7 @@
   dart.setSignature(PerformanceNavigation, {
     constructors: () => ({_: [PerformanceNavigation, []]})
   });
-  PerformanceNavigation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceNavigation')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PerformanceNavigation"))];
+  PerformanceNavigation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceNavigation')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PerformanceNavigation"))], 'fields', dart.map(['redirectCount', [dart.const(new _metadata.DomName('PerformanceNavigation.redirectCount')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('PerformanceNavigation.type')), dart.const(new _metadata.DocsEditable())]])]);
   PerformanceNavigation[dart.owner] = exports;
   PerformanceNavigation.TYPE_BACK_FORWARD = 2;
   PerformanceNavigation.TYPE_NAVIGATE = 0;
@@ -22671,7 +22953,7 @@
   dart.setSignature(PerformanceResourceTiming, {
     constructors: () => ({_: [PerformanceResourceTiming, []]})
   });
-  PerformanceResourceTiming[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceResourceTiming')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceResourceTiming"))];
+  PerformanceResourceTiming[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceResourceTiming')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PerformanceResourceTiming"))], 'fields', dart.map(['connectEnd', [dart.const(new _metadata.DomName('PerformanceResourceTiming.connectEnd')), dart.const(new _metadata.DocsEditable())], 'connectStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.connectStart')), dart.const(new _metadata.DocsEditable())], 'domainLookupEnd', [dart.const(new _metadata.DomName('PerformanceResourceTiming.domainLookupEnd')), dart.const(new _metadata.DocsEditable())], 'domainLookupStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.domainLookupStart')), dart.const(new _metadata.DocsEditable())], 'fetchStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.fetchStart')), dart.const(new _metadata.DocsEditable())], 'initiatorType', [dart.const(new _metadata.DomName('PerformanceResourceTiming.initiatorType')), dart.const(new _metadata.DocsEditable())], 'redirectEnd', [dart.const(new _metadata.DomName('PerformanceResourceTiming.redirectEnd')), dart.const(new _metadata.DocsEditable())], 'redirectStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.redirectStart')), dart.const(new _metadata.DocsEditable())], 'requestStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.requestStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'responseEnd', [dart.const(new _metadata.DomName('PerformanceResourceTiming.responseEnd')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'responseStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.responseStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'secureConnectionStart', [dart.const(new _metadata.DomName('PerformanceResourceTiming.secureConnectionStart')), dart.const(new _metadata.DocsEditable())]])]);
   PerformanceResourceTiming[dart.owner] = exports;
   dart.registerExtension(dart.global.PerformanceResourceTiming, PerformanceResourceTiming);
   dart.defineExtensionNames([
@@ -22768,7 +23050,7 @@
   dart.setSignature(PerformanceTiming, {
     constructors: () => ({_: [PerformanceTiming, []]})
   });
-  PerformanceTiming[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceTiming')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PerformanceTiming"))];
+  PerformanceTiming[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PerformanceTiming')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PerformanceTiming"))], 'fields', dart.map(['connectEnd', [dart.const(new _metadata.DomName('PerformanceTiming.connectEnd')), dart.const(new _metadata.DocsEditable())], 'connectStart', [dart.const(new _metadata.DomName('PerformanceTiming.connectStart')), dart.const(new _metadata.DocsEditable())], 'domComplete', [dart.const(new _metadata.DomName('PerformanceTiming.domComplete')), dart.const(new _metadata.DocsEditable())], 'domContentLoadedEventEnd', [dart.const(new _metadata.DomName('PerformanceTiming.domContentLoadedEventEnd')), dart.const(new _metadata.DocsEditable())], 'domContentLoadedEventStart', [dart.const(new _metadata.DomName('PerformanceTiming.domContentLoadedEventStart')), dart.const(new _metadata.DocsEditable())], 'domInteractive', [dart.const(new _metadata.DomName('PerformanceTiming.domInteractive')), dart.const(new _metadata.DocsEditable())], 'domLoading', [dart.const(new _metadata.DomName('PerformanceTiming.domLoading')), dart.const(new _metadata.DocsEditable())], 'domainLookupEnd', [dart.const(new _metadata.DomName('PerformanceTiming.domainLookupEnd')), dart.const(new _metadata.DocsEditable())], 'domainLookupStart', [dart.const(new _metadata.DomName('PerformanceTiming.domainLookupStart')), dart.const(new _metadata.DocsEditable())], 'fetchStart', [dart.const(new _metadata.DomName('PerformanceTiming.fetchStart')), dart.const(new _metadata.DocsEditable())], 'loadEventEnd', [dart.const(new _metadata.DomName('PerformanceTiming.loadEventEnd')), dart.const(new _metadata.DocsEditable())], 'loadEventStart', [dart.const(new _metadata.DomName('PerformanceTiming.loadEventStart')), dart.const(new _metadata.DocsEditable())], 'navigationStart', [dart.const(new _metadata.DomName('PerformanceTiming.navigationStart')), dart.const(new _metadata.DocsEditable())], 'redirectEnd', [dart.const(new _metadata.DomName('PerformanceTiming.redirectEnd')), dart.const(new _metadata.DocsEditable())], 'redirectStart', [dart.const(new _metadata.DomName('PerformanceTiming.redirectStart')), dart.const(new _metadata.DocsEditable())], 'requestStart', [dart.const(new _metadata.DomName('PerformanceTiming.requestStart')), dart.const(new _metadata.DocsEditable())], 'responseEnd', [dart.const(new _metadata.DomName('PerformanceTiming.responseEnd')), dart.const(new _metadata.DocsEditable())], 'responseStart', [dart.const(new _metadata.DomName('PerformanceTiming.responseStart')), dart.const(new _metadata.DocsEditable())], 'secureConnectionStart', [dart.const(new _metadata.DomName('PerformanceTiming.secureConnectionStart')), dart.const(new _metadata.DocsEditable())], 'unloadEventEnd', [dart.const(new _metadata.DomName('PerformanceTiming.unloadEventEnd')), dart.const(new _metadata.DocsEditable())], 'unloadEventStart', [dart.const(new _metadata.DomName('PerformanceTiming.unloadEventStart')), dart.const(new _metadata.DocsEditable())]])]);
   PerformanceTiming[dart.owner] = exports;
   dart.registerExtension(dart.global.PerformanceTiming, PerformanceTiming);
   class PictureElement extends HtmlElement {
@@ -22786,7 +23068,7 @@
       created: [PictureElement, []]
     })
   });
-  PictureElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLPictureElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLPictureElement"))];
+  PictureElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLPictureElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLPictureElement"))]]);
   PictureElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLPictureElement, PictureElement);
   dart.defineExtensionNames([
@@ -22831,7 +23113,7 @@
       [dartx.namedItem]: [MimeType, [core.String]]
     })
   });
-  Plugin[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Plugin')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Plugin"))];
+  Plugin[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Plugin')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Plugin"))], 'fields', dart.map(['description', [dart.const(new _metadata.DomName('Plugin.description')), dart.const(new _metadata.DocsEditable())], 'filename', [dart.const(new _metadata.DomName('Plugin.filename')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('Plugin.length')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('Plugin.name')), dart.const(new _metadata.DocsEditable())]])]);
   Plugin[dart.owner] = exports;
   dart.registerExtension(dart.global.Plugin, Plugin);
   dart.defineExtensionNames([
@@ -22915,7 +23197,7 @@
       [dartx.refresh]: [dart.void, [core.bool]]
     })
   });
-  PluginArray[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PluginArray')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PluginArray"))];
+  PluginArray[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PluginArray')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PluginArray"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('PluginArray.length')), dart.const(new _metadata.DocsEditable())]])]);
   PluginArray[dart.owner] = exports;
   dart.registerExtension(dart.global.PluginArray, PluginArray);
   dart.defineExtensionNames([
@@ -22948,7 +23230,7 @@
     }),
     methods: () => ({[dartx.createdCallback]: [dart.void, []]})
   });
-  PluginPlaceholderElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PluginPlaceholderElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PluginPlaceholderElement"))];
+  PluginPlaceholderElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PluginPlaceholderElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PluginPlaceholderElement"))], 'fields', dart.map(['message', [dart.const(new _metadata.DomName('PluginPlaceholderElement.message')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   PluginPlaceholderElement[dart.owner] = exports;
   dart.registerExtension(dart.global.PluginPlaceholderElement, PluginPlaceholderElement);
   dart.defineExtensionNames([
@@ -22968,7 +23250,7 @@
   dart.setSignature(PopStateEvent, {
     constructors: () => ({_: [PopStateEvent, []]})
   });
-  PopStateEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PopStateEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("PopStateEvent"))];
+  PopStateEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PopStateEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("PopStateEvent"))], 'fields', dart.map(['_get_state', [dart.const(new _js_helper.JSName('state')), dart.const(new _metadata.DomName('PopStateEvent.state')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue, html_common.annotation_Returns_SerializedScriptValue]]), 'properties', dart.map(['state', [dart.const(new _metadata.DomName('PopStateEvent.state')), dart.const(new _metadata.DocsEditable())]])]);
   PopStateEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.PopStateEvent, PopStateEvent);
   const _PositionCallback = dart.typedef('_PositionCallback', () => dart.functionType(dart.void, [Geoposition]));
@@ -22990,7 +23272,7 @@
   dart.setSignature(PositionError, {
     constructors: () => ({_: [PositionError, []]})
   });
-  PositionError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PositionError')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PositionError"))];
+  PositionError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PositionError')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("PositionError"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('PositionError.code')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('PositionError.message')), dart.const(new _metadata.DocsEditable())]])]);
   PositionError[dart.owner] = exports;
   PositionError.PERMISSION_DENIED = 1;
   PositionError.POSITION_UNAVAILABLE = 2;
@@ -23016,7 +23298,7 @@
       created: [PreElement, []]
     })
   });
-  PreElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLPreElement')), dart.const(new _js_helper.Native("HTMLPreElement"))];
+  PreElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLPreElement')), dart.const(new _js_helper.Native("HTMLPreElement"))]]);
   PreElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLPreElement, PreElement);
   class Presentation extends EventTarget {
@@ -23027,7 +23309,7 @@
   dart.setSignature(Presentation, {
     constructors: () => ({_: [Presentation, []]})
   });
-  Presentation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Presentation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Presentation"))];
+  Presentation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Presentation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Presentation"))]]);
   Presentation[dart.owner] = exports;
   dart.registerExtension(dart.global.Presentation, Presentation);
   dart.defineExtensionNames([
@@ -23048,7 +23330,7 @@
   dart.setSignature(ProcessingInstruction, {
     constructors: () => ({_: [ProcessingInstruction, []]})
   });
-  ProcessingInstruction[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ProcessingInstruction')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ProcessingInstruction"))];
+  ProcessingInstruction[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ProcessingInstruction')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("ProcessingInstruction"))], 'fields', dart.map(['sheet', [dart.const(new _metadata.DomName('ProcessingInstruction.sheet')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'target', [dart.const(new _metadata.DomName('ProcessingInstruction.target')), dart.const(new _metadata.DocsEditable())]])]);
   ProcessingInstruction[dart.owner] = exports;
   dart.registerExtension(dart.global.ProcessingInstruction, ProcessingInstruction);
   dart.defineExtensionNames([
@@ -23101,7 +23383,7 @@
       created: [ProgressElement, []]
     })
   });
-  ProgressElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLProgressElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLProgressElement"))];
+  ProgressElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLProgressElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _js_helper.Native("HTMLProgressElement"))], 'fields', dart.map(['labels', [dart.const(new _metadata.DomName('HTMLProgressElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'max', [dart.const(new _metadata.DomName('HTMLProgressElement.max')), dart.const(new _metadata.DocsEditable())], 'position', [dart.const(new _metadata.DomName('HTMLProgressElement.position')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLProgressElement.value')), dart.const(new _metadata.DocsEditable())]])]);
   ProgressElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLProgressElement, ProgressElement);
   dart.defineExtensionNames([
@@ -23126,7 +23408,7 @@
   dart.setSignature(ProgressEvent, {
     constructors: () => ({_: [ProgressEvent, []]})
   });
-  ProgressEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ProgressEvent')), dart.const(new _js_helper.Native("ProgressEvent"))];
+  ProgressEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ProgressEvent')), dart.const(new _js_helper.Native("ProgressEvent"))], 'fields', dart.map(['lengthComputable', [dart.const(new _metadata.DomName('ProgressEvent.lengthComputable')), dart.const(new _metadata.DocsEditable())], 'loaded', [dart.const(new _metadata.DomName('ProgressEvent.loaded')), dart.const(new _metadata.DocsEditable())], 'total', [dart.const(new _metadata.DomName('ProgressEvent.total')), dart.const(new _metadata.DocsEditable())]])]);
   ProgressEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.ProgressEvent, ProgressEvent);
   dart.defineExtensionNames([
@@ -23143,7 +23425,7 @@
   dart.setSignature(PushEvent, {
     constructors: () => ({_: [PushEvent, []]})
   });
-  PushEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushEvent"))];
+  PushEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushEvent"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('PushEvent.data')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   PushEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.PushEvent, PushEvent);
   dart.defineExtensionNames([
@@ -23161,7 +23443,7 @@
     constructors: () => ({_: [PushManager, []]}),
     methods: () => ({[dartx.register]: [async.Future, [core.String]]})
   });
-  PushManager[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushManager')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushManager"))];
+  PushManager[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushManager')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushManager"))]]);
   PushManager[dart.owner] = exports;
   dart.registerExtension(dart.global.PushManager, PushManager);
   dart.defineExtensionNames([
@@ -23182,7 +23464,7 @@
   dart.setSignature(PushRegistration, {
     constructors: () => ({_: [PushRegistration, []]})
   });
-  PushRegistration[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushRegistration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushRegistration"))];
+  PushRegistration[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PushRegistration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PushRegistration"))], 'fields', dart.map(['pushEndpoint', [dart.const(new _metadata.DomName('PushRegistration.pushEndpoint')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'pushRegistrationId', [dart.const(new _metadata.DomName('PushRegistration.pushRegistrationId')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   PushRegistration[dart.owner] = exports;
   dart.registerExtension(dart.global.PushRegistration, PushRegistration);
   dart.defineExtensionNames([
@@ -23214,7 +23496,7 @@
       created: [QuoteElement, []]
     })
   });
-  QuoteElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLQuoteElement')), dart.const(new _js_helper.Native("HTMLQuoteElement"))];
+  QuoteElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLQuoteElement')), dart.const(new _js_helper.Native("HTMLQuoteElement"))], 'fields', dart.map(['cite', [dart.const(new _metadata.DomName('HTMLQuoteElement.cite')), dart.const(new _metadata.DocsEditable())]])]);
   QuoteElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLQuoteElement, QuoteElement);
   const _RtcErrorCallback = dart.typedef('_RtcErrorCallback', () => dart.functionType(dart.void, [core.String]));
@@ -23384,7 +23666,7 @@
       [dartx.surroundContents]: [dart.void, [Node]]
     })
   });
-  Range[dart.metadata] = () => [dart.const(new _metadata.DomName('Range')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Range"))];
+  Range[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Range')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Range"))], 'fields', dart.map(['collapsed', [dart.const(new _metadata.DomName('Range.collapsed')), dart.const(new _metadata.DocsEditable())], 'commonAncestorContainer', [dart.const(new _metadata.DomName('Range.commonAncestorContainer')), dart.const(new _metadata.DocsEditable())], 'endContainer', [dart.const(new _metadata.DomName('Range.endContainer')), dart.const(new _metadata.DocsEditable())], 'endOffset', [dart.const(new _metadata.DomName('Range.endOffset')), dart.const(new _metadata.DocsEditable())], 'startContainer', [dart.const(new _metadata.DomName('Range.startContainer')), dart.const(new _metadata.DocsEditable())], 'startOffset', [dart.const(new _metadata.DomName('Range.startOffset')), dart.const(new _metadata.DocsEditable())]])]);
   Range[dart.owner] = exports;
   Range.END_TO_END = 2;
   Range.END_TO_START = 3;
@@ -23430,7 +23712,7 @@
       [dartx.wait]: [async.Future, []]
     })
   });
-  ReadableStream[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ReadableStream')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ReadableStream"))];
+  ReadableStream[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ReadableStream')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ReadableStream"))], 'fields', dart.map(['closed', [dart.const(new _metadata.DomName('ReadableStream.closed')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'state', [dart.const(new _metadata.DomName('ReadableStream.state')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ReadableStream[dart.owner] = exports;
   dart.registerExtension(dart.global.ReadableStream, ReadableStream);
   dart.defineExtensionNames([
@@ -23450,7 +23732,7 @@
   dart.setSignature(RelatedEvent, {
     constructors: () => ({_: [RelatedEvent, []]})
   });
-  RelatedEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RelatedEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RelatedEvent"))];
+  RelatedEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RelatedEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RelatedEvent"))], 'fields', dart.map(['_get_relatedTarget', [dart.const(new _js_helper.JSName('relatedTarget')), dart.const(new _metadata.DomName('RelatedEvent.relatedTarget')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['relatedTarget', [dart.const(new _metadata.DomName('RelatedEvent.relatedTarget')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   RelatedEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.RelatedEvent, RelatedEvent);
   const RequestAnimationFrameCallback = dart.typedef('RequestAnimationFrameCallback', () => dart.functionType(dart.void, [core.num]));
@@ -23469,7 +23751,7 @@
   dart.setSignature(ResourceProgressEvent, {
     constructors: () => ({_: [ResourceProgressEvent, []]})
   });
-  ResourceProgressEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ResourceProgressEvent')), core.deprecated, dart.const(new _js_helper.Native("ResourceProgressEvent"))];
+  ResourceProgressEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ResourceProgressEvent')), core.deprecated, dart.const(new _js_helper.Native("ResourceProgressEvent"))], 'fields', dart.map(['url', [dart.const(new _metadata.DomName('ResourceProgressEvent.url')), dart.const(new _metadata.DocsEditable())]])]);
   ResourceProgressEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.ResourceProgressEvent, ResourceProgressEvent);
   dart.defineExtensionNames([
@@ -23577,7 +23859,7 @@
       [dartx.sendTypedData]: [dart.void, [typed_data.TypedData]]
     })
   });
-  RtcDataChannel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDataChannel')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDataChannel,DataChannel"))];
+  RtcDataChannel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDataChannel')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDataChannel,DataChannel"))], 'fields', dart.map(['binaryType', [dart.const(new _metadata.DomName('RTCDataChannel.binaryType')), dart.const(new _metadata.DocsEditable())], 'bufferedAmount', [dart.const(new _metadata.DomName('RTCDataChannel.bufferedAmount')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('RTCDataChannel.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('RTCDataChannel.label')), dart.const(new _metadata.DocsEditable())], 'maxRetransmitTime', [dart.const(new _metadata.DomName('RTCDataChannel.maxRetransmitTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'maxRetransmits', [dart.const(new _metadata.DomName('RTCDataChannel.maxRetransmits')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'negotiated', [dart.const(new _metadata.DomName('RTCDataChannel.negotiated')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'ordered', [dart.const(new _metadata.DomName('RTCDataChannel.ordered')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'protocol', [dart.const(new _metadata.DomName('RTCDataChannel.protocol')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'readyState', [dart.const(new _metadata.DomName('RTCDataChannel.readyState')), dart.const(new _metadata.DocsEditable())], 'reliable', [dart.const(new _metadata.DomName('RTCDataChannel.reliable')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onClose', [dart.const(new _metadata.DomName('RTCDataChannel.onclose')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('RTCDataChannel.onerror')), dart.const(new _metadata.DocsEditable())], 'onMessage', [dart.const(new _metadata.DomName('RTCDataChannel.onmessage')), dart.const(new _metadata.DocsEditable())], 'onOpen', [dart.const(new _metadata.DomName('RTCDataChannel.onopen')), dart.const(new _metadata.DocsEditable())]])]);
   RtcDataChannel[dart.owner] = exports;
   dart.defineLazyProperties(RtcDataChannel, {
     get closeEvent() {
@@ -23608,7 +23890,7 @@
   dart.setSignature(RtcDataChannelEvent, {
     constructors: () => ({_: [RtcDataChannelEvent, []]})
   });
-  RtcDataChannelEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDataChannelEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDataChannelEvent"))];
+  RtcDataChannelEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDataChannelEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDataChannelEvent"))], 'fields', dart.map(['channel', [dart.const(new _metadata.DomName('RTCDataChannelEvent.channel')), dart.const(new _metadata.DocsEditable())]])]);
   RtcDataChannelEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCDataChannelEvent, RtcDataChannelEvent);
   dart.defineExtensionNames([
@@ -23650,7 +23932,7 @@
     constructors: () => ({_: [RtcDtmfSender, []]}),
     methods: () => ({[dartx.insertDtmf]: [dart.void, [core.String], [core.int, core.int]]})
   });
-  RtcDtmfSender[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDTMFSender')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDTMFSender"))];
+  RtcDtmfSender[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDTMFSender')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDTMFSender"))], 'fields', dart.map(['canInsertDtmf', [dart.const(new _js_helper.JSName('canInsertDTMF')), dart.const(new _metadata.DomName('RTCDTMFSender.canInsertDTMF')), dart.const(new _metadata.DocsEditable())], 'duration', [dart.const(new _metadata.DomName('RTCDTMFSender.duration')), dart.const(new _metadata.DocsEditable())], 'interToneGap', [dart.const(new _metadata.DomName('RTCDTMFSender.interToneGap')), dart.const(new _metadata.DocsEditable())], 'toneBuffer', [dart.const(new _metadata.DomName('RTCDTMFSender.toneBuffer')), dart.const(new _metadata.DocsEditable())], 'track', [dart.const(new _metadata.DomName('RTCDTMFSender.track')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onToneChange', [dart.const(new _metadata.DomName('RTCDTMFSender.ontonechange')), dart.const(new _metadata.DocsEditable())]])]);
   RtcDtmfSender[dart.owner] = exports;
   dart.defineLazyProperties(RtcDtmfSender, {
     get toneChangeEvent() {
@@ -23672,7 +23954,7 @@
   dart.setSignature(RtcDtmfToneChangeEvent, {
     constructors: () => ({_: [RtcDtmfToneChangeEvent, []]})
   });
-  RtcDtmfToneChangeEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDTMFToneChangeEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDTMFToneChangeEvent"))];
+  RtcDtmfToneChangeEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCDTMFToneChangeEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCDTMFToneChangeEvent"))], 'fields', dart.map(['tone', [dart.const(new _metadata.DomName('RTCDTMFToneChangeEvent.tone')), dart.const(new _metadata.DocsEditable())]])]);
   RtcDtmfToneChangeEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCDTMFToneChangeEvent, RtcDtmfToneChangeEvent);
   dart.defineExtensionNames([
@@ -23713,7 +23995,7 @@
       _: [RtcIceCandidate, []]
     })
   });
-  RtcIceCandidate[dart.metadata] = () => [dart.const(new _metadata.DomName('RTCIceCandidate')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCIceCandidate,mozRTCIceCandidate"))];
+  RtcIceCandidate[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('RTCIceCandidate')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCIceCandidate,mozRTCIceCandidate"))], 'fields', dart.map(['candidate', [dart.const(new _metadata.DomName('RTCIceCandidate.candidate')), dart.const(new _metadata.DocsEditable())], 'sdpMLineIndex', [dart.const(new _metadata.DomName('RTCIceCandidate.sdpMLineIndex')), dart.const(new _metadata.DocsEditable())], 'sdpMid', [dart.const(new _metadata.DomName('RTCIceCandidate.sdpMid')), dart.const(new _metadata.DocsEditable())]])]);
   RtcIceCandidate[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCIceCandidate, RtcIceCandidate);
   dart.defineExtensionNames([
@@ -23730,7 +24012,7 @@
   dart.setSignature(RtcIceCandidateEvent, {
     constructors: () => ({_: [RtcIceCandidateEvent, []]})
   });
-  RtcIceCandidateEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCIceCandidateEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCIceCandidateEvent,RTCPeerConnectionIceEvent"))];
+  RtcIceCandidateEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCIceCandidateEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCIceCandidateEvent,RTCPeerConnectionIceEvent"))], 'fields', dart.map(['candidate', [dart.const(new _metadata.DomName('RTCIceCandidateEvent.candidate')), dart.const(new _metadata.DocsEditable())]])]);
   RtcIceCandidateEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCIceCandidateEvent, RtcIceCandidateEvent);
   const _createOffer = Symbol('_createOffer');
@@ -24042,7 +24324,7 @@
       [_updateIce_3]: [dart.void, []]
     })
   });
-  RtcPeerConnection[dart.metadata] = () => [dart.const(new _metadata.DomName('RTCPeerConnection')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCPeerConnection,mozRTCPeerConnection"))];
+  RtcPeerConnection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('RTCPeerConnection')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCPeerConnection,mozRTCPeerConnection"))], 'fields', dart.map(['iceConnectionState', [dart.const(new _metadata.DomName('RTCPeerConnection.iceConnectionState')), dart.const(new _metadata.DocsEditable())], 'iceGatheringState', [dart.const(new _metadata.DomName('RTCPeerConnection.iceGatheringState')), dart.const(new _metadata.DocsEditable())], 'localDescription', [dart.const(new _metadata.DomName('RTCPeerConnection.localDescription')), dart.const(new _metadata.DocsEditable())], 'remoteDescription', [dart.const(new _metadata.DomName('RTCPeerConnection.remoteDescription')), dart.const(new _metadata.DocsEditable())], 'signalingState', [dart.const(new _metadata.DomName('RTCPeerConnection.signalingState')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onAddStream', [dart.const(new _metadata.DomName('RTCPeerConnection.onaddstream')), dart.const(new _metadata.DocsEditable())], 'onDataChannel', [dart.const(new _metadata.DomName('RTCPeerConnection.ondatachannel')), dart.const(new _metadata.DocsEditable())], 'onIceCandidate', [dart.const(new _metadata.DomName('RTCPeerConnection.onicecandidate')), dart.const(new _metadata.DocsEditable())], 'onIceConnectionStateChange', [dart.const(new _metadata.DomName('RTCPeerConnection.oniceconnectionstatechange')), dart.const(new _metadata.DocsEditable())], 'onNegotiationNeeded', [dart.const(new _metadata.DomName('RTCPeerConnection.onnegotiationneeded')), dart.const(new _metadata.DocsEditable())], 'onRemoveStream', [dart.const(new _metadata.DomName('RTCPeerConnection.onremovestream')), dart.const(new _metadata.DocsEditable())], 'onSignalingStateChange', [dart.const(new _metadata.DomName('RTCPeerConnection.onsignalingstatechange')), dart.const(new _metadata.DocsEditable())]])]);
   RtcPeerConnection[dart.owner] = exports;
   dart.defineLazyProperties(RtcPeerConnection, {
     get addStreamEvent() {
@@ -24099,7 +24381,7 @@
       _: [RtcSessionDescription, []]
     })
   });
-  RtcSessionDescription[dart.metadata] = () => [dart.const(new _metadata.DomName('RTCSessionDescription')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCSessionDescription,mozRTCSessionDescription"))];
+  RtcSessionDescription[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('RTCSessionDescription')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCSessionDescription,mozRTCSessionDescription"))], 'fields', dart.map(['sdp', [dart.const(new _metadata.DomName('RTCSessionDescription.sdp')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('RTCSessionDescription.type')), dart.const(new _metadata.DocsEditable())]])]);
   RtcSessionDescription[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCSessionDescription, RtcSessionDescription);
   const _get_timestamp = Symbol('_get_timestamp');
@@ -24148,7 +24430,7 @@
       [dartx.stat]: [core.String, [core.String]]
     })
   });
-  RtcStatsReport[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCStatsReport')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCStatsReport"))];
+  RtcStatsReport[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCStatsReport')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCStatsReport"))], 'fields', dart.map(['id', [dart.const(new _metadata.DomName('RTCStatsReport.id')), dart.const(new _metadata.DocsEditable())], 'local', [dart.const(new _metadata.DomName('RTCStatsReport.local')), dart.const(new _metadata.DocsEditable())], 'remote', [dart.const(new _metadata.DomName('RTCStatsReport.remote')), dart.const(new _metadata.DocsEditable())], '_get_timestamp', [dart.const(new _js_helper.JSName('timestamp')), dart.const(new _metadata.DomName('RTCStatsReport.timestamp')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'type', [dart.const(new _metadata.DomName('RTCStatsReport.type')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['timestamp', [dart.const(new _metadata.DomName('RTCStatsReport.timestamp')), dart.const(new _metadata.DocsEditable())]])]);
   RtcStatsReport[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCStatsReport, RtcStatsReport);
   dart.defineExtensionNames([
@@ -24177,7 +24459,7 @@
       [dartx.result]: [core.List$(RtcStatsReport), []]
     })
   });
-  RtcStatsResponse[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCStatsResponse')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCStatsResponse"))];
+  RtcStatsResponse[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RTCStatsResponse')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("RTCStatsResponse"))]]);
   RtcStatsResponse[dart.owner] = exports;
   dart.registerExtension(dart.global.RTCStatsResponse, RtcStatsResponse);
   const _availLeft = Symbol('_availLeft');
@@ -24230,7 +24512,7 @@
   dart.setSignature(Screen, {
     constructors: () => ({_: [Screen, []]})
   });
-  Screen[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Screen')), dart.const(new _js_helper.Native("Screen"))];
+  Screen[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Screen')), dart.const(new _js_helper.Native("Screen"))], 'fields', dart.map(['_availHeight', [dart.const(new _js_helper.JSName('availHeight')), dart.const(new _metadata.DomName('Screen.availHeight')), dart.const(new _metadata.DocsEditable())], '_availLeft', [dart.const(new _js_helper.JSName('availLeft')), dart.const(new _metadata.DomName('Screen.availLeft')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_availTop', [dart.const(new _js_helper.JSName('availTop')), dart.const(new _metadata.DomName('Screen.availTop')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_availWidth', [dart.const(new _js_helper.JSName('availWidth')), dart.const(new _metadata.DomName('Screen.availWidth')), dart.const(new _metadata.DocsEditable())], 'colorDepth', [dart.const(new _metadata.DomName('Screen.colorDepth')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('Screen.height')), dart.const(new _metadata.DocsEditable())], 'orientation', [dart.const(new _metadata.DomName('Screen.orientation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'pixelDepth', [dart.const(new _metadata.DomName('Screen.pixelDepth')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('Screen.width')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['available', [dart.const(new _metadata.DomName('Screen.availHeight')), dart.const(new _metadata.DomName('Screen.availLeft')), dart.const(new _metadata.DomName('Screen.availTop')), dart.const(new _metadata.DomName('Screen.availWidth'))]])]);
   Screen[dart.owner] = exports;
   dart.registerExtension(dart.global.Screen, Screen);
   dart.defineExtensionNames([
@@ -24267,7 +24549,7 @@
       [dartx.unlock]: [dart.void, []]
     })
   });
-  ScreenOrientation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ScreenOrientation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ScreenOrientation"))];
+  ScreenOrientation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ScreenOrientation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ScreenOrientation"))], 'fields', dart.map(['angle', [dart.const(new _metadata.DomName('ScreenOrientation.angle')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('ScreenOrientation.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onChange', [dart.const(new _metadata.DomName('ScreenOrientation.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ScreenOrientation[dart.owner] = exports;
   dart.defineLazyProperties(ScreenOrientation, {
     get changeEvent() {
@@ -24360,7 +24642,7 @@
       created: [ScriptElement, []]
     })
   });
-  ScriptElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLScriptElement')), dart.const(new _js_helper.Native("HTMLScriptElement"))];
+  ScriptElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLScriptElement')), dart.const(new _js_helper.Native("HTMLScriptElement"))], 'fields', dart.map(['async', [dart.const(new _metadata.DomName('HTMLScriptElement.async')), dart.const(new _metadata.DocsEditable())], 'charset', [dart.const(new _metadata.DomName('HTMLScriptElement.charset')), dart.const(new _metadata.DocsEditable())], 'crossOrigin', [dart.const(new _metadata.DomName('HTMLScriptElement.crossOrigin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'defer', [dart.const(new _metadata.DomName('HTMLScriptElement.defer')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLScriptElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'nonce', [dart.const(new _metadata.DomName('HTMLScriptElement.nonce')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'src', [dart.const(new _metadata.DomName('HTMLScriptElement.src')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLScriptElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   ScriptElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLScriptElement, ScriptElement);
   dart.defineExtensionNames([
@@ -24413,7 +24695,7 @@
   dart.setSignature(SecurityPolicyViolationEvent, {
     constructors: () => ({_: [SecurityPolicyViolationEvent, []]})
   });
-  SecurityPolicyViolationEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SecurityPolicyViolationEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SecurityPolicyViolationEvent"))];
+  SecurityPolicyViolationEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SecurityPolicyViolationEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SecurityPolicyViolationEvent"))], 'fields', dart.map(['blockedUri', [dart.const(new _js_helper.JSName('blockedURI')), dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.blockedURI')), dart.const(new _metadata.DocsEditable())], 'columnNumber', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.columnNumber')), dart.const(new _metadata.DocsEditable())], 'documentUri', [dart.const(new _js_helper.JSName('documentURI')), dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.documentURI')), dart.const(new _metadata.DocsEditable())], 'effectiveDirective', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.effectiveDirective')), dart.const(new _metadata.DocsEditable())], 'lineNumber', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.lineNumber')), dart.const(new _metadata.DocsEditable())], 'originalPolicy', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.originalPolicy')), dart.const(new _metadata.DocsEditable())], 'referrer', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.referrer')), dart.const(new _metadata.DocsEditable())], 'sourceFile', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.sourceFile')), dart.const(new _metadata.DocsEditable())], 'statusCode', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.statusCode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'violatedDirective', [dart.const(new _metadata.DomName('SecurityPolicyViolationEvent.violatedDirective')), dart.const(new _metadata.DocsEditable())]])]);
   SecurityPolicyViolationEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.SecurityPolicyViolationEvent, SecurityPolicyViolationEvent);
   dart.defineExtensionNames([
@@ -24584,7 +24866,7 @@
       [dartx.setCustomValidity]: [dart.void, [core.String]]
     })
   });
-  SelectElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLSelectElement')), dart.const(new _js_helper.Native("HTMLSelectElement"))];
+  SelectElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLSelectElement')), dart.const(new _js_helper.Native("HTMLSelectElement"))], 'fields', dart.map(['autofocus', [dart.const(new _metadata.DomName('HTMLSelectElement.autofocus')), dart.const(new _metadata.DocsEditable())], 'disabled', [dart.const(new _metadata.DomName('HTMLSelectElement.disabled')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLSelectElement.form')), dart.const(new _metadata.DocsEditable())], 'labels', [dart.const(new _metadata.DomName('HTMLSelectElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'length', [dart.const(new _metadata.DomName('HTMLSelectElement.length')), dart.const(new _metadata.DocsEditable())], 'multiple', [dart.const(new _metadata.DomName('HTMLSelectElement.multiple')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLSelectElement.name')), dart.const(new _metadata.DocsEditable())], 'required', [dart.const(new _metadata.DomName('HTMLSelectElement.required')), dart.const(new _metadata.DocsEditable())], 'selectedIndex', [dart.const(new _metadata.DomName('HTMLSelectElement.selectedIndex')), dart.const(new _metadata.DocsEditable())], 'size', [dart.const(new _metadata.DomName('HTMLSelectElement.size')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLSelectElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLSelectElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLSelectElement.validity')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLSelectElement.value')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLSelectElement.willValidate')), dart.const(new _metadata.DocsEditable())]])]);
   SelectElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLSelectElement, SelectElement);
   dart.defineExtensionNames([
@@ -24713,7 +24995,7 @@
       [dartx.setPosition]: [dart.void, [Node], [core.int]]
     })
   });
-  Selection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Selection')), dart.const(new _js_helper.Native("Selection"))];
+  Selection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Selection')), dart.const(new _js_helper.Native("Selection"))], 'fields', dart.map(['anchorNode', [dart.const(new _metadata.DomName('Selection.anchorNode')), dart.const(new _metadata.DocsEditable())], 'anchorOffset', [dart.const(new _metadata.DomName('Selection.anchorOffset')), dart.const(new _metadata.DocsEditable())], 'baseNode', [dart.const(new _metadata.DomName('Selection.baseNode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'baseOffset', [dart.const(new _metadata.DomName('Selection.baseOffset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'extentNode', [dart.const(new _metadata.DomName('Selection.extentNode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'extentOffset', [dart.const(new _metadata.DomName('Selection.extentOffset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'focusNode', [dart.const(new _metadata.DomName('Selection.focusNode')), dart.const(new _metadata.DocsEditable())], 'focusOffset', [dart.const(new _metadata.DomName('Selection.focusOffset')), dart.const(new _metadata.DocsEditable())], 'isCollapsed', [dart.const(new _metadata.DomName('Selection.isCollapsed')), dart.const(new _metadata.DocsEditable())], 'rangeCount', [dart.const(new _metadata.DomName('Selection.rangeCount')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('Selection.type')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Selection[dart.owner] = exports;
   dart.registerExtension(dart.global.Selection, Selection);
   dart.defineExtensionNames([
@@ -24753,7 +25035,7 @@
       [_postMessage_2]: [dart.void, [dart.dynamic]]
     })
   });
-  ServiceWorkerClient[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerClient')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerClient"))];
+  ServiceWorkerClient[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerClient')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerClient"))], 'fields', dart.map(['id', [dart.const(new _metadata.DomName('ServiceWorkerClient.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ServiceWorkerClient[dart.owner] = exports;
   dart.registerExtension(dart.global.ServiceWorkerClient, ServiceWorkerClient);
   const _getAll_1 = Symbol('_getAll_1');
@@ -24788,7 +25070,7 @@
       [_getAll_2]: [async.Future, []]
     })
   });
-  ServiceWorkerClients[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerClients')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerClients"))];
+  ServiceWorkerClients[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerClients')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerClients"))]]);
   ServiceWorkerClients[dart.owner] = exports;
   dart.registerExtension(dart.global.ServiceWorkerClients, ServiceWorkerClients);
   const _register_1 = Symbol('_register_1');
@@ -24836,7 +25118,7 @@
       [_register_2]: [async.Future, [dart.dynamic]]
     })
   });
-  ServiceWorkerContainer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerContainer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerContainer"))];
+  ServiceWorkerContainer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerContainer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerContainer"))], 'fields', dart.map(['controller', [dart.const(new _metadata.DomName('ServiceWorkerContainer.controller')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'ready', [dart.const(new _metadata.DomName('ServiceWorkerContainer.ready')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ServiceWorkerContainer[dart.owner] = exports;
   dart.registerExtension(dart.global.ServiceWorkerContainer, ServiceWorkerContainer);
   const _fetch_1 = Symbol('_fetch_1');
@@ -24907,7 +25189,7 @@
       [_fetch_4]: [async.Future, [_Request, dart.dynamic]]
     })
   });
-  ServiceWorkerGlobalScope[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerGlobalScope"))];
+  ServiceWorkerGlobalScope[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerGlobalScope"))], 'fields', dart.map(['caches', [dart.const(new _metadata.DomName('ServiceWorkerGlobalScope.caches')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'clients', [dart.const(new _metadata.DomName('ServiceWorkerGlobalScope.clients')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'scope', [dart.const(new _metadata.DomName('ServiceWorkerGlobalScope.scope')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onMessage', [dart.const(new _metadata.DomName('ServiceWorkerGlobalScope.onmessage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ServiceWorkerGlobalScope[dart.owner] = exports;
   dart.defineLazyProperties(ServiceWorkerGlobalScope, {
     get messageEvent() {
@@ -24946,7 +25228,7 @@
     constructors: () => ({_: [ServiceWorkerRegistration, []]}),
     methods: () => ({[dartx.unregister]: [async.Future, []]})
   });
-  ServiceWorkerRegistration[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerRegistration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerRegistration"))];
+  ServiceWorkerRegistration[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorkerRegistration')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorkerRegistration"))], 'fields', dart.map(['active', [dart.const(new _metadata.DomName('ServiceWorkerRegistration.active')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'installing', [dart.const(new _metadata.DomName('ServiceWorkerRegistration.installing')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'scope', [dart.const(new _metadata.DomName('ServiceWorkerRegistration.scope')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'waiting', [dart.const(new _metadata.DomName('ServiceWorkerRegistration.waiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ServiceWorkerRegistration[dart.owner] = exports;
   dart.registerExtension(dart.global.ServiceWorkerRegistration, ServiceWorkerRegistration);
   dart.defineExtensionNames([
@@ -24978,7 +25260,7 @@
     }),
     methods: () => ({[dartx.getDistributedNodes]: [core.List$(Node), []]})
   });
-  ShadowElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLShadowElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLShadowElement"))];
+  ShadowElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLShadowElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLShadowElement"))]]);
   ShadowElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLShadowElement, ShadowElement);
   dart.defineExtensionNames([
@@ -25070,7 +25352,7 @@
     statics: () => ({_shadowRootDeprecationReport: [dart.void, []]}),
     names: ['_shadowRootDeprecationReport']
   });
-  ShadowRoot[dart.metadata] = () => [dart.const(new _metadata.DomName('ShadowRoot')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ShadowRoot"))];
+  ShadowRoot[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('ShadowRoot')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '26')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ShadowRoot"))], 'fields', dart.map(['activeElement', [dart.const(new _metadata.DomName('ShadowRoot.activeElement')), dart.const(new _metadata.DocsEditable())], 'host', [dart.const(new _metadata.DomName('ShadowRoot.host')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'innerHtml', [dart.const(new _js_helper.JSName('innerHTML')), dart.const(new _metadata.DomName('ShadowRoot.innerHTML')), dart.const(new _metadata.DocsEditable())], 'olderShadowRoot', [dart.const(new _metadata.DomName('ShadowRoot.olderShadowRoot')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'styleSheets', [dart.const(new _metadata.DomName('ShadowRoot.styleSheets')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Returns('_StyleSheetList')), dart.const(new _js_helper.Creates('_StyleSheetList'))]]), 'properties', dart.map(['resetStyleInheritance', [core.deprecated], 'resetStyleInheritance=', [core.deprecated], 'applyAuthorStyles', [core.deprecated], 'applyAuthorStyles=', [core.deprecated]])]);
   ShadowRoot[dart.owner] = exports;
   ShadowRoot._shadowRootDeprecationReported = false;
   dart.registerExtension(dart.global.ShadowRoot, ShadowRoot);
@@ -25118,7 +25400,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  SharedWorker[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SharedWorker')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SharedWorker"))];
+  SharedWorker[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SharedWorker')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SharedWorker"))], 'fields', dart.map(['port', [dart.const(new _metadata.DomName('SharedWorker.port')), dart.const(new _metadata.DocsEditable())], 'workerStart', [dart.const(new _metadata.DomName('SharedWorker.workerStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onError', [dart.const(new _metadata.DomName('SharedWorker.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   SharedWorker[dart.owner] = exports;
   dart.defineLazyProperties(SharedWorker, {
     get errorEvent() {
@@ -25144,7 +25426,7 @@
   dart.setSignature(SharedWorkerGlobalScope, {
     constructors: () => ({_: [SharedWorkerGlobalScope, []]})
   });
-  SharedWorkerGlobalScope[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SharedWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SharedWorkerGlobalScope"))];
+  SharedWorkerGlobalScope[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SharedWorkerGlobalScope')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SharedWorkerGlobalScope"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('SharedWorkerGlobalScope.name')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onConnect', [dart.const(new _metadata.DomName('SharedWorkerGlobalScope.onconnect')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   SharedWorkerGlobalScope[dart.owner] = exports;
   dart.defineLazyProperties(SharedWorkerGlobalScope, {
     get connectEvent() {
@@ -25225,7 +25507,7 @@
       [dartx.remove]: [dart.void, [core.num, core.num]]
     })
   });
-  SourceBuffer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceBuffer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceBuffer"))];
+  SourceBuffer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceBuffer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceBuffer"))], 'fields', dart.map(['appendWindowEnd', [dart.const(new _metadata.DomName('SourceBuffer.appendWindowEnd')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'appendWindowStart', [dart.const(new _metadata.DomName('SourceBuffer.appendWindowStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'buffered', [dart.const(new _metadata.DomName('SourceBuffer.buffered')), dart.const(new _metadata.DocsEditable())], 'mode', [dart.const(new _metadata.DomName('SourceBuffer.mode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'timestampOffset', [dart.const(new _metadata.DomName('SourceBuffer.timestampOffset')), dart.const(new _metadata.DocsEditable())], 'updating', [dart.const(new _metadata.DomName('SourceBuffer.updating')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   SourceBuffer[dart.owner] = exports;
   dart.registerExtension(dart.global.SourceBuffer, SourceBuffer);
   dart.defineExtensionNames([
@@ -25295,7 +25577,7 @@
       [dartx.item]: [SourceBuffer, [core.int]]
     })
   });
-  SourceBufferList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceBufferList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceBufferList"))];
+  SourceBufferList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceBufferList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceBufferList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SourceBufferList.length')), dart.const(new _metadata.DocsEditable())]])]);
   SourceBufferList[dart.owner] = exports;
   dart.registerExtension(dart.global.SourceBufferList, SourceBufferList);
   dart.defineExtensionNames([
@@ -25367,7 +25649,7 @@
       created: [SourceElement, []]
     })
   });
-  SourceElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLSourceElement')), dart.const(new _js_helper.Native("HTMLSourceElement"))];
+  SourceElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLSourceElement')), dart.const(new _js_helper.Native("HTMLSourceElement"))], 'fields', dart.map(['integrity', [dart.const(new _metadata.DomName('HTMLSourceElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'media', [dart.const(new _metadata.DomName('HTMLSourceElement.media')), dart.const(new _metadata.DocsEditable())], 'sizes', [dart.const(new _metadata.DomName('HTMLSourceElement.sizes')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'src', [dart.const(new _metadata.DomName('HTMLSourceElement.src')), dart.const(new _metadata.DocsEditable())], 'srcset', [dart.const(new _metadata.DomName('HTMLSourceElement.srcset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('HTMLSourceElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   SourceElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLSourceElement, SourceElement);
   dart.defineExtensionNames([
@@ -25396,7 +25678,7 @@
   dart.setSignature(SourceInfo, {
     constructors: () => ({_: [SourceInfo, []]})
   });
-  SourceInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceInfo"))];
+  SourceInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SourceInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SourceInfo"))], 'fields', dart.map(['facing', [dart.const(new _metadata.DomName('SourceInfo.facing')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'id', [dart.const(new _metadata.DomName('SourceInfo.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('SourceInfo.kind')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('SourceInfo.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   SourceInfo[dart.owner] = exports;
   dart.registerExtension(dart.global.SourceInfo, SourceInfo);
   class SpanElement extends HtmlElement {
@@ -25418,7 +25700,7 @@
       created: [SpanElement, []]
     })
   });
-  SpanElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLSpanElement')), dart.const(new _js_helper.Native("HTMLSpanElement"))];
+  SpanElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLSpanElement')), dart.const(new _js_helper.Native("HTMLSpanElement"))]]);
   SpanElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLSpanElement, SpanElement);
   dart.defineExtensionNames([
@@ -25456,7 +25738,7 @@
     statics: () => ({_create_1: [SpeechGrammar, []]}),
     names: ['_create_1']
   });
-  SpeechGrammar[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechGrammar')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechGrammar"))];
+  SpeechGrammar[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechGrammar')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechGrammar"))], 'fields', dart.map(['src', [dart.const(new _metadata.DomName('SpeechGrammar.src')), dart.const(new _metadata.DocsEditable())], 'weight', [dart.const(new _metadata.DomName('SpeechGrammar.weight')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechGrammar[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechGrammar, SpeechGrammar);
   dart.defineExtensionNames([
@@ -25547,7 +25829,7 @@
     statics: () => ({_create_1: [SpeechGrammarList, []]}),
     names: ['_create_1']
   });
-  SpeechGrammarList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechGrammarList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechGrammarList"))];
+  SpeechGrammarList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechGrammarList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechGrammarList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SpeechGrammarList.length')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechGrammarList[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechGrammarList, SpeechGrammarList);
   dart.defineExtensionNames([
@@ -25665,7 +25947,7 @@
       [dartx.stop]: [dart.void, []]
     })
   });
-  SpeechRecognition[dart.metadata] = () => [dart.const(new _metadata.DomName('webkitSpeechRecognition')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("webkitSpeechRecognition"))];
+  SpeechRecognition[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('webkitSpeechRecognition')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("webkitSpeechRecognition"))], 'fields', dart.map(['continuous', [dart.const(new _metadata.DomName('SpeechRecognition.continuous')), dart.const(new _metadata.DocsEditable())], 'grammars', [dart.const(new _metadata.DomName('SpeechRecognition.grammars')), dart.const(new _metadata.DocsEditable())], 'interimResults', [dart.const(new _metadata.DomName('SpeechRecognition.interimResults')), dart.const(new _metadata.DocsEditable())], 'lang', [dart.const(new _metadata.DomName('SpeechRecognition.lang')), dart.const(new _metadata.DocsEditable())], 'maxAlternatives', [dart.const(new _metadata.DomName('SpeechRecognition.maxAlternatives')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onAudioEnd', [dart.const(new _metadata.DomName('SpeechRecognition.onaudioend')), dart.const(new _metadata.DocsEditable())], 'onAudioStart', [dart.const(new _metadata.DomName('SpeechRecognition.onaudiostart')), dart.const(new _metadata.DocsEditable())], 'onEnd', [dart.const(new _metadata.DomName('SpeechRecognition.onend')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('SpeechRecognition.onerror')), dart.const(new _metadata.DocsEditable())], 'onNoMatch', [dart.const(new _metadata.DomName('SpeechRecognition.onnomatch')), dart.const(new _metadata.DocsEditable())], 'onResult', [dart.const(new _metadata.DomName('SpeechRecognition.onresult')), dart.const(new _metadata.DocsEditable())], 'onSoundEnd', [dart.const(new _metadata.DomName('SpeechRecognition.onsoundend')), dart.const(new _metadata.DocsEditable())], 'onSoundStart', [dart.const(new _metadata.DomName('SpeechRecognition.onsoundstart')), dart.const(new _metadata.DocsEditable())], 'onSpeechEnd', [dart.const(new _metadata.DomName('SpeechRecognition.onspeechend')), dart.const(new _metadata.DocsEditable())], 'onSpeechStart', [dart.const(new _metadata.DomName('SpeechRecognition.onspeechstart')), dart.const(new _metadata.DocsEditable())], 'onStart', [dart.const(new _metadata.DomName('SpeechRecognition.onstart')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechRecognition[dart.owner] = exports;
   dart.defineLazyProperties(SpeechRecognition, {
     get audioEndEvent() {
@@ -25721,7 +26003,7 @@
   dart.setSignature(SpeechRecognitionAlternative, {
     constructors: () => ({_: [SpeechRecognitionAlternative, []]})
   });
-  SpeechRecognitionAlternative[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionAlternative')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionAlternative"))];
+  SpeechRecognitionAlternative[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionAlternative')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionAlternative"))], 'fields', dart.map(['confidence', [dart.const(new _metadata.DomName('SpeechRecognitionAlternative.confidence')), dart.const(new _metadata.DocsEditable())], 'transcript', [dart.const(new _metadata.DomName('SpeechRecognitionAlternative.transcript')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechRecognitionAlternative[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechRecognitionAlternative, SpeechRecognitionAlternative);
   dart.defineExtensionNames([
@@ -25742,7 +26024,7 @@
   dart.setSignature(SpeechRecognitionError, {
     constructors: () => ({_: [SpeechRecognitionError, []]})
   });
-  SpeechRecognitionError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionError')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionError"))];
+  SpeechRecognitionError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionError')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionError"))], 'fields', dart.map(['error', [dart.const(new _metadata.DomName('SpeechRecognitionError.error')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('SpeechRecognitionError.message')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechRecognitionError[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechRecognitionError, SpeechRecognitionError);
   dart.defineExtensionNames([
@@ -25771,7 +26053,7 @@
   dart.setSignature(SpeechRecognitionEvent, {
     constructors: () => ({_: [SpeechRecognitionEvent, []]})
   });
-  SpeechRecognitionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionEvent"))];
+  SpeechRecognitionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionEvent')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionEvent"))], 'fields', dart.map(['emma', [dart.const(new _metadata.DomName('SpeechRecognitionEvent.emma')), dart.const(new _metadata.DocsEditable())], 'interpretation', [dart.const(new _metadata.DomName('SpeechRecognitionEvent.interpretation')), dart.const(new _metadata.DocsEditable())], 'resultIndex', [dart.const(new _metadata.DomName('SpeechRecognitionEvent.resultIndex')), dart.const(new _metadata.DocsEditable())], 'results', [dart.const(new _metadata.DomName('SpeechRecognitionEvent.results')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('_SpeechRecognitionResultList')), dart.const(new _js_helper.Creates('_SpeechRecognitionResultList'))]])]);
   SpeechRecognitionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechRecognitionEvent, SpeechRecognitionEvent);
   dart.defineExtensionNames([
@@ -25797,7 +26079,7 @@
     constructors: () => ({_: [SpeechRecognitionResult, []]}),
     methods: () => ({[dartx.item]: [SpeechRecognitionAlternative, [core.int]]})
   });
-  SpeechRecognitionResult[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionResult')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionResult"))];
+  SpeechRecognitionResult[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionResult')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '25')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionResult"))], 'fields', dart.map(['isFinal', [dart.const(new _metadata.DomName('SpeechRecognitionResult.isFinal')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('SpeechRecognitionResult.length')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechRecognitionResult[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechRecognitionResult, SpeechRecognitionResult);
   dart.defineExtensionNames([
@@ -25849,7 +26131,7 @@
       [dartx.speak]: [dart.void, [SpeechSynthesisUtterance]]
     })
   });
-  SpeechSynthesis[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesis')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesis"))];
+  SpeechSynthesis[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesis')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesis"))], 'fields', dart.map(['paused', [dart.const(new _metadata.DomName('SpeechSynthesis.paused')), dart.const(new _metadata.DocsEditable())], 'pending', [dart.const(new _metadata.DomName('SpeechSynthesis.pending')), dart.const(new _metadata.DocsEditable())], 'speaking', [dart.const(new _metadata.DomName('SpeechSynthesis.speaking')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechSynthesis[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechSynthesis, SpeechSynthesis);
   dart.defineExtensionNames([
@@ -25874,7 +26156,7 @@
   dart.setSignature(SpeechSynthesisEvent, {
     constructors: () => ({_: [SpeechSynthesisEvent, []]})
   });
-  SpeechSynthesisEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisEvent"))];
+  SpeechSynthesisEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisEvent"))], 'fields', dart.map(['charIndex', [dart.const(new _metadata.DomName('SpeechSynthesisEvent.charIndex')), dart.const(new _metadata.DocsEditable())], 'elapsedTime', [dart.const(new _metadata.DomName('SpeechSynthesisEvent.elapsedTime')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('SpeechSynthesisEvent.name')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechSynthesisEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechSynthesisEvent, SpeechSynthesisEvent);
   dart.defineExtensionNames([
@@ -25978,7 +26260,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  SpeechSynthesisUtterance[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisUtterance')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisUtterance"))];
+  SpeechSynthesisUtterance[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisUtterance')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisUtterance"))], 'fields', dart.map(['lang', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.lang')), dart.const(new _metadata.DocsEditable())], 'pitch', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.pitch')), dart.const(new _metadata.DocsEditable())], 'rate', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.rate')), dart.const(new _metadata.DocsEditable())], 'text', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.text')), dart.const(new _metadata.DocsEditable())], 'voice', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.voice')), dart.const(new _metadata.DocsEditable())], 'volume', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.volume')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onBoundary', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onboundary')), dart.const(new _metadata.DocsEditable())], 'onEnd', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onend')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onerror')), dart.const(new _metadata.DocsEditable())], 'onMark', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onmark')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onpause')), dart.const(new _metadata.DocsEditable())], 'onResume', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onresume')), dart.const(new _metadata.DocsEditable())], 'onStart', [dart.const(new _metadata.DomName('SpeechSynthesisUtterance.onstart')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechSynthesisUtterance[dart.owner] = exports;
   dart.defineLazyProperties(SpeechSynthesisUtterance, {
     get boundaryEvent() {
@@ -26034,7 +26316,7 @@
   dart.setSignature(SpeechSynthesisVoice, {
     constructors: () => ({_: [SpeechSynthesisVoice, []]})
   });
-  SpeechSynthesisVoice[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisVoice')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisVoice"))];
+  SpeechSynthesisVoice[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechSynthesisVoice')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechSynthesisVoice"))], 'fields', dart.map(['defaultValue', [dart.const(new _js_helper.JSName('default')), dart.const(new _metadata.DomName('SpeechSynthesisVoice.default')), dart.const(new _metadata.DocsEditable())], 'lang', [dart.const(new _metadata.DomName('SpeechSynthesisVoice.lang')), dart.const(new _metadata.DocsEditable())], 'localService', [dart.const(new _metadata.DomName('SpeechSynthesisVoice.localService')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('SpeechSynthesisVoice.name')), dart.const(new _metadata.DocsEditable())], 'voiceUri', [dart.const(new _js_helper.JSName('voiceURI')), dart.const(new _metadata.DomName('SpeechSynthesisVoice.voiceURI')), dart.const(new _metadata.DocsEditable())]])]);
   SpeechSynthesisVoice[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechSynthesisVoice, SpeechSynthesisVoice);
   const _getItem = Symbol('_getItem');
@@ -26170,7 +26452,7 @@
       [_setItem]: [dart.void, [core.String, core.String]]
     })
   });
-  Storage[dart.metadata] = () => [dart.const(new _metadata.DomName('Storage')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Storage"))];
+  Storage[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('Storage')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("Storage"))], 'fields', dart.map(['_length', [dart.const(new _js_helper.JSName('length')), dart.const(new _metadata.DomName('Storage.length')), dart.const(new _metadata.DocsEditable())]])]);
   Storage[dart.owner] = exports;
   dart.registerExtension(dart.global.Storage, Storage);
   const StorageErrorCallback = dart.typedef('StorageErrorCallback', () => dart.functionType(dart.void, [DomError]));
@@ -26224,7 +26506,7 @@
     }),
     methods: () => ({[_initStorageEvent]: [dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, Storage]]})
   });
-  StorageEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('StorageEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("StorageEvent"))];
+  StorageEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('StorageEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("StorageEvent"))], 'fields', dart.map(['key', [dart.const(new _metadata.DomName('StorageEvent.key')), dart.const(new _metadata.DocsEditable())], 'newValue', [dart.const(new _metadata.DomName('StorageEvent.newValue')), dart.const(new _metadata.DocsEditable())], 'oldValue', [dart.const(new _metadata.DomName('StorageEvent.oldValue')), dart.const(new _metadata.DocsEditable())], 'storageArea', [dart.const(new _metadata.DomName('StorageEvent.storageArea')), dart.const(new _metadata.DocsEditable())], 'url', [dart.const(new _metadata.DomName('StorageEvent.url')), dart.const(new _metadata.DocsEditable())]])]);
   StorageEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.StorageEvent, StorageEvent);
   dart.defineExtensionNames([
@@ -26245,7 +26527,7 @@
   dart.setSignature(StorageInfo, {
     constructors: () => ({_: [StorageInfo, []]})
   });
-  StorageInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StorageInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StorageInfo"))];
+  StorageInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StorageInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StorageInfo"))], 'fields', dart.map(['quota', [dart.const(new _metadata.DomName('StorageInfo.quota')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'usage', [dart.const(new _metadata.DomName('StorageInfo.usage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   StorageInfo[dart.owner] = exports;
   dart.registerExtension(dart.global.StorageInfo, StorageInfo);
   dart.defineExtensionNames([
@@ -26274,7 +26556,7 @@
       [dartx.requestPersistentQuota]: [async.Future, [core.int]]
     })
   });
-  StorageQuota[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StorageQuota')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StorageQuota"))];
+  StorageQuota[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StorageQuota')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StorageQuota"))], 'fields', dart.map(['supportedTypes', [dart.const(new _metadata.DomName('StorageQuota.supportedTypes')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   StorageQuota[dart.owner] = exports;
   dart.registerExtension(dart.global.StorageQuota, StorageQuota);
   const StorageQuotaCallback = dart.typedef('StorageQuotaCallback', () => dart.functionType(dart.void, [core.int]));
@@ -26330,7 +26612,7 @@
       created: [StyleElement, []]
     })
   });
-  StyleElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLStyleElement')), dart.const(new _js_helper.Native("HTMLStyleElement"))];
+  StyleElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLStyleElement')), dart.const(new _js_helper.Native("HTMLStyleElement"))], 'fields', dart.map(['disabled', [dart.const(new _metadata.DomName('HTMLStyleElement.disabled')), dart.const(new _metadata.DocsEditable())], 'media', [dart.const(new _metadata.DomName('HTMLStyleElement.media')), dart.const(new _metadata.DocsEditable())], 'sheet', [dart.const(new _metadata.DomName('HTMLStyleElement.sheet')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLStyleElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   StyleElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLStyleElement, StyleElement);
   dart.defineExtensionNames([
@@ -26352,7 +26634,7 @@
     constructors: () => ({_: [StyleMedia, []]}),
     methods: () => ({[dartx.matchMedium]: [core.bool, [core.String]]})
   });
-  StyleMedia[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleMedia')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StyleMedia"))];
+  StyleMedia[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleMedia')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("StyleMedia"))], 'fields', dart.map(['type', [dart.const(new _metadata.DomName('StyleMedia.type')), dart.const(new _metadata.DocsEditable())]])]);
   StyleMedia[dart.owner] = exports;
   dart.registerExtension(dart.global.StyleMedia, StyleMedia);
   class TableCaptionElement extends HtmlElement {
@@ -26374,7 +26656,7 @@
       created: [TableCaptionElement, []]
     })
   });
-  TableCaptionElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableCaptionElement')), dart.const(new _js_helper.Native("HTMLTableCaptionElement"))];
+  TableCaptionElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableCaptionElement')), dart.const(new _js_helper.Native("HTMLTableCaptionElement"))]]);
   TableCaptionElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableCaptionElement, TableCaptionElement);
   dart.defineExtensionNames([
@@ -26427,7 +26709,7 @@
       created: [TableCellElement, []]
     })
   });
-  TableCellElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableCellElement')), dart.const(new _js_helper.Native("HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement"))];
+  TableCellElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableCellElement')), dart.const(new _js_helper.Native("HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement"))], 'fields', dart.map(['cellIndex', [dart.const(new _metadata.DomName('HTMLTableCellElement.cellIndex')), dart.const(new _metadata.DocsEditable())], 'colSpan', [dart.const(new _metadata.DomName('HTMLTableCellElement.colSpan')), dart.const(new _metadata.DocsEditable())], 'headers', [dart.const(new _metadata.DomName('HTMLTableCellElement.headers')), dart.const(new _metadata.DocsEditable())], 'rowSpan', [dart.const(new _metadata.DomName('HTMLTableCellElement.rowSpan')), dart.const(new _metadata.DocsEditable())]])]);
   TableCellElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableCellElement, TableCellElement);
   dart.defineExtensionNames([
@@ -26459,7 +26741,7 @@
       created: [TableColElement, []]
     })
   });
-  TableColElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableColElement')), dart.const(new _js_helper.Native("HTMLTableColElement"))];
+  TableColElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableColElement')), dart.const(new _js_helper.Native("HTMLTableColElement"))], 'fields', dart.map(['span', [dart.const(new _metadata.DomName('HTMLTableColElement.span')), dart.const(new _metadata.DocsEditable())]])]);
   TableColElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableColElement, TableColElement);
   const _tBodies = Symbol('_tBodies');
@@ -26625,7 +26907,7 @@
       [_insertRow]: [HtmlElement, [], [core.int]]
     })
   });
-  TableElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableElement')), dart.const(new _js_helper.Native("HTMLTableElement"))];
+  TableElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableElement')), dart.const(new _js_helper.Native("HTMLTableElement"))], 'fields', dart.map(['caption', [dart.const(new _metadata.DomName('HTMLTableElement.caption')), dart.const(new _metadata.DocsEditable())], '_rows', [dart.const(new _js_helper.JSName('rows')), dart.const(new _metadata.DomName('HTMLTableElement.rows')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], '_tBodies', [dart.const(new _js_helper.JSName('tBodies')), dart.const(new _metadata.DomName('HTMLTableElement.tBodies')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], 'tFoot', [dart.const(new _metadata.DomName('HTMLTableElement.tFoot')), dart.const(new _metadata.DocsEditable())], 'tHead', [dart.const(new _metadata.DomName('HTMLTableElement.tHead')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['tBodies', [dart.const(new _metadata.DomName('HTMLTableElement.tBodies'))], 'rows', [dart.const(new _metadata.DomName('HTMLTableElement.rows'))]])]);
   TableElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableElement, TableElement);
   const _cells = Symbol('_cells');
@@ -26703,7 +26985,7 @@
       [_insertCell]: [HtmlElement, [], [core.int]]
     })
   });
-  TableRowElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableRowElement')), dart.const(new _js_helper.Native("HTMLTableRowElement"))];
+  TableRowElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableRowElement')), dart.const(new _js_helper.Native("HTMLTableRowElement"))], 'fields', dart.map(['_cells', [dart.const(new _js_helper.JSName('cells')), dart.const(new _metadata.DomName('HTMLTableRowElement.cells')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))], 'rowIndex', [dart.const(new _metadata.DomName('HTMLTableRowElement.rowIndex')), dart.const(new _metadata.DocsEditable())], 'sectionRowIndex', [dart.const(new _metadata.DomName('HTMLTableRowElement.sectionRowIndex')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['cells', [dart.const(new _metadata.DomName('HTMLTableRowElement.cells'))]])]);
   TableRowElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableRowElement, TableRowElement);
   dart.defineExtensionNames([
@@ -26764,7 +27046,7 @@
       [_insertRow]: [HtmlElement, [], [core.int]]
     })
   });
-  TableSectionElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableSectionElement')), dart.const(new _js_helper.Native("HTMLTableSectionElement"))];
+  TableSectionElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTableSectionElement')), dart.const(new _js_helper.Native("HTMLTableSectionElement"))], 'fields', dart.map(['_rows', [dart.const(new _js_helper.JSName('rows')), dart.const(new _metadata.DomName('HTMLTableSectionElement.rows')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('HtmlCollection')), dart.const(new _js_helper.Creates('HtmlCollection'))]]), 'properties', dart.map(['rows', [dart.const(new _metadata.DomName('HTMLTableSectionElement.rows'))]])]);
   TableSectionElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTableSectionElement, TableSectionElement);
   dart.defineExtensionNames([
@@ -26804,7 +27086,7 @@
       created: [TemplateElement, []]
     })
   });
-  TemplateElement[dart.metadata] = () => [dart.const(new _metadata.Experimental()), dart.const(new _metadata.DomName('HTMLTemplateElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLTemplateElement"))];
+  TemplateElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.Experimental()), dart.const(new _metadata.DomName('HTMLTemplateElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLTemplateElement"))], 'fields', dart.map(['content', [dart.const(new _metadata.DomName('HTMLTemplateElement.content')), dart.const(new _metadata.DocsEditable())]])]);
   TemplateElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTemplateElement, TemplateElement);
   dart.defineExtensionNames([
@@ -27026,7 +27308,7 @@
       [dartx.setSelectionRange]: [dart.void, [core.int, core.int], [core.String]]
     })
   });
-  TextAreaElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTextAreaElement')), dart.const(new _js_helper.Native("HTMLTextAreaElement"))];
+  TextAreaElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTextAreaElement')), dart.const(new _js_helper.Native("HTMLTextAreaElement"))], 'fields', dart.map(['autofocus', [dart.const(new _metadata.DomName('HTMLTextAreaElement.autofocus')), dart.const(new _metadata.DocsEditable())], 'cols', [dart.const(new _metadata.DomName('HTMLTextAreaElement.cols')), dart.const(new _metadata.DocsEditable())], 'defaultValue', [dart.const(new _metadata.DomName('HTMLTextAreaElement.defaultValue')), dart.const(new _metadata.DocsEditable())], 'dirName', [dart.const(new _metadata.DomName('HTMLTextAreaElement.dirName')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'disabled', [dart.const(new _metadata.DomName('HTMLTextAreaElement.disabled')), dart.const(new _metadata.DocsEditable())], 'form', [dart.const(new _metadata.DomName('HTMLTextAreaElement.form')), dart.const(new _metadata.DocsEditable())], 'inputMode', [dart.const(new _metadata.DomName('HTMLTextAreaElement.inputMode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'labels', [dart.const(new _metadata.DomName('HTMLTextAreaElement.labels')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Returns('NodeList')), dart.const(new _js_helper.Creates('NodeList'))], 'maxLength', [dart.const(new _metadata.DomName('HTMLTextAreaElement.maxLength')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('HTMLTextAreaElement.name')), dart.const(new _metadata.DocsEditable())], 'placeholder', [dart.const(new _metadata.DomName('HTMLTextAreaElement.placeholder')), dart.const(new _metadata.DocsEditable())], 'readOnly', [dart.const(new _metadata.DomName('HTMLTextAreaElement.readOnly')), dart.const(new _metadata.DocsEditable())], 'required', [dart.const(new _metadata.DomName('HTMLTextAreaElement.required')), dart.const(new _metadata.DocsEditable())], 'rows', [dart.const(new _metadata.DomName('HTMLTextAreaElement.rows')), dart.const(new _metadata.DocsEditable())], 'selectionDirection', [dart.const(new _metadata.DomName('HTMLTextAreaElement.selectionDirection')), dart.const(new _metadata.DocsEditable())], 'selectionEnd', [dart.const(new _metadata.DomName('HTMLTextAreaElement.selectionEnd')), dart.const(new _metadata.DocsEditable())], 'selectionStart', [dart.const(new _metadata.DomName('HTMLTextAreaElement.selectionStart')), dart.const(new _metadata.DocsEditable())], 'textLength', [dart.const(new _metadata.DomName('HTMLTextAreaElement.textLength')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('HTMLTextAreaElement.type')), dart.const(new _metadata.DocsEditable())], 'validationMessage', [dart.const(new _metadata.DomName('HTMLTextAreaElement.validationMessage')), dart.const(new _metadata.DocsEditable())], 'validity', [dart.const(new _metadata.DomName('HTMLTextAreaElement.validity')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('HTMLTextAreaElement.value')), dart.const(new _metadata.DocsEditable())], 'willValidate', [dart.const(new _metadata.DomName('HTMLTextAreaElement.willValidate')), dart.const(new _metadata.DocsEditable())], 'wrap', [dart.const(new _metadata.DomName('HTMLTextAreaElement.wrap')), dart.const(new _metadata.DocsEditable())]])]);
   TextAreaElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTextAreaElement, TextAreaElement);
   const _initTextEvent = Symbol('_initTextEvent');
@@ -27063,7 +27345,7 @@
     }),
     methods: () => ({[_initTextEvent]: [dart.void, [core.String, core.bool, core.bool, Window, core.String]]})
   });
-  TextEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('TextEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TextEvent"))];
+  TextEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('TextEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TextEvent"))], 'fields', dart.map(['data', [dart.const(new _metadata.DomName('TextEvent.data')), dart.const(new _metadata.DocsEditable())]])]);
   TextEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.TextEvent, TextEvent);
   dart.defineExtensionNames([
@@ -27124,7 +27406,7 @@
   dart.setSignature(TextMetrics, {
     constructors: () => ({_: [TextMetrics, []]})
   });
-  TextMetrics[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextMetrics')), dart.const(new _js_helper.Native("TextMetrics"))];
+  TextMetrics[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextMetrics')), dart.const(new _js_helper.Native("TextMetrics"))], 'fields', dart.map(['actualBoundingBoxAscent', [dart.const(new _metadata.DomName('TextMetrics.actualBoundingBoxAscent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'actualBoundingBoxDescent', [dart.const(new _metadata.DomName('TextMetrics.actualBoundingBoxDescent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'actualBoundingBoxLeft', [dart.const(new _metadata.DomName('TextMetrics.actualBoundingBoxLeft')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'actualBoundingBoxRight', [dart.const(new _metadata.DomName('TextMetrics.actualBoundingBoxRight')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'alphabeticBaseline', [dart.const(new _metadata.DomName('TextMetrics.alphabeticBaseline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'emHeightAscent', [dart.const(new _metadata.DomName('TextMetrics.emHeightAscent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'emHeightDescent', [dart.const(new _metadata.DomName('TextMetrics.emHeightDescent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fontBoundingBoxAscent', [dart.const(new _metadata.DomName('TextMetrics.fontBoundingBoxAscent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fontBoundingBoxDescent', [dart.const(new _metadata.DomName('TextMetrics.fontBoundingBoxDescent')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'hangingBaseline', [dart.const(new _metadata.DomName('TextMetrics.hangingBaseline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'ideographicBaseline', [dart.const(new _metadata.DomName('TextMetrics.ideographicBaseline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('TextMetrics.width')), dart.const(new _metadata.DocsEditable())]])]);
   TextMetrics[dart.owner] = exports;
   dart.registerExtension(dart.global.TextMetrics, TextMetrics);
   dart.defineExtensionNames([
@@ -27198,7 +27480,7 @@
       [dartx.removeRegion]: [dart.void, [VttRegion]]
     })
   });
-  TextTrack[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrack"))];
+  TextTrack[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrack"))], 'fields', dart.map(['activeCues', [dart.const(new _metadata.DomName('TextTrack.activeCues')), dart.const(new _metadata.DocsEditable())], 'cues', [dart.const(new _metadata.DomName('TextTrack.cues')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('TextTrack.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('TextTrack.kind')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('TextTrack.label')), dart.const(new _metadata.DocsEditable())], 'language', [dart.const(new _metadata.DomName('TextTrack.language')), dart.const(new _metadata.DocsEditable())], 'mode', [dart.const(new _metadata.DomName('TextTrack.mode')), dart.const(new _metadata.DocsEditable())], 'regions', [dart.const(new _metadata.DomName('TextTrack.regions')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onCueChange', [dart.const(new _metadata.DomName('TextTrack.oncuechange')), dart.const(new _metadata.DocsEditable())]])]);
   TextTrack[dart.owner] = exports;
   dart.defineLazyProperties(TextTrack, {
     get cueChangeEvent() {
@@ -27256,7 +27538,7 @@
   dart.setSignature(TextTrackCue, {
     constructors: () => ({_: [TextTrackCue, []]})
   });
-  TextTrackCue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackCue')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackCue"))];
+  TextTrackCue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackCue')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackCue"))], 'fields', dart.map(['endTime', [dart.const(new _metadata.DomName('TextTrackCue.endTime')), dart.const(new _metadata.DocsEditable())], 'id', [dart.const(new _metadata.DomName('TextTrackCue.id')), dart.const(new _metadata.DocsEditable())], 'pauseOnExit', [dart.const(new _metadata.DomName('TextTrackCue.pauseOnExit')), dart.const(new _metadata.DocsEditable())], 'startTime', [dart.const(new _metadata.DomName('TextTrackCue.startTime')), dart.const(new _metadata.DocsEditable())], 'track', [dart.const(new _metadata.DomName('TextTrackCue.track')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onEnter', [dart.const(new _metadata.DomName('TextTrackCue.onenter')), dart.const(new _metadata.DocsEditable())], 'onExit', [dart.const(new _metadata.DomName('TextTrackCue.onexit')), dart.const(new _metadata.DocsEditable())]])]);
   TextTrackCue[dart.owner] = exports;
   dart.defineLazyProperties(TextTrackCue, {
     get enterEvent() {
@@ -27339,7 +27621,7 @@
       [dartx.item]: [TextTrackCue, [core.int]]
     })
   });
-  TextTrackCueList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackCueList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackCueList"))];
+  TextTrackCueList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackCueList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackCueList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('TextTrackCueList.length')), dart.const(new _metadata.DocsEditable())]])]);
   TextTrackCueList[dart.owner] = exports;
   dart.registerExtension(dart.global.TextTrackCueList, TextTrackCueList);
   dart.defineExtensionNames([
@@ -27422,7 +27704,7 @@
       [dartx.item]: [TextTrack, [core.int]]
     })
   });
-  TextTrackList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackList"))];
+  TextTrackList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TextTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TextTrackList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('TextTrackList.length')), dart.const(new _metadata.DocsEditable())], 'onAddTrack', [dart.const(new _metadata.DomName('TextTrackList.onaddtrack')), dart.const(new _metadata.DocsEditable())], 'onChange', [dart.const(new _metadata.DomName('TextTrackList.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   TextTrackList[dart.owner] = exports;
   dart.defineLazyProperties(TextTrackList, {
     get addTrackEvent() {
@@ -27459,7 +27741,7 @@
       [dartx.start]: [core.double, [core.int]]
     })
   });
-  TimeRanges[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TimeRanges')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TimeRanges"))];
+  TimeRanges[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TimeRanges')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TimeRanges"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('TimeRanges.length')), dart.const(new _metadata.DocsEditable())]])]);
   TimeRanges[dart.owner] = exports;
   dart.registerExtension(dart.global.TimeRanges, TimeRanges);
   const TimeoutHandler = dart.typedef('TimeoutHandler', () => dart.functionType(dart.void, []));
@@ -27539,7 +27821,7 @@
       [__setter__]: [dart.void, [core.String, core.num]]
     })
   });
-  Timing[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Timing')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Timing"))];
+  Timing[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Timing')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Timing"))], 'fields', dart.map(['delay', [dart.const(new _metadata.DomName('Timing.delay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'direction', [dart.const(new _metadata.DomName('Timing.direction')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'easing', [dart.const(new _metadata.DomName('Timing.easing')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'endDelay', [dart.const(new _metadata.DomName('Timing.endDelay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'fill', [dart.const(new _metadata.DomName('Timing.fill')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'iterationStart', [dart.const(new _metadata.DomName('Timing.iterationStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'iterations', [dart.const(new _metadata.DomName('Timing.iterations')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'playbackRate', [dart.const(new _metadata.DomName('Timing.playbackRate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Timing[dart.owner] = exports;
   dart.registerExtension(dart.global.Timing, Timing);
   class TitleElement extends HtmlElement {
@@ -27561,7 +27843,7 @@
       created: [TitleElement, []]
     })
   });
-  TitleElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTitleElement')), dart.const(new _js_helper.Native("HTMLTitleElement"))];
+  TitleElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTitleElement')), dart.const(new _js_helper.Native("HTMLTitleElement"))]]);
   TitleElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLTitleElement, TitleElement);
   const _radiusX = Symbol('_radiusX');
@@ -27671,7 +27953,7 @@
   dart.setSignature(Touch, {
     constructors: () => ({_: [Touch, []]})
   });
-  Touch[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Touch')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Touch"))];
+  Touch[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Touch')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Touch"))], 'fields', dart.map(['_clientX', [dart.const(new _js_helper.JSName('clientX')), dart.const(new _metadata.DomName('Touch.clientX')), dart.const(new _metadata.DocsEditable())], '_clientY', [dart.const(new _js_helper.JSName('clientY')), dart.const(new _metadata.DomName('Touch.clientY')), dart.const(new _metadata.DocsEditable())], 'force', [dart.const(new _metadata.DomName('Touch.force')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'identifier', [dart.const(new _metadata.DomName('Touch.identifier')), dart.const(new _metadata.DocsEditable())], '_pageX', [dart.const(new _js_helper.JSName('pageX')), dart.const(new _metadata.DomName('Touch.pageX')), dart.const(new _metadata.DocsEditable())], '_pageY', [dart.const(new _js_helper.JSName('pageY')), dart.const(new _metadata.DomName('Touch.pageY')), dart.const(new _metadata.DocsEditable())], '_radiusX', [dart.const(new _js_helper.JSName('radiusX')), dart.const(new _metadata.DomName('Touch.radiusX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_radiusY', [dart.const(new _js_helper.JSName('radiusY')), dart.const(new _metadata.DomName('Touch.radiusY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_screenX', [dart.const(new _js_helper.JSName('screenX')), dart.const(new _metadata.DomName('Touch.screenX')), dart.const(new _metadata.DocsEditable())], '_screenY', [dart.const(new _js_helper.JSName('screenY')), dart.const(new _metadata.DomName('Touch.screenY')), dart.const(new _metadata.DocsEditable())], '_get_target', [dart.const(new _js_helper.JSName('target')), dart.const(new _metadata.DomName('Touch.target')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Element|Document')), dart.const(new _js_helper.Returns('Element|Document'))], 'rotationAngle', [dart.const(new _js_helper.JSName('webkitRotationAngle')), dart.const(new _metadata.DomName('Touch.webkitRotationAngle')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['target', [dart.const(new _metadata.DomName('Touch.target')), dart.const(new _metadata.DocsEditable())], 'client', [dart.const(new _metadata.DomName('Touch.clientX')), dart.const(new _metadata.DomName('Touch.clientY'))], 'page', [dart.const(new _metadata.DomName('Touch.pageX')), dart.const(new _metadata.DomName('Touch.pageY'))], 'screen', [dart.const(new _metadata.DomName('Touch.screenX')), dart.const(new _metadata.DomName('Touch.screenY'))], 'radiusX', [dart.const(new _metadata.DomName('Touch.radiusX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'radiusY', [dart.const(new _metadata.DomName('Touch.radiusY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())]])]);
   Touch[dart.owner] = exports;
   dart.registerExtension(dart.global.Touch, Touch);
   const _initTouchEvent = Symbol('_initTouchEvent');
@@ -27740,7 +28022,7 @@
     }),
     methods: () => ({[_initTouchEvent]: [dart.void, [TouchList, TouchList, TouchList, core.String, Window, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool]]})
   });
-  TouchEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('TouchEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TouchEvent"))];
+  TouchEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('TouchEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TouchEvent"))], 'fields', dart.map(['altKey', [dart.const(new _metadata.DomName('TouchEvent.altKey')), dart.const(new _metadata.DocsEditable())], 'changedTouches', [dart.const(new _metadata.DomName('TouchEvent.changedTouches')), dart.const(new _metadata.DocsEditable())], 'ctrlKey', [dart.const(new _metadata.DomName('TouchEvent.ctrlKey')), dart.const(new _metadata.DocsEditable())], 'metaKey', [dart.const(new _metadata.DomName('TouchEvent.metaKey')), dart.const(new _metadata.DocsEditable())], 'shiftKey', [dart.const(new _metadata.DomName('TouchEvent.shiftKey')), dart.const(new _metadata.DocsEditable())], 'targetTouches', [dart.const(new _metadata.DomName('TouchEvent.targetTouches')), dart.const(new _metadata.DocsEditable())], 'touches', [dart.const(new _metadata.DomName('TouchEvent.touches')), dart.const(new _metadata.DocsEditable())]])]);
   TouchEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.TouchEvent, TouchEvent);
   dart.defineExtensionNames([
@@ -27819,7 +28101,7 @@
       [dartx.item]: [Touch, [core.int]]
     })
   });
-  TouchList[dart.metadata] = () => [dart.const(new _metadata.DomName('TouchList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TouchList"))];
+  TouchList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('TouchList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("TouchList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('TouchList.length')), dart.const(new _metadata.DocsEditable())]])]);
   TouchList[dart.owner] = exports;
   dart.registerExtension(dart.global.TouchList, TouchList);
   dart.defineExtensionNames([
@@ -27904,7 +28186,7 @@
       created: [TrackElement, []]
     })
   });
-  TrackElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTrackElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLTrackElement"))];
+  TrackElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLTrackElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("HTMLTrackElement"))], 'fields', dart.map(['defaultValue', [dart.const(new _js_helper.JSName('default')), dart.const(new _metadata.DomName('HTMLTrackElement.default')), dart.const(new _metadata.DocsEditable())], 'integrity', [dart.const(new _metadata.DomName('HTMLTrackElement.integrity')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('HTMLTrackElement.kind')), dart.const(new _metadata.DocsEditable())], 'label', [dart.const(new _metadata.DomName('HTMLTrackElement.label')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('HTMLTrackElement.readyState')), dart.const(new _metadata.DocsEditable())], 'src', [dart.const(new _metadata.DomName('HTMLTrackElement.src')), dart.const(new _metadata.DocsEditable())], 'srclang', [dart.const(new _metadata.DomName('HTMLTrackElement.srclang')), dart.const(new _metadata.DocsEditable())], 'track', [dart.const(new _metadata.DomName('HTMLTrackElement.track')), dart.const(new _metadata.DocsEditable())]])]);
   TrackElement[dart.owner] = exports;
   TrackElement.ERROR = 3;
   TrackElement.LOADED = 2;
@@ -27925,7 +28207,7 @@
   dart.setSignature(TrackEvent, {
     constructors: () => ({_: [TrackEvent, []]})
   });
-  TrackEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TrackEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TrackEvent"))];
+  TrackEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TrackEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TrackEvent"))], 'fields', dart.map(['track', [dart.const(new _metadata.DomName('TrackEvent.track')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))]])]);
   TrackEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.TrackEvent, TrackEvent);
   dart.defineExtensionNames([
@@ -27950,7 +28232,7 @@
   dart.setSignature(TransitionEvent, {
     constructors: () => ({_: [TransitionEvent, []]})
   });
-  TransitionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TransitionEvent')), dart.const(new _js_helper.Native("TransitionEvent,WebKitTransitionEvent"))];
+  TransitionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('TransitionEvent')), dart.const(new _js_helper.Native("TransitionEvent,WebKitTransitionEvent"))], 'fields', dart.map(['elapsedTime', [dart.const(new _metadata.DomName('TransitionEvent.elapsedTime')), dart.const(new _metadata.DocsEditable())], 'propertyName', [dart.const(new _metadata.DomName('TransitionEvent.propertyName')), dart.const(new _metadata.DocsEditable())], 'pseudoElement', [dart.const(new _metadata.DomName('TransitionEvent.pseudoElement')), dart.const(new _metadata.DocsEditable())]])]);
   TransitionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.TransitionEvent, TransitionEvent);
   dart.defineExtensionNames([
@@ -28025,7 +28307,7 @@
       [dartx.previousSibling]: [Node, []]
     })
   });
-  TreeWalker[dart.metadata] = () => [dart.const(new _metadata.DomName('TreeWalker')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TreeWalker"))];
+  TreeWalker[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('TreeWalker')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("TreeWalker"))], 'fields', dart.map(['currentNode', [dart.const(new _metadata.DomName('TreeWalker.currentNode')), dart.const(new _metadata.DocsEditable())], 'filter', [dart.const(new _metadata.DomName('TreeWalker.filter')), dart.const(new _metadata.DocsEditable())], 'root', [dart.const(new _metadata.DomName('TreeWalker.root')), dart.const(new _metadata.DocsEditable())], 'whatToShow', [dart.const(new _metadata.DomName('TreeWalker.whatToShow')), dart.const(new _metadata.DocsEditable())]])]);
   TreeWalker[dart.owner] = exports;
   dart.registerExtension(dart.global.TreeWalker, TreeWalker);
   class UListElement extends HtmlElement {
@@ -28047,7 +28329,7 @@
       created: [UListElement, []]
     })
   });
-  UListElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLUListElement')), dart.const(new _js_helper.Native("HTMLUListElement"))];
+  UListElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLUListElement')), dart.const(new _js_helper.Native("HTMLUListElement"))]]);
   UListElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLUListElement, UListElement);
   class UnknownElement extends HtmlElement {
@@ -28065,7 +28347,7 @@
       created: [UnknownElement, []]
     })
   });
-  UnknownElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLUnknownElement')), dart.const(new _js_helper.Native("HTMLUnknownElement"))];
+  UnknownElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLUnknownElement')), dart.const(new _js_helper.Native("HTMLUnknownElement"))]]);
   UnknownElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLUnknownElement, UnknownElement);
   dart.defineExtensionNames([
@@ -28180,7 +28462,7 @@
     }),
     names: ['createObjectUrl', 'createObjectUrlFromSource', 'createObjectUrlFromStream', 'createObjectUrlFromBlob', 'revokeObjectUrl']
   });
-  Url[dart.metadata] = () => [dart.const(new _metadata.DomName('URL')), dart.const(new _js_helper.Native("URL"))];
+  Url[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('URL')), dart.const(new _js_helper.Native("URL"))], 'fields', dart.map(['hash', [dart.const(new _metadata.DomName('URL.hash')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'host', [dart.const(new _metadata.DomName('URL.host')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'hostname', [dart.const(new _metadata.DomName('URL.hostname')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'href', [dart.const(new _metadata.DomName('URL.href')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'origin', [dart.const(new _metadata.DomName('URL.origin')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'password', [dart.const(new _metadata.DomName('URL.password')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'pathname', [dart.const(new _metadata.DomName('URL.pathname')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'port', [dart.const(new _metadata.DomName('URL.port')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'protocol', [dart.const(new _metadata.DomName('URL.protocol')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'search', [dart.const(new _metadata.DomName('URL.search')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'username', [dart.const(new _metadata.DomName('URL.username')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   Url[dart.owner] = exports;
   dart.registerExtension(dart.global.URL, Url);
   dart.defineExtensionNames([
@@ -28227,7 +28509,7 @@
     'username',
     'username'
   ]);
-  UrlUtils[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('URLUtils')), dart.const(new _metadata.Experimental())];
+  UrlUtils[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('URLUtils')), dart.const(new _metadata.Experimental())]]);
   UrlUtils[dart.owner] = exports;
   dart.defineExtensionNames([
     'hash',
@@ -28259,7 +28541,7 @@
     'protocol',
     'search'
   ]);
-  UrlUtilsReadOnly[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('URLUtilsReadOnly')), dart.const(new _metadata.Experimental())];
+  UrlUtilsReadOnly[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('URLUtilsReadOnly')), dart.const(new _metadata.Experimental())]]);
   UrlUtilsReadOnly[dart.owner] = exports;
   dart.defineExtensionNames([
     'badInput',
@@ -28311,7 +28593,7 @@
   dart.setSignature(ValidityState, {
     constructors: () => ({_: [ValidityState, []]})
   });
-  ValidityState[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ValidityState')), dart.const(new _js_helper.Native("ValidityState"))];
+  ValidityState[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ValidityState')), dart.const(new _js_helper.Native("ValidityState"))], 'fields', dart.map(['badInput', [dart.const(new _metadata.DomName('ValidityState.badInput')), dart.const(new _metadata.DocsEditable())], 'customError', [dart.const(new _metadata.DomName('ValidityState.customError')), dart.const(new _metadata.DocsEditable())], 'patternMismatch', [dart.const(new _metadata.DomName('ValidityState.patternMismatch')), dart.const(new _metadata.DocsEditable())], 'rangeOverflow', [dart.const(new _metadata.DomName('ValidityState.rangeOverflow')), dart.const(new _metadata.DocsEditable())], 'rangeUnderflow', [dart.const(new _metadata.DomName('ValidityState.rangeUnderflow')), dart.const(new _metadata.DocsEditable())], 'stepMismatch', [dart.const(new _metadata.DomName('ValidityState.stepMismatch')), dart.const(new _metadata.DocsEditable())], 'tooLong', [dart.const(new _metadata.DomName('ValidityState.tooLong')), dart.const(new _metadata.DocsEditable())], 'typeMismatch', [dart.const(new _metadata.DomName('ValidityState.typeMismatch')), dart.const(new _metadata.DocsEditable())], 'valid', [dart.const(new _metadata.DomName('ValidityState.valid')), dart.const(new _metadata.DocsEditable())], 'valueMissing', [dart.const(new _metadata.DomName('ValidityState.valueMissing')), dart.const(new _metadata.DocsEditable())]])]);
   ValidityState[dart.owner] = exports;
   dart.registerExtension(dart.global.ValidityState, ValidityState);
   dart.defineExtensionNames([
@@ -28397,7 +28679,7 @@
       [dartx.exitFullscreen]: [dart.void, []]
     })
   });
-  VideoElement[dart.metadata] = () => [dart.const(new _metadata.DomName('HTMLVideoElement')), dart.const(new _js_helper.Native("HTMLVideoElement"))];
+  VideoElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('HTMLVideoElement')), dart.const(new _js_helper.Native("HTMLVideoElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('HTMLVideoElement.height')), dart.const(new _metadata.DocsEditable())], 'poster', [dart.const(new _metadata.DomName('HTMLVideoElement.poster')), dart.const(new _metadata.DocsEditable())], 'videoHeight', [dart.const(new _metadata.DomName('HTMLVideoElement.videoHeight')), dart.const(new _metadata.DocsEditable())], 'videoWidth', [dart.const(new _metadata.DomName('HTMLVideoElement.videoWidth')), dart.const(new _metadata.DocsEditable())], 'decodedFrameCount', [dart.const(new _js_helper.JSName('webkitDecodedFrameCount')), dart.const(new _metadata.DomName('HTMLVideoElement.webkitDecodedFrameCount')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'droppedFrameCount', [dart.const(new _js_helper.JSName('webkitDroppedFrameCount')), dart.const(new _metadata.DomName('HTMLVideoElement.webkitDroppedFrameCount')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('HTMLVideoElement.width')), dart.const(new _metadata.DocsEditable())]])]);
   VideoElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLVideoElement, VideoElement);
   dart.defineExtensionNames([
@@ -28426,7 +28708,7 @@
   dart.setSignature(VideoPlaybackQuality, {
     constructors: () => ({_: [VideoPlaybackQuality, []]})
   });
-  VideoPlaybackQuality[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoPlaybackQuality')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoPlaybackQuality"))];
+  VideoPlaybackQuality[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoPlaybackQuality')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoPlaybackQuality"))], 'fields', dart.map(['corruptedVideoFrames', [dart.const(new _metadata.DomName('VideoPlaybackQuality.corruptedVideoFrames')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'creationTime', [dart.const(new _metadata.DomName('VideoPlaybackQuality.creationTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'droppedVideoFrames', [dart.const(new _metadata.DomName('VideoPlaybackQuality.droppedVideoFrames')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'totalVideoFrames', [dart.const(new _metadata.DomName('VideoPlaybackQuality.totalVideoFrames')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VideoPlaybackQuality[dart.owner] = exports;
   dart.registerExtension(dart.global.VideoPlaybackQuality, VideoPlaybackQuality);
   dart.defineExtensionNames([
@@ -28462,7 +28744,7 @@
   dart.setSignature(VideoTrack, {
     constructors: () => ({_: [VideoTrack, []]})
   });
-  VideoTrack[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoTrack"))];
+  VideoTrack[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoTrack')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoTrack"))], 'fields', dart.map(['id', [dart.const(new _metadata.DomName('VideoTrack.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'kind', [dart.const(new _metadata.DomName('VideoTrack.kind')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'label', [dart.const(new _metadata.DomName('VideoTrack.label')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'language', [dart.const(new _metadata.DomName('VideoTrack.language')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'selected', [dart.const(new _metadata.DomName('VideoTrack.selected')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VideoTrack[dart.owner] = exports;
   dart.registerExtension(dart.global.VideoTrack, VideoTrack);
   dart.defineExtensionNames([
@@ -28498,7 +28780,7 @@
       [dartx.getTrackById]: [VideoTrack, [core.String]]
     })
   });
-  VideoTrackList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoTrackList"))];
+  VideoTrackList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VideoTrackList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VideoTrackList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('VideoTrackList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'selectedIndex', [dart.const(new _metadata.DomName('VideoTrackList.selectedIndex')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onChange', [dart.const(new _metadata.DomName('VideoTrackList.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VideoTrackList[dart.owner] = exports;
   dart.defineLazyProperties(VideoTrackList, {
     get changeEvent() {
@@ -28589,7 +28871,7 @@
     statics: () => ({_create_1: [VttCue, [dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  VttCue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTCue')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTCue"))];
+  VttCue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTCue')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTCue"))], 'fields', dart.map(['align', [dart.const(new _metadata.DomName('VTTCue.align')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'line', [dart.const(new _metadata.DomName('VTTCue.line')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'position', [dart.const(new _metadata.DomName('VTTCue.position')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'regionId', [dart.const(new _metadata.DomName('VTTCue.regionId')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'size', [dart.const(new _metadata.DomName('VTTCue.size')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'snapToLines', [dart.const(new _metadata.DomName('VTTCue.snapToLines')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'text', [dart.const(new _metadata.DomName('VTTCue.text')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'vertical', [dart.const(new _metadata.DomName('VTTCue.vertical')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VttCue[dart.owner] = exports;
   dart.registerExtension(dart.global.VTTCue, VttCue);
   dart.defineExtensionNames([
@@ -28673,7 +28955,7 @@
     statics: () => ({_create_1: [VttRegion, []]}),
     names: ['_create_1']
   });
-  VttRegion[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTRegion"))];
+  VttRegion[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTRegion')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTRegion"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('VTTRegion.height')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'id', [dart.const(new _metadata.DomName('VTTRegion.id')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'regionAnchorX', [dart.const(new _metadata.DomName('VTTRegion.regionAnchorX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'regionAnchorY', [dart.const(new _metadata.DomName('VTTRegion.regionAnchorY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'scroll', [dart.const(new _metadata.DomName('VTTRegion.scroll')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'track', [dart.const(new _metadata.DomName('VTTRegion.track')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'viewportAnchorX', [dart.const(new _metadata.DomName('VTTRegion.viewportAnchorX')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'viewportAnchorY', [dart.const(new _metadata.DomName('VTTRegion.viewportAnchorY')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'width', [dart.const(new _metadata.DomName('VTTRegion.width')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VttRegion[dart.owner] = exports;
   dart.registerExtension(dart.global.VTTRegion, VttRegion);
   dart.defineExtensionNames([
@@ -28702,7 +28984,7 @@
       [dartx.item]: [VttRegion, [core.int]]
     })
   });
-  VttRegionList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTRegionList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTRegionList"))];
+  VttRegionList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('VTTRegionList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("VTTRegionList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('VTTRegionList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   VttRegionList[dart.owner] = exports;
   dart.registerExtension(dart.global.VTTRegionList, VttRegionList);
   dart.defineExtensionNames([
@@ -28825,7 +29107,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3']
   });
-  WebSocket[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebSocket')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebSocket"))];
+  WebSocket[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebSocket')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebSocket"))], 'fields', dart.map(['binaryType', [dart.const(new _metadata.DomName('WebSocket.binaryType')), dart.const(new _metadata.DocsEditable())], 'bufferedAmount', [dart.const(new _metadata.DomName('WebSocket.bufferedAmount')), dart.const(new _metadata.DocsEditable())], 'extensions', [dart.const(new _metadata.DomName('WebSocket.extensions')), dart.const(new _metadata.DocsEditable())], 'protocol', [dart.const(new _metadata.DomName('WebSocket.protocol')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('WebSocket.readyState')), dart.const(new _metadata.DocsEditable())], 'url', [dart.const(new _metadata.DomName('WebSocket.url')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onClose', [dart.const(new _metadata.DomName('WebSocket.onclose')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('WebSocket.onerror')), dart.const(new _metadata.DocsEditable())], 'onMessage', [dart.const(new _metadata.DomName('WebSocket.onmessage')), dart.const(new _metadata.DocsEditable())], 'onOpen', [dart.const(new _metadata.DomName('WebSocket.onopen')), dart.const(new _metadata.DocsEditable())]])]);
   WebSocket[dart.owner] = exports;
   WebSocket.CLOSED = 3;
   WebSocket.CLOSING = 2;
@@ -28948,7 +29230,7 @@
       [_initWheelEvent]: [dart.void, [core.String, core.bool, core.bool, Window, core.int, core.int, core.int, core.int, core.int, core.int, EventTarget, core.String, core.int, core.int, core.int, core.int]]
     })
   });
-  WheelEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('WheelEvent')), dart.const(new _js_helper.Native("WheelEvent"))];
+  WheelEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('WheelEvent')), dart.const(new _js_helper.Native("WheelEvent"))], 'fields', dart.map(['_deltaX', [dart.const(new _js_helper.JSName('deltaX')), dart.const(new _metadata.DomName('WheelEvent.deltaX')), dart.const(new _metadata.DocsEditable())], '_deltaY', [dart.const(new _js_helper.JSName('deltaY')), dart.const(new _metadata.DomName('WheelEvent.deltaY')), dart.const(new _metadata.DocsEditable())], 'deltaZ', [dart.const(new _metadata.DomName('WheelEvent.deltaZ')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['deltaY', [dart.const(new _metadata.DomName('WheelEvent.deltaY'))], 'deltaX', [dart.const(new _metadata.DomName('WheelEvent.deltaX'))], 'deltaMode', [dart.const(new _metadata.DomName('WheelEvent.deltaMode'))]])]);
   WheelEvent[dart.owner] = exports;
   WheelEvent.DOM_DELTA_LINE = 1;
   WheelEvent.DOM_DELTA_PAGE = 2;
@@ -29899,7 +30181,7 @@
       [dartx.moveTo]: [dart.void, [math.Point]]
     })
   });
-  Window[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Window')), dart.const(new _js_helper.Native("Window,DOMWindow"))];
+  Window[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Window')), dart.const(new _js_helper.Native("Window,DOMWindow"))], 'fields', dart.map(['css', [dart.const(new _js_helper.JSName('CSS')), dart.const(new _metadata.DomName('Window.CSS')), dart.const(new _metadata.DocsEditable())], 'applicationCache', [dart.const(new _metadata.DomName('Window.applicationCache')), dart.const(new _metadata.DocsEditable())], 'closed', [dart.const(new _metadata.DomName('Window.closed')), dart.const(new _metadata.DocsEditable())], 'crypto', [dart.const(new _metadata.DomName('Window.crypto')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'defaultStatus', [dart.const(new _metadata.DomName('Window.defaultStatus')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'defaultstatus', [dart.const(new _metadata.DomName('Window.defaultstatus')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'devicePixelRatio', [dart.const(new _metadata.DomName('Window.devicePixelRatio')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'history', [dart.const(new _metadata.DomName('Window.history')), dart.const(new _metadata.DocsEditable())], 'innerHeight', [dart.const(new _metadata.DomName('Window.innerHeight')), dart.const(new _metadata.DocsEditable())], 'innerWidth', [dart.const(new _metadata.DomName('Window.innerWidth')), dart.const(new _metadata.DocsEditable())], 'localStorage', [dart.const(new _metadata.DomName('Window.localStorage')), dart.const(new _metadata.DocsEditable())], 'locationbar', [dart.const(new _metadata.DomName('Window.locationbar')), dart.const(new _metadata.DocsEditable())], 'menubar', [dart.const(new _metadata.DomName('Window.menubar')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('Window.name')), dart.const(new _metadata.DocsEditable())], 'navigator', [dart.const(new _metadata.DomName('Window.navigator')), dart.const(new _metadata.DocsEditable())], 'offscreenBuffering', [dart.const(new _metadata.DomName('Window.offscreenBuffering')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], '_get_opener', [dart.const(new _js_helper.JSName('opener')), dart.const(new _metadata.DomName('Window.opener')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], 'orientation', [dart.const(new _metadata.DomName('Window.orientation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'outerHeight', [dart.const(new _metadata.DomName('Window.outerHeight')), dart.const(new _metadata.DocsEditable())], 'outerWidth', [dart.const(new _metadata.DomName('Window.outerWidth')), dart.const(new _metadata.DocsEditable())], '_pageXOffset', [dart.const(new _js_helper.JSName('pageXOffset')), dart.const(new _metadata.DomName('Window.pageXOffset')), dart.const(new _metadata.DocsEditable())], '_pageYOffset', [dart.const(new _js_helper.JSName('pageYOffset')), dart.const(new _metadata.DomName('Window.pageYOffset')), dart.const(new _metadata.DocsEditable())], '_get_parent', [dart.const(new _js_helper.JSName('parent')), dart.const(new _metadata.DomName('Window.parent')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], 'performance', [dart.const(new _metadata.DomName('Window.performance')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE))], 'screen', [dart.const(new _metadata.DomName('Window.screen')), dart.const(new _metadata.DocsEditable())], 'screenLeft', [dart.const(new _metadata.DomName('Window.screenLeft')), dart.const(new _metadata.DocsEditable())], 'screenTop', [dart.const(new _metadata.DomName('Window.screenTop')), dart.const(new _metadata.DocsEditable())], 'screenX', [dart.const(new _metadata.DomName('Window.screenX')), dart.const(new _metadata.DocsEditable())], 'screenY', [dart.const(new _metadata.DomName('Window.screenY')), dart.const(new _metadata.DocsEditable())], 'scrollbars', [dart.const(new _metadata.DomName('Window.scrollbars')), dart.const(new _metadata.DocsEditable())], '_get_self', [dart.const(new _js_helper.JSName('self')), dart.const(new _metadata.DomName('Window.self')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], 'sessionStorage', [dart.const(new _metadata.DomName('Window.sessionStorage')), dart.const(new _metadata.DocsEditable())], 'speechSynthesis', [dart.const(new _metadata.DomName('Window.speechSynthesis')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'status', [dart.const(new _metadata.DomName('Window.status')), dart.const(new _metadata.DocsEditable())], 'statusbar', [dart.const(new _metadata.DomName('Window.statusbar')), dart.const(new _metadata.DocsEditable())], 'styleMedia', [dart.const(new _metadata.DomName('Window.styleMedia')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'toolbar', [dart.const(new _metadata.DomName('Window.toolbar')), dart.const(new _metadata.DocsEditable())], '_get_top', [dart.const(new _js_helper.JSName('top')), dart.const(new _metadata.DomName('Window.top')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))], '_get_window', [dart.const(new _js_helper.JSName('window')), dart.const(new _metadata.DomName('Window.window')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Window|=Object')), dart.const(new _js_helper.Returns('Window|=Object'))]]), 'properties', dart.map(['indexedDB', [dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME, '23.0')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX, '15.0')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10.0')), dart.const(new _metadata.Experimental())], 'console', [dart.const(new _metadata.DomName('Window.console'))], 'opener', [dart.const(new _metadata.DomName('Window.opener')), dart.const(new _metadata.DocsEditable())], 'parent', [dart.const(new _metadata.DomName('Window.parent')), dart.const(new _metadata.DocsEditable())], 'self', [dart.const(new _metadata.DomName('Window.self')), dart.const(new _metadata.DocsEditable())], 'top', [dart.const(new _metadata.DomName('Window.top')), dart.const(new _metadata.DocsEditable())], 'window', [dart.const(new _metadata.DomName('Window.window')), dart.const(new _metadata.DocsEditable())], 'onContentLoaded', [dart.const(new _metadata.DomName('Window.onDOMContentLoaded')), dart.const(new _metadata.DocsEditable())], 'onAbort', [dart.const(new _metadata.DomName('Window.onabort')), dart.const(new _metadata.DocsEditable())], 'onBlur', [dart.const(new _metadata.DomName('Window.onblur')), dart.const(new _metadata.DocsEditable())], 'onCanPlay', [dart.const(new _metadata.DomName('Window.oncanplay')), dart.const(new _metadata.DocsEditable())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('Window.oncanplaythrough')), dart.const(new _metadata.DocsEditable())], 'onChange', [dart.const(new _metadata.DomName('Window.onchange')), dart.const(new _metadata.DocsEditable())], 'onClick', [dart.const(new _metadata.DomName('Window.onclick')), dart.const(new _metadata.DocsEditable())], 'onContextMenu', [dart.const(new _metadata.DomName('Window.oncontextmenu')), dart.const(new _metadata.DocsEditable())], 'onDoubleClick', [dart.const(new _metadata.DomName('Window.ondblclick')), dart.const(new _metadata.DocsEditable())], 'onDeviceMotion', [dart.const(new _metadata.DomName('Window.ondevicemotion')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDeviceOrientation', [dart.const(new _metadata.DomName('Window.ondeviceorientation')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDrag', [dart.const(new _metadata.DomName('Window.ondrag')), dart.const(new _metadata.DocsEditable())], 'onDragEnd', [dart.const(new _metadata.DomName('Window.ondragend')), dart.const(new _metadata.DocsEditable())], 'onDragEnter', [dart.const(new _metadata.DomName('Window.ondragenter')), dart.const(new _metadata.DocsEditable())], 'onDragLeave', [dart.const(new _metadata.DomName('Window.ondragleave')), dart.const(new _metadata.DocsEditable())], 'onDragOver', [dart.const(new _metadata.DomName('Window.ondragover')), dart.const(new _metadata.DocsEditable())], 'onDragStart', [dart.const(new _metadata.DomName('Window.ondragstart')), dart.const(new _metadata.DocsEditable())], 'onDrop', [dart.const(new _metadata.DomName('Window.ondrop')), dart.const(new _metadata.DocsEditable())], 'onDurationChange', [dart.const(new _metadata.DomName('Window.ondurationchange')), dart.const(new _metadata.DocsEditable())], 'onEmptied', [dart.const(new _metadata.DomName('Window.onemptied')), dart.const(new _metadata.DocsEditable())], 'onEnded', [dart.const(new _metadata.DomName('Window.onended')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('Window.onerror')), dart.const(new _metadata.DocsEditable())], 'onFocus', [dart.const(new _metadata.DomName('Window.onfocus')), dart.const(new _metadata.DocsEditable())], 'onHashChange', [dart.const(new _metadata.DomName('Window.onhashchange')), dart.const(new _metadata.DocsEditable())], 'onInput', [dart.const(new _metadata.DomName('Window.oninput')), dart.const(new _metadata.DocsEditable())], 'onInvalid', [dart.const(new _metadata.DomName('Window.oninvalid')), dart.const(new _metadata.DocsEditable())], 'onKeyDown', [dart.const(new _metadata.DomName('Window.onkeydown')), dart.const(new _metadata.DocsEditable())], 'onKeyPress', [dart.const(new _metadata.DomName('Window.onkeypress')), dart.const(new _metadata.DocsEditable())], 'onKeyUp', [dart.const(new _metadata.DomName('Window.onkeyup')), dart.const(new _metadata.DocsEditable())], 'onLoad', [dart.const(new _metadata.DomName('Window.onload')), dart.const(new _metadata.DocsEditable())], 'onLoadedData', [dart.const(new _metadata.DomName('Window.onloadeddata')), dart.const(new _metadata.DocsEditable())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('Window.onloadedmetadata')), dart.const(new _metadata.DocsEditable())], 'onLoadStart', [dart.const(new _metadata.DomName('Window.onloadstart')), dart.const(new _metadata.DocsEditable())], 'onMessage', [dart.const(new _metadata.DomName('Window.onmessage')), dart.const(new _metadata.DocsEditable())], 'onMouseDown', [dart.const(new _metadata.DomName('Window.onmousedown')), dart.const(new _metadata.DocsEditable())], 'onMouseEnter', [dart.const(new _metadata.DomName('Window.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('Window.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('Window.onmousemove')), dart.const(new _metadata.DocsEditable())], 'onMouseOut', [dart.const(new _metadata.DomName('Window.onmouseout')), dart.const(new _metadata.DocsEditable())], 'onMouseOver', [dart.const(new _metadata.DomName('Window.onmouseover')), dart.const(new _metadata.DocsEditable())], 'onMouseUp', [dart.const(new _metadata.DomName('Window.onmouseup')), dart.const(new _metadata.DocsEditable())], 'onMouseWheel', [dart.const(new _metadata.DomName('Window.onmousewheel')), dart.const(new _metadata.DocsEditable())], 'onOffline', [dart.const(new _metadata.DomName('Window.onoffline')), dart.const(new _metadata.DocsEditable())], 'onOnline', [dart.const(new _metadata.DomName('Window.ononline')), dart.const(new _metadata.DocsEditable())], 'onPageHide', [dart.const(new _metadata.DomName('Window.onpagehide')), dart.const(new _metadata.DocsEditable())], 'onPageShow', [dart.const(new _metadata.DomName('Window.onpageshow')), dart.const(new _metadata.DocsEditable())], 'onPause', [dart.const(new _metadata.DomName('Window.onpause')), dart.const(new _metadata.DocsEditable())], 'onPlay', [dart.const(new _metadata.DomName('Window.onplay')), dart.const(new _metadata.DocsEditable())], 'onPlaying', [dart.const(new _metadata.DomName('Window.onplaying')), dart.const(new _metadata.DocsEditable())], 'onPopState', [dart.const(new _metadata.DomName('Window.onpopstate')), dart.const(new _metadata.DocsEditable())], 'onProgress', [dart.const(new _metadata.DomName('Window.onprogress')), dart.const(new _metadata.DocsEditable())], 'onRateChange', [dart.const(new _metadata.DomName('Window.onratechange')), dart.const(new _metadata.DocsEditable())], 'onReset', [dart.const(new _metadata.DomName('Window.onreset')), dart.const(new _metadata.DocsEditable())], 'onResize', [dart.const(new _metadata.DomName('Window.onresize')), dart.const(new _metadata.DocsEditable())], 'onScroll', [dart.const(new _metadata.DomName('Window.onscroll')), dart.const(new _metadata.DocsEditable())], 'onSearch', [dart.const(new _metadata.DomName('Window.onsearch')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('Window.onseeked')), dart.const(new _metadata.DocsEditable())], 'onSeeking', [dart.const(new _metadata.DomName('Window.onseeking')), dart.const(new _metadata.DocsEditable())], 'onSelect', [dart.const(new _metadata.DomName('Window.onselect')), dart.const(new _metadata.DocsEditable())], 'onStalled', [dart.const(new _metadata.DomName('Window.onstalled')), dart.const(new _metadata.DocsEditable())], 'onStorage', [dart.const(new _metadata.DomName('Window.onstorage')), dart.const(new _metadata.DocsEditable())], 'onSubmit', [dart.const(new _metadata.DomName('Window.onsubmit')), dart.const(new _metadata.DocsEditable())], 'onSuspend', [dart.const(new _metadata.DomName('Window.onsuspend')), dart.const(new _metadata.DocsEditable())], 'onTimeUpdate', [dart.const(new _metadata.DomName('Window.ontimeupdate')), dart.const(new _metadata.DocsEditable())], 'onTouchCancel', [dart.const(new _metadata.DomName('Window.ontouchcancel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchEnd', [dart.const(new _metadata.DomName('Window.ontouchend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchMove', [dart.const(new _metadata.DomName('Window.ontouchmove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTouchStart', [dart.const(new _metadata.DomName('Window.ontouchstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTransitionEnd', [dart.const(new _metadata.DomName('Window.ontransitionend')), dart.const(new _metadata.DocsEditable())], 'onUnload', [dart.const(new _metadata.DomName('Window.onunload')), dart.const(new _metadata.DocsEditable())], 'onVolumeChange', [dart.const(new _metadata.DomName('Window.onvolumechange')), dart.const(new _metadata.DocsEditable())], 'onWaiting', [dart.const(new _metadata.DomName('Window.onwaiting')), dart.const(new _metadata.DocsEditable())], 'onAnimationEnd', [dart.const(new _metadata.DomName('Window.onwebkitAnimationEnd')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onAnimationIteration', [dart.const(new _metadata.DomName('Window.onwebkitAnimationIteration')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onAnimationStart', [dart.const(new _metadata.DomName('Window.onwebkitAnimationStart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onBeforeUnload', [dart.const(new _metadata.DomName('Window.onbeforeunload'))], 'pageXOffset', [dart.const(new _metadata.DomName('Window.pageXOffset')), dart.const(new _metadata.DocsEditable())], 'pageYOffset', [dart.const(new _metadata.DomName('Window.pageYOffset')), dart.const(new _metadata.DocsEditable())], 'scrollX', [dart.const(new _metadata.DomName('Window.scrollX')), dart.const(new _metadata.DocsEditable())], 'scrollY', [dart.const(new _metadata.DomName('Window.scrollY')), dart.const(new _metadata.DocsEditable())]])]);
   Window[dart.owner] = exports;
   Window.PERSISTENT = 1;
   Window.TEMPORARY = 0;
@@ -30038,6 +30320,7 @@
       stopPropagation: [dart.void, []]
     })
   });
+  _WrappedEvent[dart.metadata] = () => dart.map(['properties', dart.map(['path', [dart.const(new _metadata.Experimental())]])]);
   _WrappedEvent[dart.owner] = exports;
   class _BeforeUnloadEvent extends _WrappedEvent {
     _BeforeUnloadEvent(base) {
@@ -30106,7 +30389,7 @@
   dart.setSignature(WindowBase64, {
     constructors: () => ({_: [WindowBase64, []]})
   });
-  WindowBase64[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowBase64')), dart.const(new _metadata.Experimental())];
+  WindowBase64[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowBase64')), dart.const(new _metadata.Experimental())]]);
   WindowBase64[dart.owner] = exports;
   dart.defineExtensionNames([
     'onHashChange',
@@ -30155,7 +30438,7 @@
     'onStorage',
     'onUnload'
   ]);
-  WindowEventHandlers[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowEventHandlers')), dart.const(new _metadata.Experimental())];
+  WindowEventHandlers[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowEventHandlers')), dart.const(new _metadata.Experimental())], 'properties', dart.map(['onHashChange', [dart.const(new _metadata.DomName('WindowEventHandlers.onhashchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMessage', [dart.const(new _metadata.DomName('WindowEventHandlers.onmessage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onOffline', [dart.const(new _metadata.DomName('WindowEventHandlers.onoffline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onOnline', [dart.const(new _metadata.DomName('WindowEventHandlers.ononline')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPopState', [dart.const(new _metadata.DomName('WindowEventHandlers.onpopstate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStorage', [dart.const(new _metadata.DomName('WindowEventHandlers.onstorage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onUnload', [dart.const(new _metadata.DomName('WindowEventHandlers.onunload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   WindowEventHandlers[dart.owner] = exports;
   dart.defineLazyProperties(WindowEventHandlers, {
     get hashChangeEvent() {
@@ -30241,7 +30524,7 @@
     statics: () => ({_create_1: [Worker, [dart.dynamic]]}),
     names: ['_create_1']
   });
-  Worker[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Worker')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Worker"))];
+  Worker[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Worker')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Worker"))], 'properties', dart.map(['onError', [dart.const(new _metadata.DomName('Worker.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMessage', [dart.const(new _metadata.DomName('Worker.onmessage')), dart.const(new _metadata.DocsEditable())]])]);
   Worker[dart.owner] = exports;
   dart.defineLazyProperties(Worker, {
     get errorEvent() {
@@ -30260,7 +30543,7 @@
   dart.setSignature(WorkerConsole, {
     constructors: () => ({_: [WorkerConsole, []]})
   });
-  WorkerConsole[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerConsole')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerConsole"))];
+  WorkerConsole[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerConsole')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerConsole"))]]);
   WorkerConsole[dart.owner] = exports;
   dart.registerExtension(dart.global.WorkerConsole, WorkerConsole);
   dart.defineExtensionNames([
@@ -30282,7 +30565,7 @@
     constructors: () => ({_: [WorkerPerformance, []]}),
     methods: () => ({[dartx.now]: [core.double, []]})
   });
-  WorkerPerformance[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerPerformance')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerPerformance"))];
+  WorkerPerformance[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerPerformance')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerPerformance"))], 'fields', dart.map(['memory', [dart.const(new _metadata.DomName('WorkerPerformance.memory')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   WorkerPerformance[dart.owner] = exports;
   dart.registerExtension(dart.global.WorkerPerformance, WorkerPerformance);
   dart.defineExtensionNames([
@@ -30323,7 +30606,7 @@
     statics: () => ({_create_1: [XPathEvaluator, []]}),
     names: ['_create_1']
   });
-  XPathEvaluator[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathEvaluator')), core.deprecated, dart.const(new _js_helper.Native("XPathEvaluator"))];
+  XPathEvaluator[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathEvaluator')), core.deprecated, dart.const(new _js_helper.Native("XPathEvaluator"))]]);
   XPathEvaluator[dart.owner] = exports;
   dart.registerExtension(dart.global.XPathEvaluator, XPathEvaluator);
   dart.defineExtensionNames([
@@ -30341,7 +30624,7 @@
     constructors: () => ({_: [XPathExpression, []]}),
     methods: () => ({[dartx.evaluate]: [XPathResult, [Node, core.int, XPathResult]]})
   });
-  XPathExpression[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathExpression')), core.deprecated, dart.const(new _js_helper.Native("XPathExpression"))];
+  XPathExpression[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathExpression')), core.deprecated, dart.const(new _js_helper.Native("XPathExpression"))]]);
   XPathExpression[dart.owner] = exports;
   dart.registerExtension(dart.global.XPathExpression, XPathExpression);
   dart.defineExtensionNames([
@@ -30359,7 +30642,7 @@
     constructors: () => ({_: [XPathNSResolver, []]}),
     methods: () => ({[dartx.lookupNamespaceUri]: [core.String, [core.String]]})
   });
-  XPathNSResolver[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathNSResolver')), core.deprecated, dart.const(new _js_helper.Native("XPathNSResolver"))];
+  XPathNSResolver[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathNSResolver')), core.deprecated, dart.const(new _js_helper.Native("XPathNSResolver"))]]);
   XPathNSResolver[dart.owner] = exports;
   dart.registerExtension(dart.global.XPathNSResolver, XPathNSResolver);
   dart.defineExtensionNames([
@@ -30412,7 +30695,7 @@
       [dartx.snapshotItem]: [Node, [core.int]]
     })
   });
-  XPathResult[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathResult')), core.deprecated, dart.const(new _js_helper.Native("XPathResult"))];
+  XPathResult[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XPathResult')), core.deprecated, dart.const(new _js_helper.Native("XPathResult"))], 'fields', dart.map(['booleanValue', [dart.const(new _metadata.DomName('XPathResult.booleanValue')), dart.const(new _metadata.DocsEditable())], 'invalidIteratorState', [dart.const(new _metadata.DomName('XPathResult.invalidIteratorState')), dart.const(new _metadata.DocsEditable())], 'numberValue', [dart.const(new _metadata.DomName('XPathResult.numberValue')), dart.const(new _metadata.DocsEditable())], 'resultType', [dart.const(new _metadata.DomName('XPathResult.resultType')), dart.const(new _metadata.DocsEditable())], 'singleNodeValue', [dart.const(new _metadata.DomName('XPathResult.singleNodeValue')), dart.const(new _metadata.DocsEditable())], 'snapshotLength', [dart.const(new _metadata.DomName('XPathResult.snapshotLength')), dart.const(new _metadata.DocsEditable())], 'stringValue', [dart.const(new _metadata.DomName('XPathResult.stringValue')), dart.const(new _metadata.DocsEditable())]])]);
   XPathResult[dart.owner] = exports;
   XPathResult.ANY_TYPE = 0;
   XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
@@ -30433,7 +30716,7 @@
   dart.setSignature(XmlDocument, {
     constructors: () => ({_: [XmlDocument, []]})
   });
-  XmlDocument[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLDocument')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLDocument"))];
+  XmlDocument[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLDocument')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLDocument"))]]);
   XmlDocument[dart.owner] = exports;
   dart.registerExtension(dart.global.XMLDocument, XmlDocument);
   dart.defineExtensionNames([
@@ -30462,7 +30745,7 @@
     statics: () => ({_create_1: [XmlSerializer, []]}),
     names: ['_create_1']
   });
-  XmlSerializer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLSerializer')), core.deprecated, dart.const(new _js_helper.Native("XMLSerializer"))];
+  XmlSerializer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLSerializer')), core.deprecated, dart.const(new _js_helper.Native("XMLSerializer"))]]);
   XmlSerializer[dart.owner] = exports;
   dart.registerExtension(dart.global.XMLSerializer, XmlSerializer);
   dart.defineExtensionNames([
@@ -30531,7 +30814,7 @@
     statics: () => ({_create_1: [XsltProcessor, []]}),
     names: ['_create_1']
   });
-  XsltProcessor[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XSLTProcessor')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), core.deprecated, dart.const(new _js_helper.Native("XSLTProcessor"))];
+  XsltProcessor[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XSLTProcessor')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), core.deprecated, dart.const(new _js_helper.Native("XSLTProcessor"))]]);
   XsltProcessor[dart.owner] = exports;
   dart.registerExtension(dart.global.XSLTProcessor, XsltProcessor);
   dart.defineExtensionNames([
@@ -30563,7 +30846,7 @@
   dart.setSignature(_Attr, {
     constructors: () => ({_: [_Attr, []]})
   });
-  _Attr[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Attr')), dart.const(new _js_helper.Native("Attr"))];
+  _Attr[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Attr')), dart.const(new _js_helper.Native("Attr"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('Attr.name')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('Attr.value')), dart.const(new _metadata.DocsEditable())]])]);
   _Attr[dart.owner] = exports;
   dart.registerExtension(dart.global.Attr, _Attr);
   class _CSSValue extends _interceptors.Interceptor {
@@ -30574,7 +30857,7 @@
   dart.setSignature(_CSSValue, {
     constructors: () => ({_: [_CSSValue, []]})
   });
-  _CSSValue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSValue')), core.deprecated, dart.const(new _js_helper.Native("CSSValue"))];
+  _CSSValue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSValue')), core.deprecated, dart.const(new _js_helper.Native("CSSValue"))]]);
   _CSSValue[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSValue, _CSSValue);
   class _CSSPrimitiveValue extends _CSSValue {
@@ -30585,7 +30868,7 @@
   dart.setSignature(_CSSPrimitiveValue, {
     constructors: () => ({_: [_CSSPrimitiveValue, []]})
   });
-  _CSSPrimitiveValue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSPrimitiveValue')), core.deprecated, dart.const(new _js_helper.Native("CSSPrimitiveValue"))];
+  _CSSPrimitiveValue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSPrimitiveValue')), core.deprecated, dart.const(new _js_helper.Native("CSSPrimitiveValue"))]]);
   _CSSPrimitiveValue[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSPrimitiveValue, _CSSPrimitiveValue);
   class _CSSUnknownRule extends CssRule {
@@ -30596,7 +30879,7 @@
   dart.setSignature(_CSSUnknownRule, {
     constructors: () => ({_: [_CSSUnknownRule, []]})
   });
-  _CSSUnknownRule[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSUnknownRule')), core.deprecated, dart.const(new _js_helper.Native("CSSUnknownRule"))];
+  _CSSUnknownRule[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSUnknownRule')), core.deprecated, dart.const(new _js_helper.Native("CSSUnknownRule"))]]);
   _CSSUnknownRule[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSUnknownRule, _CSSUnknownRule);
   class _Cache extends _interceptors.Interceptor {
@@ -30607,7 +30890,7 @@
   dart.setSignature(_Cache, {
     constructors: () => ({_: [_Cache, []]})
   });
-  _Cache[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Cache')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Cache"))];
+  _Cache[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Cache')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Cache"))]]);
   _Cache[dart.owner] = exports;
   dart.registerExtension(dart.global.Cache, _Cache);
   class _CanvasPathMethods extends _interceptors.Interceptor {
@@ -30618,7 +30901,7 @@
   dart.setSignature(_CanvasPathMethods, {
     constructors: () => ({_: [_CanvasPathMethods, []]})
   });
-  _CanvasPathMethods[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasPathMethods')), dart.const(new _metadata.Experimental())];
+  _CanvasPathMethods[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CanvasPathMethods')), dart.const(new _metadata.Experimental())]]);
   _CanvasPathMethods[dart.owner] = exports;
   dart.defineExtensionNames([
     'toString',
@@ -30724,7 +31007,7 @@
       [dartx.containsPoint]: [core.bool, [math.Point$(core.num)]]
     })
   });
-  _ClientRect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ClientRect')), dart.const(new _js_helper.Native("ClientRect"))];
+  _ClientRect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ClientRect')), dart.const(new _js_helper.Native("ClientRect"))], 'fields', dart.map(['bottom', [dart.const(new _metadata.DomName('ClientRect.bottom')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('ClientRect.height')), dart.const(new _metadata.DocsEditable())], 'left', [dart.const(new _metadata.DomName('ClientRect.left')), dart.const(new _metadata.DocsEditable())], 'right', [dart.const(new _metadata.DomName('ClientRect.right')), dart.const(new _metadata.DocsEditable())], 'top', [dart.const(new _metadata.DomName('ClientRect.top')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('ClientRect.width')), dart.const(new _metadata.DocsEditable())]])]);
   _ClientRect[dart.owner] = exports;
   dart.registerExtension(dart.global.ClientRect, _ClientRect);
   class _JenkinsSmiHash extends core.Object {
@@ -30822,7 +31105,7 @@
       [dartx.item]: [math.Rectangle, [core.int]]
     })
   });
-  _ClientRectList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ClientRectList')), dart.const(new _js_helper.Native("ClientRectList,DOMRectList"))];
+  _ClientRectList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ClientRectList')), dart.const(new _js_helper.Native("ClientRectList,DOMRectList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('ClientRectList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _ClientRectList[dart.owner] = exports;
   dart.registerExtension(dart.global.ClientRectList, _ClientRectList);
   class _Counter extends _interceptors.Interceptor {
@@ -30833,7 +31116,7 @@
   dart.setSignature(_Counter, {
     constructors: () => ({_: [_Counter, []]})
   });
-  _Counter[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Counter')), core.deprecated, dart.const(new _js_helper.Native("Counter"))];
+  _Counter[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Counter')), core.deprecated, dart.const(new _js_helper.Native("Counter"))]]);
   _Counter[dart.owner] = exports;
   dart.registerExtension(dart.global.Counter, _Counter);
   dart.defineExtensionNames([
@@ -30903,7 +31186,7 @@
       [dartx.item]: [CssRule, [core.int]]
     })
   });
-  _CssRuleList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSRuleList')), dart.const(new _js_helper.Native("CSSRuleList"))];
+  _CssRuleList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSRuleList')), dart.const(new _js_helper.Native("CSSRuleList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('CSSRuleList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _CssRuleList[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSRuleList, _CssRuleList);
   dart.defineExtensionNames([
@@ -30973,7 +31256,7 @@
       [dartx.item]: [_CSSValue, [core.int]]
     })
   });
-  _CssValueList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSValueList')), core.deprecated, dart.const(new _js_helper.Native("CSSValueList"))];
+  _CssValueList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('CSSValueList')), core.deprecated, dart.const(new _js_helper.Native("CSSValueList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('CSSValueList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _CssValueList[dart.owner] = exports;
   dart.registerExtension(dart.global.CSSValueList, _CssValueList);
   class _DOMFileSystemSync extends _interceptors.Interceptor {
@@ -30984,7 +31267,7 @@
   dart.setSignature(_DOMFileSystemSync, {
     constructors: () => ({_: [_DOMFileSystemSync, []]})
   });
-  _DOMFileSystemSync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMFileSystemSync')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMFileSystemSync"))];
+  _DOMFileSystemSync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMFileSystemSync')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMFileSystemSync"))]]);
   _DOMFileSystemSync[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMFileSystemSync, _DOMFileSystemSync);
   class _EntrySync extends _interceptors.Interceptor {
@@ -30995,7 +31278,7 @@
   dart.setSignature(_EntrySync, {
     constructors: () => ({_: [_EntrySync, []]})
   });
-  _EntrySync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EntrySync"))];
+  _EntrySync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EntrySync"))]]);
   _EntrySync[dart.owner] = exports;
   dart.registerExtension(dart.global.EntrySync, _EntrySync);
   class _DirectoryEntrySync extends _EntrySync {
@@ -31006,7 +31289,7 @@
   dart.setSignature(_DirectoryEntrySync, {
     constructors: () => ({_: [_DirectoryEntrySync, []]})
   });
-  _DirectoryEntrySync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryEntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryEntrySync"))];
+  _DirectoryEntrySync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryEntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryEntrySync"))]]);
   _DirectoryEntrySync[dart.owner] = exports;
   dart.registerExtension(dart.global.DirectoryEntrySync, _DirectoryEntrySync);
   class _DirectoryReaderSync extends _interceptors.Interceptor {
@@ -31017,7 +31300,7 @@
   dart.setSignature(_DirectoryReaderSync, {
     constructors: () => ({_: [_DirectoryReaderSync, []]})
   });
-  _DirectoryReaderSync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryReaderSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryReaderSync"))];
+  _DirectoryReaderSync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DirectoryReaderSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DirectoryReaderSync"))]]);
   _DirectoryReaderSync[dart.owner] = exports;
   dart.registerExtension(dart.global.DirectoryReaderSync, _DirectoryReaderSync);
   class _DocumentType extends Node {
@@ -31029,7 +31312,7 @@
   dart.setSignature(_DocumentType, {
     constructors: () => ({_: [_DocumentType, []]})
   });
-  _DocumentType[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DocumentType')), core.deprecated, dart.const(new _js_helper.Native("DocumentType"))];
+  _DocumentType[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DocumentType')), core.deprecated, dart.const(new _js_helper.Native("DocumentType"))]]);
   _DocumentType[dart.owner] = exports;
   dart.registerExtension(dart.global.DocumentType, _DocumentType);
   dart.defineExtensionNames([
@@ -31119,7 +31402,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
   });
-  _DomRect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMRect')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMRect"))];
+  _DomRect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DOMRect')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DOMRect"))]]);
   _DomRect[dart.owner] = exports;
   dart.registerExtension(dart.global.DOMRect, _DomRect);
   class _FileEntrySync extends _EntrySync {
@@ -31130,7 +31413,7 @@
   dart.setSignature(_FileEntrySync, {
     constructors: () => ({_: [_FileEntrySync, []]})
   });
-  _FileEntrySync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileEntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileEntrySync"))];
+  _FileEntrySync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileEntrySync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileEntrySync"))]]);
   _FileEntrySync[dart.owner] = exports;
   dart.registerExtension(dart.global.FileEntrySync, _FileEntrySync);
   class _FileReaderSync extends _interceptors.Interceptor {
@@ -31152,7 +31435,7 @@
     statics: () => ({_create_1: [_FileReaderSync, []]}),
     names: ['_create_1']
   });
-  _FileReaderSync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileReaderSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileReaderSync"))];
+  _FileReaderSync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileReaderSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileReaderSync"))]]);
   _FileReaderSync[dart.owner] = exports;
   dart.registerExtension(dart.global.FileReaderSync, _FileReaderSync);
   class _FileWriterSync extends _interceptors.Interceptor {
@@ -31163,7 +31446,7 @@
   dart.setSignature(_FileWriterSync, {
     constructors: () => ({_: [_FileWriterSync, []]})
   });
-  _FileWriterSync[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileWriterSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileWriterSync"))];
+  _FileWriterSync[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('FileWriterSync')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("FileWriterSync"))]]);
   _FileWriterSync[dart.owner] = exports;
   dart.registerExtension(dart.global.FileWriterSync, _FileWriterSync);
   dart.defineExtensionNames([
@@ -31233,7 +31516,7 @@
       [dartx.item]: [Gamepad, [core.int]]
     })
   });
-  _GamepadList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadList"))];
+  _GamepadList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GamepadList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GamepadList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('GamepadList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _GamepadList[dart.owner] = exports;
   dart.registerExtension(dart.global.GamepadList, _GamepadList);
   class _HTMLAllCollection extends _interceptors.Interceptor {
@@ -31248,7 +31531,7 @@
     constructors: () => ({_: [_HTMLAllCollection, []]}),
     methods: () => ({[_item]: [Element, [core.int]]})
   });
-  _HTMLAllCollection[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAllCollection')), core.deprecated, dart.const(new _js_helper.Native("HTMLAllCollection"))];
+  _HTMLAllCollection[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAllCollection')), core.deprecated, dart.const(new _js_helper.Native("HTMLAllCollection"))]]);
   _HTMLAllCollection[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLAllCollection, _HTMLAllCollection);
   class _HTMLAppletElement extends HtmlElement {
@@ -31266,7 +31549,7 @@
       created: [_HTMLAppletElement, []]
     })
   });
-  _HTMLAppletElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAppletElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLAppletElement"))];
+  _HTMLAppletElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLAppletElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLAppletElement"))]]);
   _HTMLAppletElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLAppletElement, _HTMLAppletElement);
   class _HTMLDirectoryElement extends HtmlElement {
@@ -31284,7 +31567,7 @@
       created: [_HTMLDirectoryElement, []]
     })
   });
-  _HTMLDirectoryElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDirectoryElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLDirectoryElement"))];
+  _HTMLDirectoryElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLDirectoryElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLDirectoryElement"))]]);
   _HTMLDirectoryElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLDirectoryElement, _HTMLDirectoryElement);
   class _HTMLFontElement extends HtmlElement {
@@ -31302,7 +31585,7 @@
       created: [_HTMLFontElement, []]
     })
   });
-  _HTMLFontElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFontElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFontElement"))];
+  _HTMLFontElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFontElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFontElement"))]]);
   _HTMLFontElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFontElement, _HTMLFontElement);
   class _HTMLFrameElement extends HtmlElement {
@@ -31320,7 +31603,7 @@
       created: [_HTMLFrameElement, []]
     })
   });
-  _HTMLFrameElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFrameElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFrameElement"))];
+  _HTMLFrameElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFrameElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFrameElement"))]]);
   _HTMLFrameElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFrameElement, _HTMLFrameElement);
   class _HTMLFrameSetElement extends HtmlElement {
@@ -31339,7 +31622,7 @@
       created: [_HTMLFrameSetElement, []]
     })
   });
-  _HTMLFrameSetElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFrameSetElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFrameSetElement"))];
+  _HTMLFrameSetElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLFrameSetElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLFrameSetElement"))]]);
   _HTMLFrameSetElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLFrameSetElement, _HTMLFrameSetElement);
   class _HTMLMarqueeElement extends HtmlElement {
@@ -31357,7 +31640,7 @@
       created: [_HTMLMarqueeElement, []]
     })
   });
-  _HTMLMarqueeElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMarqueeElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLMarqueeElement"))];
+  _HTMLMarqueeElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('HTMLMarqueeElement')), core.deprecated, dart.const(new _js_helper.Native("HTMLMarqueeElement"))]]);
   _HTMLMarqueeElement[dart.owner] = exports;
   dart.registerExtension(dart.global.HTMLMarqueeElement, _HTMLMarqueeElement);
   const _initMutationEvent = Symbol('_initMutationEvent');
@@ -31384,7 +31667,7 @@
       _: [_MutationEvent, []]
     })
   });
-  _MutationEvent[dart.metadata] = () => [dart.const(new _metadata.DomName('MutationEvent')), core.deprecated, dart.const(new _js_helper.Native("MutationEvent"))];
+  _MutationEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('MutationEvent')), core.deprecated, dart.const(new _js_helper.Native("MutationEvent"))]]);
   _MutationEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.MutationEvent, _MutationEvent);
   dart.defineExtensionNames([
@@ -31488,7 +31771,7 @@
       [dartx.setNamedItemNS]: [Node, [Node]]
     })
   });
-  _NamedNodeMap[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NamedNodeMap')), core.deprecated, dart.const(new _js_helper.Native("NamedNodeMap,MozNamedAttrMap"))];
+  _NamedNodeMap[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('NamedNodeMap')), core.deprecated, dart.const(new _js_helper.Native("NamedNodeMap,MozNamedAttrMap"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('NamedNodeMap.length')), dart.const(new _metadata.DocsEditable())]])]);
   _NamedNodeMap[dart.owner] = exports;
   dart.registerExtension(dart.global.NamedNodeMap, _NamedNodeMap);
   class _PagePopupController extends _interceptors.Interceptor {
@@ -31499,7 +31782,7 @@
   dart.setSignature(_PagePopupController, {
     constructors: () => ({_: [_PagePopupController, []]})
   });
-  _PagePopupController[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PagePopupController')), core.deprecated, dart.const(new _js_helper.Native("PagePopupController"))];
+  _PagePopupController[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PagePopupController')), core.deprecated, dart.const(new _js_helper.Native("PagePopupController"))]]);
   _PagePopupController[dart.owner] = exports;
   dart.registerExtension(dart.global.PagePopupController, _PagePopupController);
   class _RGBColor extends _interceptors.Interceptor {
@@ -31510,7 +31793,7 @@
   dart.setSignature(_RGBColor, {
     constructors: () => ({_: [_RGBColor, []]})
   });
-  _RGBColor[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RGBColor')), core.deprecated, dart.const(new _js_helper.Native("RGBColor"))];
+  _RGBColor[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('RGBColor')), core.deprecated, dart.const(new _js_helper.Native("RGBColor"))]]);
   _RGBColor[dart.owner] = exports;
   dart.registerExtension(dart.global.RGBColor, _RGBColor);
   class _Rect extends _interceptors.Interceptor {
@@ -31521,7 +31804,7 @@
   dart.setSignature(_Rect, {
     constructors: () => ({_: [_Rect, []]})
   });
-  _Rect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Rect')), core.deprecated, dart.const(new _js_helper.Native("Rect"))];
+  _Rect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Rect')), core.deprecated, dart.const(new _js_helper.Native("Rect"))]]);
   _Rect[dart.owner] = exports;
   dart.registerExtension(dart.global.Rect, _Rect);
   dart.defineExtensionNames([
@@ -31599,7 +31882,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4']
   });
-  _Request[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Request')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Request"))];
+  _Request[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Request')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Request"))], 'fields', dart.map(['credentials', [dart.const(new _metadata.DomName('Request.credentials')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'headers', [dart.const(new _metadata.DomName('Request.headers')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'mode', [dart.const(new _metadata.DomName('Request.mode')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'referrer', [dart.const(new _metadata.DomName('Request.referrer')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'url', [dart.const(new _metadata.DomName('Request.url')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   _Request[dart.owner] = exports;
   dart.registerExtension(dart.global.Request, _Request);
   class _Response extends Body {
@@ -31680,7 +31963,7 @@
     }),
     names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6', '_create_7', '_create_8']
   });
-  _Response[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Response')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Response"))];
+  _Response[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Response')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Response"))]]);
   _Response[dart.owner] = exports;
   dart.registerExtension(dart.global.Response, _Response);
   class _ServiceWorker extends EventTarget {
@@ -31692,7 +31975,7 @@
   dart.setSignature(_ServiceWorker, {
     constructors: () => ({_: [_ServiceWorker, []]})
   });
-  _ServiceWorker[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorker')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorker"))];
+  _ServiceWorker[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ServiceWorker')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ServiceWorker"))]]);
   _ServiceWorker[dart.owner] = exports;
   dart.registerExtension(dart.global.ServiceWorker, _ServiceWorker);
   dart.defineExtensionNames([
@@ -31762,7 +32045,7 @@
       [dartx.item]: [SpeechRecognitionResult, [core.int]]
     })
   });
-  _SpeechRecognitionResultList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionResultList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionResultList"))];
+  _SpeechRecognitionResultList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SpeechRecognitionResultList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SpeechRecognitionResultList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SpeechRecognitionResultList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _SpeechRecognitionResultList[dart.owner] = exports;
   dart.registerExtension(dart.global.SpeechRecognitionResultList, _SpeechRecognitionResultList);
   dart.defineExtensionNames([
@@ -31836,7 +32119,7 @@
       [dartx.item]: [StyleSheet, [core.int]]
     })
   });
-  _StyleSheetList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleSheetList')), dart.const(new _js_helper.Native("StyleSheetList"))];
+  _StyleSheetList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('StyleSheetList')), dart.const(new _js_helper.Native("StyleSheetList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('StyleSheetList.length')), dart.const(new _metadata.DocsEditable())]])]);
   _StyleSheetList[dart.owner] = exports;
   dart.registerExtension(dart.global.StyleSheetList, _StyleSheetList);
   class _SubtleCrypto extends _interceptors.Interceptor {
@@ -31847,7 +32130,7 @@
   dart.setSignature(_SubtleCrypto, {
     constructors: () => ({_: [_SubtleCrypto, []]})
   });
-  _SubtleCrypto[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SubtleCrypto')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SubtleCrypto"))];
+  _SubtleCrypto[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SubtleCrypto')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SubtleCrypto"))]]);
   _SubtleCrypto[dart.owner] = exports;
   dart.registerExtension(dart.global.SubtleCrypto, _SubtleCrypto);
   class _WebKitCSSFilterValue extends _CssValueList {
@@ -31858,7 +32141,7 @@
   dart.setSignature(_WebKitCSSFilterValue, {
     constructors: () => ({_: [_WebKitCSSFilterValue, []]})
   });
-  _WebKitCSSFilterValue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSFilterValue')), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSFilterValue"))];
+  _WebKitCSSFilterValue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSFilterValue')), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSFilterValue"))]]);
   _WebKitCSSFilterValue[dart.owner] = exports;
   dart.registerExtension(dart.global.WebKitCSSFilterValue, _WebKitCSSFilterValue);
   class _WebKitCSSMatrix extends _interceptors.Interceptor {
@@ -31890,7 +32173,7 @@
     }),
     names: ['_create_1', '_create_2']
   });
-  _WebKitCSSMatrix[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSMatrix')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSMatrix"))];
+  _WebKitCSSMatrix[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSMatrix')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSMatrix"))]]);
   _WebKitCSSMatrix[dart.owner] = exports;
   dart.registerExtension(dart.global.WebKitCSSMatrix, _WebKitCSSMatrix);
   class _WebKitCSSTransformValue extends _CssValueList {
@@ -31901,7 +32184,7 @@
   dart.setSignature(_WebKitCSSTransformValue, {
     constructors: () => ({_: [_WebKitCSSTransformValue, []]})
   });
-  _WebKitCSSTransformValue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSTransformValue')), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSTransformValue"))];
+  _WebKitCSSTransformValue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebKitCSSTransformValue')), core.deprecated, dart.const(new _js_helper.Native("WebKitCSSTransformValue"))]]);
   _WebKitCSSTransformValue[dart.owner] = exports;
   dart.registerExtension(dart.global.WebKitCSSTransformValue, _WebKitCSSTransformValue);
   class _WindowTimers extends _interceptors.Interceptor {
@@ -31912,7 +32195,7 @@
   dart.setSignature(_WindowTimers, {
     constructors: () => ({_: [_WindowTimers, []]})
   });
-  _WindowTimers[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowTimers')), dart.const(new _metadata.Experimental())];
+  _WindowTimers[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WindowTimers')), dart.const(new _metadata.Experimental())]]);
   _WindowTimers[dart.owner] = exports;
   class _WorkerLocation extends _interceptors.Interceptor {
     static _() {
@@ -31923,7 +32206,7 @@
   dart.setSignature(_WorkerLocation, {
     constructors: () => ({_: [_WorkerLocation, []]})
   });
-  _WorkerLocation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerLocation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerLocation"))];
+  _WorkerLocation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerLocation')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerLocation"))]]);
   _WorkerLocation[dart.owner] = exports;
   dart.registerExtension(dart.global.WorkerLocation, _WorkerLocation);
   class _WorkerNavigator extends _interceptors.Interceptor {
@@ -31935,7 +32218,7 @@
   dart.setSignature(_WorkerNavigator, {
     constructors: () => ({_: [_WorkerNavigator, []]})
   });
-  _WorkerNavigator[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerNavigator')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerNavigator"))];
+  _WorkerNavigator[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WorkerNavigator')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WorkerNavigator"))]]);
   _WorkerNavigator[dart.owner] = exports;
   dart.registerExtension(dart.global.WorkerNavigator, _WorkerNavigator);
   class _XMLHttpRequestProgressEvent extends ProgressEvent {
@@ -31946,7 +32229,7 @@
   dart.setSignature(_XMLHttpRequestProgressEvent, {
     constructors: () => ({_: [_XMLHttpRequestProgressEvent, []]})
   });
-  _XMLHttpRequestProgressEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestProgressEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestProgressEvent"))];
+  _XMLHttpRequestProgressEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('XMLHttpRequestProgressEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("XMLHttpRequestProgressEvent"))]]);
   _XMLHttpRequestProgressEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.XMLHttpRequestProgressEvent, _XMLHttpRequestProgressEvent);
   const _matches = Symbol('_matches');
@@ -32281,6 +32564,12 @@
       this[_element] = element;
       super.MutableRectangle(0, 0, 0, 0);
     }
+    set left(value) {
+      super.left = value;
+    }
+    set top(value) {
+      super.top = value;
+    }
     set height(newHeight) {
       dart.throw(new core.UnsupportedError("Can only set height for content rect."));
     }
@@ -32367,9 +32656,15 @@
     set height(newHeight) {
       this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].height = newHeight, core.num, [Element]));
     }
+    get height() {
+      return super.height;
+    }
     set width(newWidth) {
       this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].width = newWidth, core.num, [Element]));
     }
+    get width() {
+      return super.width;
+    }
   }
   dart.setSignature(_ContentCssListRect, {
     constructors: () => ({_ContentCssListRect: [_ContentCssListRect, [dart.dynamic]]})
@@ -32383,9 +32678,15 @@
     get height() {
       return dart.notNull(this[_element][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](exports._HEIGHT, exports._PADDING));
     }
+    set height(value) {
+      super.height = value;
+    }
     get width() {
       return dart.notNull(this[_element][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](exports._WIDTH, exports._PADDING));
     }
+    set width(value) {
+      super.width = value;
+    }
     get left() {
       return dart.as(dart.dsend(this[_element][dartx.getBoundingClientRect]()[dartx.left], '-', this[_addOrSubtractToBoxModel](['left'], exports._PADDING)), core.num);
     }
@@ -32405,9 +32706,15 @@
     get height() {
       return this[_element][dartx.offsetHeight];
     }
+    set height(value) {
+      super.height = value;
+    }
     get width() {
       return this[_element][dartx.offsetWidth];
     }
+    set width(value) {
+      super.width = value;
+    }
     get left() {
       return dart.as(this[_element][dartx.getBoundingClientRect]()[dartx.left], core.num);
     }
@@ -32427,9 +32734,15 @@
     get height() {
       return dart.notNull(this[_element][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](exports._HEIGHT, exports._MARGIN));
     }
+    set height(value) {
+      super.height = value;
+    }
     get width() {
       return dart.notNull(this[_element][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](exports._WIDTH, exports._MARGIN));
     }
+    set width(value) {
+      super.width = value;
+    }
     get left() {
       return dart.as(dart.dsend(this[_element][dartx.getBoundingClientRect]()[dartx.left], '-', this[_addOrSubtractToBoxModel](['left'], exports._MARGIN)), core.num);
     }
@@ -32762,7 +33075,7 @@
       css: [Dimension, [core.String]]
     })
   });
-  Dimension[dart.metadata] = () => [dart.const(new _metadata.Experimental())];
+  Dimension[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.Experimental())]]);
   Dimension[dart.owner] = exports;
   const EventListener = dart.typedef('EventListener', () => dart.functionType(dart.dynamic, [Event]));
   const EventStreamProvider$ = dart.generic(function(T) {
@@ -33294,7 +33607,7 @@
     }),
     names: ['_makeRecord', '_convertToHexString']
   });
-  KeyEvent[dart.metadata] = () => [dart.const(new _metadata.Experimental())];
+  KeyEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.Experimental())], 'properties', dart.map(['location', [dart.const(new _metadata.Experimental())], 'repeat', [dart.const(new _metadata.Experimental())]])]);
   KeyEvent[dart.owner] = exports;
   dart.defineLazyProperties(KeyEvent, {
     get _keyboardEventDispatchRecord() {
diff --git a/lib/runtime/dart/indexed_db.js b/lib/runtime/dart/indexed_db.js
index b33c6e6..336b93e 100644
--- a/lib/runtime/dart/indexed_db.js
+++ b/lib/runtime/dart/indexed_db.js
@@ -184,7 +184,7 @@
       [_update_1]: [Request, [dart.dynamic]]
     })
   });
-  Cursor[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBCursor')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBCursor"))];
+  Cursor[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBCursor')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBCursor"))], 'fields', dart.map(['direction', [dart.const(new _metadata.DomName('IDBCursor.direction')), dart.const(new _metadata.DocsEditable())], 'key', [dart.const(new _metadata.DomName('IDBCursor.key')), dart.const(new _metadata.DocsEditable()), _annotation_Creates_IDBKey, _annotation_Returns_IDBKey], 'primaryKey', [dart.const(new _metadata.DomName('IDBCursor.primaryKey')), dart.const(new _metadata.DocsEditable()), _annotation_Creates_IDBKey, _annotation_Returns_IDBKey], 'source', [dart.const(new _metadata.DomName('IDBCursor.source')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null')), dart.const(new _js_helper.Returns('ObjectStore|Index|Null'))]])]);
   Cursor[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBCursor, Cursor);
   const _get_value = Symbol('_get_value');
@@ -205,7 +205,7 @@
   dart.setSignature(CursorWithValue, {
     constructors: () => ({_: [CursorWithValue, []]})
   });
-  CursorWithValue[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBCursorWithValue')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBCursorWithValue"))];
+  CursorWithValue[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBCursorWithValue')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBCursorWithValue"))], 'fields', dart.map(['_get_value', [dart.const(new _js_helper.JSName('value')), dart.const(new _metadata.DomName('IDBCursorWithValue.value')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue, html_common.annotation_Returns_SerializedScriptValue]]), 'properties', dart.map(['value', [dart.const(new _metadata.DomName('IDBCursorWithValue.value')), dart.const(new _metadata.DocsEditable())]])]);
   CursorWithValue[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBCursorWithValue, CursorWithValue);
   const _createObjectStore = Symbol('_createObjectStore');
@@ -330,7 +330,7 @@
       [dartx.deleteObjectStore]: [dart.void, [core.String]]
     })
   });
-  Database[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBDatabase')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX, '15')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBDatabase"))];
+  Database[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBDatabase')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX, '15')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBDatabase"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('IDBDatabase.name')), dart.const(new _metadata.DocsEditable())], 'objectStoreNames', [dart.const(new _metadata.DomName('IDBDatabase.objectStoreNames')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('DomStringList')), dart.const(new _js_helper.Creates('DomStringList'))], 'version', [dart.const(new _metadata.DomName('IDBDatabase.version')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('int|String|Null')), dart.const(new _js_helper.Returns('int|String|Null'))]]), 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('IDBDatabase.onabort')), dart.const(new _metadata.DocsEditable())], 'onClose', [dart.const(new _metadata.DomName('IDBDatabase.onclose')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('IDBDatabase.onerror')), dart.const(new _metadata.DocsEditable())], 'onVersionChange', [dart.const(new _metadata.DomName('IDBDatabase.onversionchange')), dart.const(new _metadata.DocsEditable())]])]);
   Database[dart.owner] = exports;
   Database.abortEvent = dart.const(new (html.EventStreamProvider$(html.Event))('abort'));
   Database.closeEvent = dart.const(new (html.EventStreamProvider$(html.Event))('close'));
@@ -442,7 +442,7 @@
       [_webkitGetDatabaseNames]: [Request, []]
     })
   });
-  IdbFactory[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBFactory')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX, '15')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBFactory"))];
+  IdbFactory[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBFactory')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX, '15')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBFactory"))]]);
   IdbFactory[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBFactory, IdbFactory);
   function _completeRequest(request) {
@@ -596,7 +596,7 @@
       [_openKeyCursor]: [Request, [core.Object], [core.String]]
     })
   });
-  Index[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBIndex')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBIndex"))];
+  Index[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBIndex')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBIndex"))], 'fields', dart.map(['keyPath', [dart.const(new _metadata.DomName('IDBIndex.keyPath')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue], 'multiEntry', [dart.const(new _metadata.DomName('IDBIndex.multiEntry')), dart.const(new _metadata.DocsEditable())], 'name', [dart.const(new _metadata.DomName('IDBIndex.name')), dart.const(new _metadata.DocsEditable())], 'objectStore', [dart.const(new _metadata.DomName('IDBIndex.objectStore')), dart.const(new _metadata.DocsEditable())], 'unique', [dart.const(new _metadata.DomName('IDBIndex.unique')), dart.const(new _metadata.DocsEditable())]])]);
   Index[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBIndex, Index);
   dart.defineExtensionNames([
@@ -654,7 +654,7 @@
     }),
     names: ['bound_', 'lowerBound_', 'only_', 'upperBound_']
   });
-  KeyRange[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBKeyRange')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBKeyRange"))];
+  KeyRange[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBKeyRange')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBKeyRange"))], 'fields', dart.map(['lower', [dart.const(new _metadata.DomName('IDBKeyRange.lower')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue], 'lowerOpen', [dart.const(new _metadata.DomName('IDBKeyRange.lowerOpen')), dart.const(new _metadata.DocsEditable())], 'upper', [dart.const(new _metadata.DomName('IDBKeyRange.upper')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue], 'upperOpen', [dart.const(new _metadata.DomName('IDBKeyRange.upperOpen')), dart.const(new _metadata.DocsEditable())]])]);
   KeyRange[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBKeyRange, KeyRange);
   const _add = Symbol('_add');
@@ -950,7 +950,7 @@
     statics: () => ({_cursorStreamFromResult: [async.Stream$(Cursor), [Request, core.bool]]}),
     names: ['_cursorStreamFromResult']
   });
-  ObjectStore[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBObjectStore')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBObjectStore"))];
+  ObjectStore[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBObjectStore')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBObjectStore"))], 'fields', dart.map(['autoIncrement', [dart.const(new _metadata.DomName('IDBObjectStore.autoIncrement')), dart.const(new _metadata.DocsEditable())], 'indexNames', [dart.const(new _metadata.DomName('IDBObjectStore.indexNames')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Returns('DomStringList')), dart.const(new _js_helper.Creates('DomStringList'))], 'keyPath', [dart.const(new _metadata.DomName('IDBObjectStore.keyPath')), dart.const(new _metadata.DocsEditable()), html_common.annotation_Creates_SerializedScriptValue], 'name', [dart.const(new _metadata.DomName('IDBObjectStore.name')), dart.const(new _metadata.DocsEditable())], 'transaction', [dart.const(new _metadata.DomName('IDBObjectStore.transaction')), dart.const(new _metadata.DocsEditable())]])]);
   ObjectStore[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBObjectStore, ObjectStore);
   const _get_result = Symbol('_get_result');
@@ -995,7 +995,7 @@
   dart.setSignature(Request, {
     constructors: () => ({_: [Request, []]})
   });
-  Request[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBRequest')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBRequest"))];
+  Request[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBRequest')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBRequest"))], 'fields', dart.map(['error', [dart.const(new _metadata.DomName('IDBRequest.error')), dart.const(new _metadata.DocsEditable())], 'readyState', [dart.const(new _metadata.DomName('IDBRequest.readyState')), dart.const(new _metadata.DocsEditable())], '_get_result', [dart.const(new _js_helper.JSName('result')), dart.const(new _metadata.DomName('IDBRequest.result')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'source', [dart.const(new _metadata.DomName('IDBRequest.source')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('Null'))], 'transaction', [dart.const(new _metadata.DomName('IDBRequest.transaction')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['result', [dart.const(new _metadata.DomName('IDBRequest.result')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('IDBRequest.onerror')), dart.const(new _metadata.DocsEditable())], 'onSuccess', [dart.const(new _metadata.DomName('IDBRequest.onsuccess')), dart.const(new _metadata.DocsEditable())]])]);
   Request[dart.owner] = exports;
   Request.errorEvent = dart.const(new (html.EventStreamProvider$(html.Event))('error'));
   Request.successEvent = dart.const(new (html.EventStreamProvider$(html.Event))('success'));
@@ -1018,7 +1018,7 @@
   dart.setSignature(OpenDBRequest, {
     constructors: () => ({_: [OpenDBRequest, []]})
   });
-  OpenDBRequest[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBOpenDBRequest')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBOpenDBRequest,IDBVersionChangeRequest"))];
+  OpenDBRequest[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBOpenDBRequest')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBOpenDBRequest,IDBVersionChangeRequest"))], 'properties', dart.map(['onBlocked', [dart.const(new _metadata.DomName('IDBOpenDBRequest.onblocked')), dart.const(new _metadata.DocsEditable())], 'onUpgradeNeeded', [dart.const(new _metadata.DomName('IDBOpenDBRequest.onupgradeneeded')), dart.const(new _metadata.DocsEditable())]])]);
   OpenDBRequest[dart.owner] = exports;
   OpenDBRequest.blockedEvent = dart.const(new (html.EventStreamProvider$(html.Event))('blocked'));
   dart.defineLazyProperties(OpenDBRequest, {
@@ -1089,7 +1089,7 @@
       [dartx.objectStore]: [ObjectStore, [core.String]]
     })
   });
-  Transaction[dart.metadata] = () => [dart.const(new _metadata.DomName('IDBTransaction')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBTransaction"))];
+  Transaction[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('IDBTransaction')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBTransaction"))], 'fields', dart.map(['db', [dart.const(new _metadata.DomName('IDBTransaction.db')), dart.const(new _metadata.DocsEditable())], 'error', [dart.const(new _metadata.DomName('IDBTransaction.error')), dart.const(new _metadata.DocsEditable())], 'mode', [dart.const(new _metadata.DomName('IDBTransaction.mode')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('IDBTransaction.onabort')), dart.const(new _metadata.DocsEditable())], 'onComplete', [dart.const(new _metadata.DomName('IDBTransaction.oncomplete')), dart.const(new _metadata.DocsEditable())], 'onError', [dart.const(new _metadata.DomName('IDBTransaction.onerror')), dart.const(new _metadata.DocsEditable())]])]);
   Transaction[dart.owner] = exports;
   Transaction.abortEvent = dart.const(new (html.EventStreamProvider$(html.Event))('abort'));
   Transaction.completeEvent = dart.const(new (html.EventStreamProvider$(html.Event))('complete'));
@@ -1121,7 +1121,7 @@
   dart.setSignature(VersionChangeEvent, {
     constructors: () => ({_: [VersionChangeEvent, []]})
   });
-  VersionChangeEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBVersionChangeEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBVersionChangeEvent"))];
+  VersionChangeEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('IDBVersionChangeEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("IDBVersionChangeEvent"))], 'fields', dart.map(['dataLoss', [dart.const(new _metadata.DomName('IDBVersionChangeEvent.dataLoss')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'dataLossMessage', [dart.const(new _metadata.DomName('IDBVersionChangeEvent.dataLossMessage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'newVersion', [dart.const(new _metadata.DomName('IDBVersionChangeEvent.newVersion')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('int|String|Null')), dart.const(new _js_helper.Returns('int|String|Null'))], 'oldVersion', [dart.const(new _metadata.DomName('IDBVersionChangeEvent.oldVersion')), dart.const(new _metadata.DocsEditable()), dart.const(new _js_helper.Creates('int|String|Null')), dart.const(new _js_helper.Returns('int|String|Null'))]])]);
   VersionChangeEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.IDBVersionChangeEvent, VersionChangeEvent);
   // Exports:
diff --git a/lib/runtime/dart/svg.js b/lib/runtime/dart/svg.js
index 9a247af..ac30ead 100644
--- a/lib/runtime/dart/svg.js
+++ b/lib/runtime/dart/svg.js
@@ -122,6 +122,9 @@
     get [dartx.classes]() {
       return new _AttributeClassSet(this);
     }
+    set [dartx.classes](value) {
+      super.classes = value;
+    }
     get [dartx.children]() {
       return new html_common.FilteredElementList(this);
     }
@@ -399,7 +402,7 @@
       created: [SvgElement, []]
     })
   });
-  SvgElement[dart.metadata] = () => [dart.const(new _metadata.DomName('SVGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGElement"))];
+  SvgElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('SVGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGElement"))], 'fields', dart.map(['ownerSvgElement', [dart.const(new _js_helper.JSName('ownerSVGElement')), dart.const(new _metadata.DomName('SVGElement.ownerSVGElement')), dart.const(new _metadata.DocsEditable())], 'viewportElement', [dart.const(new _metadata.DomName('SVGElement.viewportElement')), dart.const(new _metadata.DocsEditable())], 'xmlbase', [dart.const(new _metadata.DomName('SVGElement.xmlbase')), dart.const(new _metadata.DocsEditable())], 'xmllang', [dart.const(new _metadata.DomName('SVGElement.xmllang')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'xmlspace', [dart.const(new _metadata.DomName('SVGElement.xmlspace')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]]), 'properties', dart.map(['onAbort', [dart.const(new _metadata.DomName('SVGElement.onabort')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onBlur', [dart.const(new _metadata.DomName('SVGElement.onblur')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlay', [dart.const(new _metadata.DomName('SVGElement.oncanplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onCanPlayThrough', [dart.const(new _metadata.DomName('SVGElement.oncanplaythrough')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onChange', [dart.const(new _metadata.DomName('SVGElement.onchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onClick', [dart.const(new _metadata.DomName('SVGElement.onclick')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onContextMenu', [dart.const(new _metadata.DomName('SVGElement.oncontextmenu')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDoubleClick', [dart.const(new _metadata.DomName('SVGElement.ondblclick')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDrag', [dart.const(new _metadata.DomName('SVGElement.ondrag')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragEnd', [dart.const(new _metadata.DomName('SVGElement.ondragend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragEnter', [dart.const(new _metadata.DomName('SVGElement.ondragenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragLeave', [dart.const(new _metadata.DomName('SVGElement.ondragleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragOver', [dart.const(new _metadata.DomName('SVGElement.ondragover')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDragStart', [dart.const(new _metadata.DomName('SVGElement.ondragstart')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDrop', [dart.const(new _metadata.DomName('SVGElement.ondrop')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onDurationChange', [dart.const(new _metadata.DomName('SVGElement.ondurationchange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEmptied', [dart.const(new _metadata.DomName('SVGElement.onemptied')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onEnded', [dart.const(new _metadata.DomName('SVGElement.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onError', [dart.const(new _metadata.DomName('SVGElement.onerror')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onFocus', [dart.const(new _metadata.DomName('SVGElement.onfocus')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onInput', [dart.const(new _metadata.DomName('SVGElement.oninput')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onInvalid', [dart.const(new _metadata.DomName('SVGElement.oninvalid')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyDown', [dart.const(new _metadata.DomName('SVGElement.onkeydown')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyPress', [dart.const(new _metadata.DomName('SVGElement.onkeypress')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onKeyUp', [dart.const(new _metadata.DomName('SVGElement.onkeyup')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoad', [dart.const(new _metadata.DomName('SVGElement.onload')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedData', [dart.const(new _metadata.DomName('SVGElement.onloadeddata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onLoadedMetadata', [dart.const(new _metadata.DomName('SVGElement.onloadedmetadata')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseDown', [dart.const(new _metadata.DomName('SVGElement.onmousedown')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseEnter', [dart.const(new _metadata.DomName('SVGElement.onmouseenter')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseLeave', [dart.const(new _metadata.DomName('SVGElement.onmouseleave')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseMove', [dart.const(new _metadata.DomName('SVGElement.onmousemove')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseOut', [dart.const(new _metadata.DomName('SVGElement.onmouseout')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseOver', [dart.const(new _metadata.DomName('SVGElement.onmouseover')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseUp', [dart.const(new _metadata.DomName('SVGElement.onmouseup')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onMouseWheel', [dart.const(new _metadata.DomName('SVGElement.onmousewheel')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPause', [dart.const(new _metadata.DomName('SVGElement.onpause')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlay', [dart.const(new _metadata.DomName('SVGElement.onplay')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onPlaying', [dart.const(new _metadata.DomName('SVGElement.onplaying')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onRateChange', [dart.const(new _metadata.DomName('SVGElement.onratechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onReset', [dart.const(new _metadata.DomName('SVGElement.onreset')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onResize', [dart.const(new _metadata.DomName('SVGElement.onresize')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onScroll', [dart.const(new _metadata.DomName('SVGElement.onscroll')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeked', [dart.const(new _metadata.DomName('SVGElement.onseeked')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSeeking', [dart.const(new _metadata.DomName('SVGElement.onseeking')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSelect', [dart.const(new _metadata.DomName('SVGElement.onselect')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onStalled', [dart.const(new _metadata.DomName('SVGElement.onstalled')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSubmit', [dart.const(new _metadata.DomName('SVGElement.onsubmit')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onSuspend', [dart.const(new _metadata.DomName('SVGElement.onsuspend')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onTimeUpdate', [dart.const(new _metadata.DomName('SVGElement.ontimeupdate')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onVolumeChange', [dart.const(new _metadata.DomName('SVGElement.onvolumechange')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'onWaiting', [dart.const(new _metadata.DomName('SVGElement.onwaiting')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   SvgElement[dart.owner] = exports;
   dart.defineLazyProperties(SvgElement, {
     get _START_TAG_REGEXP() {
@@ -482,7 +485,7 @@
       [dartx.hasExtension]: [core.bool, [core.String]]
     })
   });
-  GraphicsElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGraphicsElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGGraphicsElement"))];
+  GraphicsElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGraphicsElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGGraphicsElement"))], 'fields', dart.map(['farthestViewportElement', [dart.const(new _metadata.DomName('SVGGraphicsElement.farthestViewportElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'nearestViewportElement', [dart.const(new _metadata.DomName('SVGGraphicsElement.nearestViewportElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'transform', [dart.const(new _metadata.DomName('SVGGraphicsElement.transform')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'requiredExtensions', [dart.const(new _metadata.DomName('SVGGraphicsElement.requiredExtensions')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'requiredFeatures', [dart.const(new _metadata.DomName('SVGGraphicsElement.requiredFeatures')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'systemLanguage', [dart.const(new _metadata.DomName('SVGGraphicsElement.systemLanguage')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   GraphicsElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGGraphicsElement, GraphicsElement);
   dart.defineExtensionNames([
@@ -517,7 +520,7 @@
       created: [AElement, []]
     })
   });
-  AElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAElement"))];
+  AElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAElement"))], 'fields', dart.map(['target', [dart.const(new _metadata.DomName('SVGAElement.target')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGAElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   AElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAElement, AElement);
   dart.defineExtensionNames([
@@ -594,7 +597,7 @@
       [dartx.selectSubString]: [dart.void, [core.int, core.int]]
     })
   });
-  TextContentElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextContentElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextContentElement"))];
+  TextContentElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextContentElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextContentElement"))], 'fields', dart.map(['lengthAdjust', [dart.const(new _metadata.DomName('SVGTextContentElement.lengthAdjust')), dart.const(new _metadata.DocsEditable())], 'textLength', [dart.const(new _metadata.DomName('SVGTextContentElement.textLength')), dart.const(new _metadata.DocsEditable())]])]);
   TextContentElement[dart.owner] = exports;
   TextContentElement.LENGTHADJUST_SPACING = 1;
   TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS = 2;
@@ -642,7 +645,7 @@
       created: [TextPositioningElement, []]
     })
   });
-  TextPositioningElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextPositioningElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextPositioningElement"))];
+  TextPositioningElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextPositioningElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextPositioningElement"))], 'fields', dart.map(['dx', [dart.const(new _metadata.DomName('SVGTextPositioningElement.dx')), dart.const(new _metadata.DocsEditable())], 'dy', [dart.const(new _metadata.DomName('SVGTextPositioningElement.dy')), dart.const(new _metadata.DocsEditable())], 'rotate', [dart.const(new _metadata.DomName('SVGTextPositioningElement.rotate')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGTextPositioningElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGTextPositioningElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   TextPositioningElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGTextPositioningElement, TextPositioningElement);
   dart.defineExtensionNames([
@@ -691,7 +694,7 @@
       created: [AltGlyphElement, []]
     })
   });
-  AltGlyphElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphElement"))];
+  AltGlyphElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphElement"))], 'fields', dart.map(['format', [dart.const(new _metadata.DomName('SVGAltGlyphElement.format')), dart.const(new _metadata.DocsEditable())], 'glyphRef', [dart.const(new _metadata.DomName('SVGAltGlyphElement.glyphRef')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGAltGlyphElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   AltGlyphElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAltGlyphElement, AltGlyphElement);
   dart.defineExtensionNames([
@@ -741,7 +744,7 @@
       [dartx.newValueSpecifiedUnits]: [dart.void, [core.int, core.num]]
     })
   });
-  Angle[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAngle')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAngle"))];
+  Angle[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAngle')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAngle"))], 'fields', dart.map(['unitType', [dart.const(new _metadata.DomName('SVGAngle.unitType')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('SVGAngle.value')), dart.const(new _metadata.DocsEditable())], 'valueAsString', [dart.const(new _metadata.DomName('SVGAngle.valueAsString')), dart.const(new _metadata.DocsEditable())], 'valueInSpecifiedUnits', [dart.const(new _metadata.DomName('SVGAngle.valueInSpecifiedUnits')), dart.const(new _metadata.DocsEditable())]])]);
   Angle[dart.owner] = exports;
   Angle.SVG_ANGLETYPE_DEG = 2;
   Angle.SVG_ANGLETYPE_GRAD = 4;
@@ -833,7 +836,7 @@
       [dartx.hasExtension]: [core.bool, [core.String]]
     })
   });
-  AnimationElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimationElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimationElement"))];
+  AnimationElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimationElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimationElement"))], 'fields', dart.map(['targetElement', [dart.const(new _metadata.DomName('SVGAnimationElement.targetElement')), dart.const(new _metadata.DocsEditable())], 'requiredExtensions', [dart.const(new _metadata.DomName('SVGAnimationElement.requiredExtensions')), dart.const(new _metadata.DocsEditable())], 'requiredFeatures', [dart.const(new _metadata.DomName('SVGAnimationElement.requiredFeatures')), dart.const(new _metadata.DocsEditable())], 'systemLanguage', [dart.const(new _metadata.DomName('SVGAnimationElement.systemLanguage')), dart.const(new _metadata.DocsEditable())]])]);
   AnimationElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimationElement, AnimationElement);
   class AnimateElement extends AnimationElement {
@@ -858,7 +861,7 @@
       created: [AnimateElement, []]
     })
   });
-  AnimateElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateElement"))];
+  AnimateElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateElement"))]]);
   AnimateElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimateElement, AnimateElement);
   class AnimateMotionElement extends AnimationElement {
@@ -883,7 +886,7 @@
       created: [AnimateMotionElement, []]
     })
   });
-  AnimateMotionElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateMotionElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateMotionElement"))];
+  AnimateMotionElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateMotionElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateMotionElement"))]]);
   AnimateMotionElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimateMotionElement, AnimateMotionElement);
   class AnimateTransformElement extends AnimationElement {
@@ -908,7 +911,7 @@
       created: [AnimateTransformElement, []]
     })
   });
-  AnimateTransformElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateTransformElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateTransformElement"))];
+  AnimateTransformElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimateTransformElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimateTransformElement"))]]);
   AnimateTransformElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimateTransformElement, AnimateTransformElement);
   dart.defineExtensionNames([
@@ -929,7 +932,7 @@
   dart.setSignature(AnimatedAngle, {
     constructors: () => ({_: [AnimatedAngle, []]})
   });
-  AnimatedAngle[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedAngle')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedAngle"))];
+  AnimatedAngle[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedAngle')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedAngle"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedAngle.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedAngle.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedAngle[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedAngle, AnimatedAngle);
   dart.defineExtensionNames([
@@ -953,7 +956,7 @@
   dart.setSignature(AnimatedBoolean, {
     constructors: () => ({_: [AnimatedBoolean, []]})
   });
-  AnimatedBoolean[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedBoolean')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedBoolean"))];
+  AnimatedBoolean[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedBoolean')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedBoolean"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedBoolean.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedBoolean.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedBoolean[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedBoolean, AnimatedBoolean);
   dart.defineExtensionNames([
@@ -977,7 +980,7 @@
   dart.setSignature(AnimatedEnumeration, {
     constructors: () => ({_: [AnimatedEnumeration, []]})
   });
-  AnimatedEnumeration[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedEnumeration')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedEnumeration"))];
+  AnimatedEnumeration[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedEnumeration')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedEnumeration"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedEnumeration.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedEnumeration.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedEnumeration[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedEnumeration, AnimatedEnumeration);
   dart.defineExtensionNames([
@@ -1001,7 +1004,7 @@
   dart.setSignature(AnimatedInteger, {
     constructors: () => ({_: [AnimatedInteger, []]})
   });
-  AnimatedInteger[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedInteger')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedInteger"))];
+  AnimatedInteger[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedInteger')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedInteger"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedInteger.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedInteger.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedInteger[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedInteger, AnimatedInteger);
   dart.defineExtensionNames([
@@ -1022,7 +1025,7 @@
   dart.setSignature(AnimatedLength, {
     constructors: () => ({_: [AnimatedLength, []]})
   });
-  AnimatedLength[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedLength')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedLength"))];
+  AnimatedLength[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedLength')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedLength"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedLength.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedLength.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedLength[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedLength, AnimatedLength);
   dart.defineExtensionNames([
@@ -1043,7 +1046,7 @@
   dart.setSignature(AnimatedLengthList, {
     constructors: () => ({_: [AnimatedLengthList, []]})
   });
-  AnimatedLengthList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedLengthList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedLengthList"))];
+  AnimatedLengthList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedLengthList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedLengthList"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedLengthList.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedLengthList.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedLengthList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedLengthList, AnimatedLengthList);
   dart.defineExtensionNames([
@@ -1067,7 +1070,7 @@
   dart.setSignature(AnimatedNumber, {
     constructors: () => ({_: [AnimatedNumber, []]})
   });
-  AnimatedNumber[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedNumber')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedNumber"))];
+  AnimatedNumber[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedNumber')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedNumber"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedNumber.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedNumber.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedNumber[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedNumber, AnimatedNumber);
   dart.defineExtensionNames([
@@ -1088,7 +1091,7 @@
   dart.setSignature(AnimatedNumberList, {
     constructors: () => ({_: [AnimatedNumberList, []]})
   });
-  AnimatedNumberList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedNumberList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedNumberList"))];
+  AnimatedNumberList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedNumberList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedNumberList"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedNumberList.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedNumberList.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedNumberList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedNumberList, AnimatedNumberList);
   dart.defineExtensionNames([
@@ -1109,7 +1112,7 @@
   dart.setSignature(AnimatedPreserveAspectRatio, {
     constructors: () => ({_: [AnimatedPreserveAspectRatio, []]})
   });
-  AnimatedPreserveAspectRatio[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedPreserveAspectRatio')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedPreserveAspectRatio"))];
+  AnimatedPreserveAspectRatio[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedPreserveAspectRatio')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedPreserveAspectRatio"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedPreserveAspectRatio.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedPreserveAspectRatio.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedPreserveAspectRatio[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedPreserveAspectRatio, AnimatedPreserveAspectRatio);
   dart.defineExtensionNames([
@@ -1130,7 +1133,7 @@
   dart.setSignature(AnimatedRect, {
     constructors: () => ({_: [AnimatedRect, []]})
   });
-  AnimatedRect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedRect')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedRect"))];
+  AnimatedRect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedRect')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedRect"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedRect.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedRect.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedRect[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedRect, AnimatedRect);
   dart.defineExtensionNames([
@@ -1154,7 +1157,7 @@
   dart.setSignature(AnimatedString, {
     constructors: () => ({_: [AnimatedString, []]})
   });
-  AnimatedString[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedString')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedString"))];
+  AnimatedString[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedString')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedString"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedString.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedString.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedString[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedString, AnimatedString);
   dart.defineExtensionNames([
@@ -1175,7 +1178,7 @@
   dart.setSignature(AnimatedTransformList, {
     constructors: () => ({_: [AnimatedTransformList, []]})
   });
-  AnimatedTransformList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedTransformList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedTransformList"))];
+  AnimatedTransformList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAnimatedTransformList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAnimatedTransformList"))], 'fields', dart.map(['animVal', [dart.const(new _metadata.DomName('SVGAnimatedTransformList.animVal')), dart.const(new _metadata.DocsEditable())], 'baseVal', [dart.const(new _metadata.DomName('SVGAnimatedTransformList.baseVal')), dart.const(new _metadata.DocsEditable())]])]);
   AnimatedTransformList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAnimatedTransformList, AnimatedTransformList);
   dart.defineExtensionNames([
@@ -1207,7 +1210,7 @@
       [dartx.isPointInStroke]: [core.bool, [Point]]
     })
   });
-  GeometryElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGeometryElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGGeometryElement"))];
+  GeometryElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGeometryElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGGeometryElement"))]]);
   GeometryElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGGeometryElement, GeometryElement);
   dart.defineExtensionNames([
@@ -1246,7 +1249,7 @@
       created: [CircleElement, []]
     })
   });
-  CircleElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGCircleElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGCircleElement"))];
+  CircleElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGCircleElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGCircleElement"))], 'fields', dart.map(['cx', [dart.const(new _metadata.DomName('SVGCircleElement.cx')), dart.const(new _metadata.DocsEditable())], 'cy', [dart.const(new _metadata.DomName('SVGCircleElement.cy')), dart.const(new _metadata.DocsEditable())], 'r', [dart.const(new _metadata.DomName('SVGCircleElement.r')), dart.const(new _metadata.DocsEditable())]])]);
   CircleElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGCircleElement, CircleElement);
   dart.defineExtensionNames([
@@ -1275,7 +1278,7 @@
       created: [ClipPathElement, []]
     })
   });
-  ClipPathElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGClipPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGClipPathElement"))];
+  ClipPathElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGClipPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGClipPathElement"))], 'fields', dart.map(['clipPathUnits', [dart.const(new _metadata.DomName('SVGClipPathElement.clipPathUnits')), dart.const(new _metadata.DocsEditable())]])]);
   ClipPathElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGClipPathElement, ClipPathElement);
   class DefsElement extends GraphicsElement {
@@ -1297,7 +1300,7 @@
       created: [DefsElement, []]
     })
   });
-  DefsElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDefsElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGDefsElement"))];
+  DefsElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDefsElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGDefsElement"))]]);
   DefsElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGDefsElement, DefsElement);
   class DescElement extends SvgElement {
@@ -1319,7 +1322,7 @@
       created: [DescElement, []]
     })
   });
-  DescElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDescElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGDescElement"))];
+  DescElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDescElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGDescElement"))]]);
   DescElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGDescElement, DescElement);
   class DiscardElement extends SvgElement {
@@ -1337,7 +1340,7 @@
       created: [DiscardElement, []]
     })
   });
-  DiscardElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDiscardElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGDiscardElement"))];
+  DiscardElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGDiscardElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGDiscardElement"))]]);
   DiscardElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGDiscardElement, DiscardElement);
   dart.defineExtensionNames([
@@ -1381,7 +1384,7 @@
       created: [EllipseElement, []]
     })
   });
-  EllipseElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGEllipseElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGEllipseElement"))];
+  EllipseElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGEllipseElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGEllipseElement"))], 'fields', dart.map(['cx', [dart.const(new _metadata.DomName('SVGEllipseElement.cx')), dart.const(new _metadata.DocsEditable())], 'cy', [dart.const(new _metadata.DomName('SVGEllipseElement.cy')), dart.const(new _metadata.DocsEditable())], 'rx', [dart.const(new _metadata.DomName('SVGEllipseElement.rx')), dart.const(new _metadata.DocsEditable())], 'ry', [dart.const(new _metadata.DomName('SVGEllipseElement.ry')), dart.const(new _metadata.DocsEditable())]])]);
   EllipseElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGEllipseElement, EllipseElement);
   dart.defineExtensionNames([
@@ -1449,7 +1452,7 @@
       created: [FEBlendElement, []]
     })
   });
-  FEBlendElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEBlendElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEBlendElement"))];
+  FEBlendElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEBlendElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEBlendElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEBlendElement.in1')), dart.const(new _metadata.DocsEditable())], 'in2', [dart.const(new _metadata.DomName('SVGFEBlendElement.in2')), dart.const(new _metadata.DocsEditable())], 'mode', [dart.const(new _metadata.DomName('SVGFEBlendElement.mode')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEBlendElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEBlendElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEBlendElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEBlendElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEBlendElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEBlendElement[dart.owner] = exports;
   FEBlendElement.SVG_FEBLEND_MODE_DARKEN = 4;
   FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN = 5;
@@ -1523,7 +1526,7 @@
       created: [FEColorMatrixElement, []]
     })
   });
-  FEColorMatrixElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEColorMatrixElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEColorMatrixElement"))];
+  FEColorMatrixElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEColorMatrixElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEColorMatrixElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.in1')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.type')), dart.const(new _metadata.DocsEditable())], 'values', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.values')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEColorMatrixElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEColorMatrixElement[dart.owner] = exports;
   FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
   FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
@@ -1586,7 +1589,7 @@
       created: [FEComponentTransferElement, []]
     })
   });
-  FEComponentTransferElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEComponentTransferElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEComponentTransferElement"))];
+  FEComponentTransferElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEComponentTransferElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEComponentTransferElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.in1')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEComponentTransferElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEComponentTransferElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEComponentTransferElement, FEComponentTransferElement);
   dart.defineExtensionNames([
@@ -1667,7 +1670,7 @@
       created: [FECompositeElement, []]
     })
   });
-  FECompositeElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFECompositeElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFECompositeElement"))];
+  FECompositeElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFECompositeElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFECompositeElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFECompositeElement.in1')), dart.const(new _metadata.DocsEditable())], 'in2', [dart.const(new _metadata.DomName('SVGFECompositeElement.in2')), dart.const(new _metadata.DocsEditable())], 'k1', [dart.const(new _metadata.DomName('SVGFECompositeElement.k1')), dart.const(new _metadata.DocsEditable())], 'k2', [dart.const(new _metadata.DomName('SVGFECompositeElement.k2')), dart.const(new _metadata.DocsEditable())], 'k3', [dart.const(new _metadata.DomName('SVGFECompositeElement.k3')), dart.const(new _metadata.DocsEditable())], 'k4', [dart.const(new _metadata.DomName('SVGFECompositeElement.k4')), dart.const(new _metadata.DocsEditable())], 'operator', [dart.const(new _metadata.DomName('SVGFECompositeElement.operator')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFECompositeElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFECompositeElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFECompositeElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFECompositeElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFECompositeElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FECompositeElement[dart.owner] = exports;
   FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
   FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
@@ -1787,7 +1790,7 @@
       created: [FEConvolveMatrixElement, []]
     })
   });
-  FEConvolveMatrixElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEConvolveMatrixElement"))];
+  FEConvolveMatrixElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEConvolveMatrixElement"))], 'fields', dart.map(['bias', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.bias')), dart.const(new _metadata.DocsEditable())], 'divisor', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.divisor')), dart.const(new _metadata.DocsEditable())], 'edgeMode', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.edgeMode')), dart.const(new _metadata.DocsEditable())], 'in1', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.in1')), dart.const(new _metadata.DocsEditable())], 'kernelMatrix', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.kernelMatrix')), dart.const(new _metadata.DocsEditable())], 'kernelUnitLengthX', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.kernelUnitLengthX')), dart.const(new _metadata.DocsEditable())], 'kernelUnitLengthY', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.kernelUnitLengthY')), dart.const(new _metadata.DocsEditable())], 'orderX', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.orderX')), dart.const(new _metadata.DocsEditable())], 'orderY', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.orderY')), dart.const(new _metadata.DocsEditable())], 'preserveAlpha', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.preserveAlpha')), dart.const(new _metadata.DocsEditable())], 'targetX', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.targetX')), dart.const(new _metadata.DocsEditable())], 'targetY', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.targetY')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEConvolveMatrixElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEConvolveMatrixElement[dart.owner] = exports;
   FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE = 1;
   FEConvolveMatrixElement.SVG_EDGEMODE_NONE = 3;
@@ -1869,7 +1872,7 @@
       created: [FEDiffuseLightingElement, []]
     })
   });
-  FEDiffuseLightingElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDiffuseLightingElement"))];
+  FEDiffuseLightingElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDiffuseLightingElement"))], 'fields', dart.map(['diffuseConstant', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.diffuseConstant')), dart.const(new _metadata.DocsEditable())], 'in1', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.in1')), dart.const(new _metadata.DocsEditable())], 'kernelUnitLengthX', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.kernelUnitLengthX')), dart.const(new _metadata.DocsEditable())], 'kernelUnitLengthY', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.kernelUnitLengthY')), dart.const(new _metadata.DocsEditable())], 'surfaceScale', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.surfaceScale')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEDiffuseLightingElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEDiffuseLightingElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEDiffuseLightingElement, FEDiffuseLightingElement);
   dart.defineExtensionNames([
@@ -1947,7 +1950,7 @@
       created: [FEDisplacementMapElement, []]
     })
   });
-  FEDisplacementMapElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDisplacementMapElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDisplacementMapElement"))];
+  FEDisplacementMapElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDisplacementMapElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDisplacementMapElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.in1')), dart.const(new _metadata.DocsEditable())], 'in2', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.in2')), dart.const(new _metadata.DocsEditable())], 'scale', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.scale')), dart.const(new _metadata.DocsEditable())], 'xChannelSelector', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.xChannelSelector')), dart.const(new _metadata.DocsEditable())], 'yChannelSelector', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.yChannelSelector')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEDisplacementMapElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEDisplacementMapElement[dart.owner] = exports;
   FEDisplacementMapElement.SVG_CHANNEL_A = 4;
   FEDisplacementMapElement.SVG_CHANNEL_B = 3;
@@ -1989,7 +1992,7 @@
       created: [FEDistantLightElement, []]
     })
   });
-  FEDistantLightElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDistantLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDistantLightElement"))];
+  FEDistantLightElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDistantLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEDistantLightElement"))], 'fields', dart.map(['azimuth', [dart.const(new _metadata.DomName('SVGFEDistantLightElement.azimuth')), dart.const(new _metadata.DocsEditable())], 'elevation', [dart.const(new _metadata.DomName('SVGFEDistantLightElement.elevation')), dart.const(new _metadata.DocsEditable())]])]);
   FEDistantLightElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEDistantLightElement, FEDistantLightElement);
   dart.defineExtensionNames([
@@ -2042,7 +2045,7 @@
       created: [FEFloodElement, []]
     })
   });
-  FEFloodElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFloodElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFloodElement"))];
+  FEFloodElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFloodElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFloodElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGFEFloodElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEFloodElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEFloodElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEFloodElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEFloodElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEFloodElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEFloodElement, FEFloodElement);
   class _SVGComponentTransferFunctionElement extends SvgElement {
@@ -2060,7 +2063,7 @@
       created: [_SVGComponentTransferFunctionElement, []]
     })
   });
-  _SVGComponentTransferFunctionElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGComponentTransferFunctionElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGComponentTransferFunctionElement"))];
+  _SVGComponentTransferFunctionElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGComponentTransferFunctionElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGComponentTransferFunctionElement"))]]);
   _SVGComponentTransferFunctionElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGComponentTransferFunctionElement, _SVGComponentTransferFunctionElement);
   class FEFuncAElement extends _SVGComponentTransferFunctionElement {
@@ -2085,7 +2088,7 @@
       created: [FEFuncAElement, []]
     })
   });
-  FEFuncAElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncAElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncAElement"))];
+  FEFuncAElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncAElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncAElement"))]]);
   FEFuncAElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEFuncAElement, FEFuncAElement);
   class FEFuncBElement extends _SVGComponentTransferFunctionElement {
@@ -2110,7 +2113,7 @@
       created: [FEFuncBElement, []]
     })
   });
-  FEFuncBElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncBElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncBElement"))];
+  FEFuncBElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncBElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncBElement"))]]);
   FEFuncBElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEFuncBElement, FEFuncBElement);
   class FEFuncGElement extends _SVGComponentTransferFunctionElement {
@@ -2135,7 +2138,7 @@
       created: [FEFuncGElement, []]
     })
   });
-  FEFuncGElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncGElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncGElement"))];
+  FEFuncGElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncGElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncGElement"))]]);
   FEFuncGElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEFuncGElement, FEFuncGElement);
   class FEFuncRElement extends _SVGComponentTransferFunctionElement {
@@ -2160,7 +2163,7 @@
       created: [FEFuncRElement, []]
     })
   });
-  FEFuncRElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncRElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncRElement"))];
+  FEFuncRElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEFuncRElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEFuncRElement"))]]);
   FEFuncRElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEFuncRElement, FEFuncRElement);
   dart.defineExtensionNames([
@@ -2233,7 +2236,7 @@
     }),
     methods: () => ({[dartx.setStdDeviation]: [dart.void, [core.num, core.num]]})
   });
-  FEGaussianBlurElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEGaussianBlurElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEGaussianBlurElement"))];
+  FEGaussianBlurElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEGaussianBlurElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEGaussianBlurElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.in1')), dart.const(new _metadata.DocsEditable())], 'stdDeviationX', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.stdDeviationX')), dart.const(new _metadata.DocsEditable())], 'stdDeviationY', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.stdDeviationY')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEGaussianBlurElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEGaussianBlurElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEGaussianBlurElement, FEGaussianBlurElement);
   dart.defineExtensionNames([
@@ -2296,7 +2299,7 @@
       created: [FEImageElement, []]
     })
   });
-  FEImageElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEImageElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEImageElement"))];
+  FEImageElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEImageElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEImageElement"))], 'fields', dart.map(['preserveAspectRatio', [dart.const(new _metadata.DomName('SVGFEImageElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEImageElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEImageElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEImageElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEImageElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEImageElement.y')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGFEImageElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   FEImageElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEImageElement, FEImageElement);
   dart.defineExtensionNames([
@@ -2349,7 +2352,7 @@
       created: [FEMergeElement, []]
     })
   });
-  FEMergeElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMergeElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMergeElement"))];
+  FEMergeElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMergeElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMergeElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGFEMergeElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEMergeElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEMergeElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEMergeElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEMergeElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEMergeElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEMergeElement, FEMergeElement);
   dart.defineExtensionNames([
@@ -2381,7 +2384,7 @@
       created: [FEMergeNodeElement, []]
     })
   });
-  FEMergeNodeElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMergeNodeElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMergeNodeElement"))];
+  FEMergeNodeElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMergeNodeElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMergeNodeElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEMergeNodeElement.in1')), dart.const(new _metadata.DocsEditable())]])]);
   FEMergeNodeElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEMergeNodeElement, FEMergeNodeElement);
   dart.defineExtensionNames([
@@ -2447,7 +2450,7 @@
       created: [FEMorphologyElement, []]
     })
   });
-  FEMorphologyElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMorphologyElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMorphologyElement"))];
+  FEMorphologyElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEMorphologyElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEMorphologyElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.in1')), dart.const(new _metadata.DocsEditable())], 'operator', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.operator')), dart.const(new _metadata.DocsEditable())], 'radiusX', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.radiusX')), dart.const(new _metadata.DocsEditable())], 'radiusY', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.radiusY')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEMorphologyElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEMorphologyElement[dart.owner] = exports;
   FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
   FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
@@ -2518,7 +2521,7 @@
       created: [FEOffsetElement, []]
     })
   });
-  FEOffsetElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEOffsetElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEOffsetElement"))];
+  FEOffsetElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEOffsetElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEOffsetElement"))], 'fields', dart.map(['dx', [dart.const(new _metadata.DomName('SVGFEOffsetElement.dx')), dart.const(new _metadata.DocsEditable())], 'dy', [dart.const(new _metadata.DomName('SVGFEOffsetElement.dy')), dart.const(new _metadata.DocsEditable())], 'in1', [dart.const(new _metadata.DomName('SVGFEOffsetElement.in1')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFEOffsetElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFEOffsetElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFEOffsetElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFEOffsetElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEOffsetElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FEOffsetElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEOffsetElement, FEOffsetElement);
   dart.defineExtensionNames([
@@ -2560,7 +2563,7 @@
       created: [FEPointLightElement, []]
     })
   });
-  FEPointLightElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEPointLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEPointLightElement"))];
+  FEPointLightElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEPointLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFEPointLightElement"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGFEPointLightElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFEPointLightElement.y')), dart.const(new _metadata.DocsEditable())], 'z', [dart.const(new _metadata.DomName('SVGFEPointLightElement.z')), dart.const(new _metadata.DocsEditable())]])]);
   FEPointLightElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEPointLightElement, FEPointLightElement);
   dart.defineExtensionNames([
@@ -2633,7 +2636,7 @@
       created: [FESpecularLightingElement, []]
     })
   });
-  FESpecularLightingElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFESpecularLightingElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFESpecularLightingElement"))];
+  FESpecularLightingElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFESpecularLightingElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFESpecularLightingElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.in1')), dart.const(new _metadata.DocsEditable())], 'specularConstant', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.specularConstant')), dart.const(new _metadata.DocsEditable())], 'specularExponent', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.specularExponent')), dart.const(new _metadata.DocsEditable())], 'surfaceScale', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.surfaceScale')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFESpecularLightingElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FESpecularLightingElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFESpecularLightingElement, FESpecularLightingElement);
   dart.defineExtensionNames([
@@ -2700,7 +2703,7 @@
       created: [FESpotLightElement, []]
     })
   });
-  FESpotLightElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFESpotLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFESpotLightElement"))];
+  FESpotLightElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFESpotLightElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFESpotLightElement"))], 'fields', dart.map(['limitingConeAngle', [dart.const(new _metadata.DomName('SVGFESpotLightElement.limitingConeAngle')), dart.const(new _metadata.DocsEditable())], 'pointsAtX', [dart.const(new _metadata.DomName('SVGFESpotLightElement.pointsAtX')), dart.const(new _metadata.DocsEditable())], 'pointsAtY', [dart.const(new _metadata.DomName('SVGFESpotLightElement.pointsAtY')), dart.const(new _metadata.DocsEditable())], 'pointsAtZ', [dart.const(new _metadata.DomName('SVGFESpotLightElement.pointsAtZ')), dart.const(new _metadata.DocsEditable())], 'specularExponent', [dart.const(new _metadata.DomName('SVGFESpotLightElement.specularExponent')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFESpotLightElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFESpotLightElement.y')), dart.const(new _metadata.DocsEditable())], 'z', [dart.const(new _metadata.DomName('SVGFESpotLightElement.z')), dart.const(new _metadata.DocsEditable())]])]);
   FESpotLightElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFESpotLightElement, FESpotLightElement);
   dart.defineExtensionNames([
@@ -2758,7 +2761,7 @@
       created: [FETileElement, []]
     })
   });
-  FETileElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFETileElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFETileElement"))];
+  FETileElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFETileElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFETileElement"))], 'fields', dart.map(['in1', [dart.const(new _metadata.DomName('SVGFETileElement.in1')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFETileElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFETileElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFETileElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFETileElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFETileElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FETileElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFETileElement, FETileElement);
   dart.defineExtensionNames([
@@ -2841,7 +2844,7 @@
       created: [FETurbulenceElement, []]
     })
   });
-  FETurbulenceElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFETurbulenceElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFETurbulenceElement"))];
+  FETurbulenceElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFETurbulenceElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFETurbulenceElement"))], 'fields', dart.map(['baseFrequencyX', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.baseFrequencyX')), dart.const(new _metadata.DocsEditable())], 'baseFrequencyY', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.baseFrequencyY')), dart.const(new _metadata.DocsEditable())], 'numOctaves', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.numOctaves')), dart.const(new _metadata.DocsEditable())], 'seed', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.seed')), dart.const(new _metadata.DocsEditable())], 'stitchTiles', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.stitchTiles')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.type')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.height')), dart.const(new _metadata.DocsEditable())], 'result', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.result')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFETurbulenceElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   FETurbulenceElement[dart.owner] = exports;
   FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH = 2;
   FETurbulenceElement.SVG_STITCHTYPE_STITCH = 1;
@@ -2925,7 +2928,7 @@
     }),
     methods: () => ({[dartx.setFilterRes]: [dart.void, [core.int, core.int]]})
   });
-  FilterElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFilterElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFilterElement"))];
+  FilterElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFilterElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.IE, '10')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFilterElement"))], 'fields', dart.map(['filterResX', [dart.const(new _metadata.DomName('SVGFilterElement.filterResX')), dart.const(new _metadata.DocsEditable())], 'filterResY', [dart.const(new _metadata.DomName('SVGFilterElement.filterResY')), dart.const(new _metadata.DocsEditable())], 'filterUnits', [dart.const(new _metadata.DomName('SVGFilterElement.filterUnits')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGFilterElement.height')), dart.const(new _metadata.DocsEditable())], 'primitiveUnits', [dart.const(new _metadata.DomName('SVGFilterElement.primitiveUnits')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGFilterElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGFilterElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGFilterElement.y')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGFilterElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   FilterElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFilterElement, FilterElement);
   dart.defineExtensionNames([
@@ -2950,7 +2953,7 @@
     'x',
     'y'
   ]);
-  FilterPrimitiveStandardAttributes[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFilterPrimitiveStandardAttributes')), dart.const(new _metadata.Unstable())];
+  FilterPrimitiveStandardAttributes[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFilterPrimitiveStandardAttributes')), dart.const(new _metadata.Unstable())]]);
   FilterPrimitiveStandardAttributes[dart.owner] = exports;
   dart.defineExtensionNames([
     'preserveAspectRatio',
@@ -2965,7 +2968,7 @@
     constructors: () => ({_: [FitToViewBox, []]})
   });
   dart.defineExtensionMembers(FitToViewBox, ['preserveAspectRatio', 'viewBox']);
-  FitToViewBox[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFitToViewBox')), dart.const(new _metadata.Unstable())];
+  FitToViewBox[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFitToViewBox')), dart.const(new _metadata.Unstable())]]);
   FitToViewBox[dart.owner] = exports;
   dart.defineExtensionNames([
     'height',
@@ -3011,7 +3014,7 @@
       created: [ForeignObjectElement, []]
     })
   });
-  ForeignObjectElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGForeignObjectElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGForeignObjectElement"))];
+  ForeignObjectElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGForeignObjectElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGForeignObjectElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGForeignObjectElement.height')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGForeignObjectElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGForeignObjectElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGForeignObjectElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   ForeignObjectElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGForeignObjectElement, ForeignObjectElement);
   class GElement extends GraphicsElement {
@@ -3033,7 +3036,7 @@
       created: [GElement, []]
     })
   });
-  GElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGElement"))];
+  GElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGElement"))]]);
   GElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGGElement, GElement);
   dart.defineExtensionNames([
@@ -3088,7 +3091,7 @@
       created: [ImageElement, []]
     })
   });
-  ImageElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGImageElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGImageElement"))];
+  ImageElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGImageElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGImageElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGImageElement.height')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGImageElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGImageElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGImageElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGImageElement.y')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGImageElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   ImageElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGImageElement, ImageElement);
   dart.defineExtensionNames([
@@ -3138,7 +3141,7 @@
       [dartx.newValueSpecifiedUnits]: [dart.void, [core.int, core.num]]
     })
   });
-  Length[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLength')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLength"))];
+  Length[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLength')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLength"))], 'fields', dart.map(['unitType', [dart.const(new _metadata.DomName('SVGLength.unitType')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('SVGLength.value')), dart.const(new _metadata.DocsEditable())], 'valueAsString', [dart.const(new _metadata.DomName('SVGLength.valueAsString')), dart.const(new _metadata.DocsEditable())], 'valueInSpecifiedUnits', [dart.const(new _metadata.DomName('SVGLength.valueInSpecifiedUnits')), dart.const(new _metadata.DocsEditable())]])]);
   Length[dart.owner] = exports;
   Length.SVG_LENGTHTYPE_CM = 6;
   Length.SVG_LENGTHTYPE_EMS = 3;
@@ -3257,7 +3260,7 @@
       [dartx.replaceItem]: [Length, [Length, core.int]]
     })
   });
-  LengthList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLengthList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLengthList"))];
+  LengthList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLengthList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLengthList"))], 'fields', dart.map(['numberOfItems', [dart.const(new _metadata.DomName('SVGLengthList.numberOfItems')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SVGLengthList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   LengthList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGLengthList, LengthList);
   dart.defineExtensionNames([
@@ -3301,7 +3304,7 @@
       created: [LineElement, []]
     })
   });
-  LineElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLineElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLineElement"))];
+  LineElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLineElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLineElement"))], 'fields', dart.map(['x1', [dart.const(new _metadata.DomName('SVGLineElement.x1')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGLineElement.x2')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGLineElement.y1')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGLineElement.y2')), dart.const(new _metadata.DocsEditable())]])]);
   LineElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGLineElement, LineElement);
   dart.defineExtensionNames([
@@ -3342,7 +3345,7 @@
       created: [_GradientElement, []]
     })
   });
-  _GradientElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGradientElement"))];
+  _GradientElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGradientElement"))], 'fields', dart.map(['gradientTransform', [dart.const(new _metadata.DomName('SVGGradientElement.gradientTransform')), dart.const(new _metadata.DocsEditable())], 'gradientUnits', [dart.const(new _metadata.DomName('SVGGradientElement.gradientUnits')), dart.const(new _metadata.DocsEditable())], 'spreadMethod', [dart.const(new _metadata.DomName('SVGGradientElement.spreadMethod')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGGradientElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   _GradientElement[dart.owner] = exports;
   _GradientElement.SVG_SPREADMETHOD_PAD = 1;
   _GradientElement.SVG_SPREADMETHOD_REFLECT = 2;
@@ -3390,7 +3393,7 @@
       created: [LinearGradientElement, []]
     })
   });
-  LinearGradientElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLinearGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLinearGradientElement"))];
+  LinearGradientElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGLinearGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGLinearGradientElement"))], 'fields', dart.map(['x1', [dart.const(new _metadata.DomName('SVGLinearGradientElement.x1')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGLinearGradientElement.x2')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGLinearGradientElement.y1')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGLinearGradientElement.y2')), dart.const(new _metadata.DocsEditable())]])]);
   LinearGradientElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGLinearGradientElement, LinearGradientElement);
   dart.defineExtensionNames([
@@ -3472,7 +3475,7 @@
       [dartx.setOrientToAuto]: [dart.void, []]
     })
   });
-  MarkerElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMarkerElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMarkerElement"))];
+  MarkerElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMarkerElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMarkerElement"))], 'fields', dart.map(['markerHeight', [dart.const(new _metadata.DomName('SVGMarkerElement.markerHeight')), dart.const(new _metadata.DocsEditable())], 'markerUnits', [dart.const(new _metadata.DomName('SVGMarkerElement.markerUnits')), dart.const(new _metadata.DocsEditable())], 'markerWidth', [dart.const(new _metadata.DomName('SVGMarkerElement.markerWidth')), dart.const(new _metadata.DocsEditable())], 'orientAngle', [dart.const(new _metadata.DomName('SVGMarkerElement.orientAngle')), dart.const(new _metadata.DocsEditable())], 'orientType', [dart.const(new _metadata.DomName('SVGMarkerElement.orientType')), dart.const(new _metadata.DocsEditable())], 'refX', [dart.const(new _metadata.DomName('SVGMarkerElement.refX')), dart.const(new _metadata.DocsEditable())], 'refY', [dart.const(new _metadata.DomName('SVGMarkerElement.refY')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGMarkerElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'viewBox', [dart.const(new _metadata.DomName('SVGMarkerElement.viewBox')), dart.const(new _metadata.DocsEditable())]])]);
   MarkerElement[dart.owner] = exports;
   MarkerElement.SVG_MARKERUNITS_STROKEWIDTH = 2;
   MarkerElement.SVG_MARKERUNITS_UNKNOWN = 0;
@@ -3553,7 +3556,7 @@
     }),
     methods: () => ({[dartx.hasExtension]: [core.bool, [core.String]]})
   });
-  MaskElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMaskElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMaskElement"))];
+  MaskElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMaskElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMaskElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGMaskElement.height')), dart.const(new _metadata.DocsEditable())], 'maskContentUnits', [dart.const(new _metadata.DomName('SVGMaskElement.maskContentUnits')), dart.const(new _metadata.DocsEditable())], 'maskUnits', [dart.const(new _metadata.DomName('SVGMaskElement.maskUnits')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGMaskElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGMaskElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGMaskElement.y')), dart.const(new _metadata.DocsEditable())], 'requiredExtensions', [dart.const(new _metadata.DomName('SVGMaskElement.requiredExtensions')), dart.const(new _metadata.DocsEditable())], 'requiredFeatures', [dart.const(new _metadata.DomName('SVGMaskElement.requiredFeatures')), dart.const(new _metadata.DocsEditable())], 'systemLanguage', [dart.const(new _metadata.DomName('SVGMaskElement.systemLanguage')), dart.const(new _metadata.DocsEditable())]])]);
   MaskElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGMaskElement, MaskElement);
   dart.defineExtensionNames([
@@ -3665,7 +3668,7 @@
       [dartx.translate]: [Matrix, [core.num, core.num]]
     })
   });
-  Matrix[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMatrix')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMatrix"))];
+  Matrix[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMatrix')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMatrix"))], 'fields', dart.map(['a', [dart.const(new _metadata.DomName('SVGMatrix.a')), dart.const(new _metadata.DocsEditable())], 'b', [dart.const(new _metadata.DomName('SVGMatrix.b')), dart.const(new _metadata.DocsEditable())], 'c', [dart.const(new _metadata.DomName('SVGMatrix.c')), dart.const(new _metadata.DocsEditable())], 'd', [dart.const(new _metadata.DomName('SVGMatrix.d')), dart.const(new _metadata.DocsEditable())], 'e', [dart.const(new _metadata.DomName('SVGMatrix.e')), dart.const(new _metadata.DocsEditable())], 'f', [dart.const(new _metadata.DomName('SVGMatrix.f')), dart.const(new _metadata.DocsEditable())]])]);
   Matrix[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGMatrix, Matrix);
   class MetadataElement extends SvgElement {
@@ -3683,7 +3686,7 @@
       created: [MetadataElement, []]
     })
   });
-  MetadataElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMetadataElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMetadataElement"))];
+  MetadataElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMetadataElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMetadataElement"))]]);
   MetadataElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGMetadataElement, MetadataElement);
   dart.defineExtensionNames([
@@ -3703,7 +3706,7 @@
   dart.setSignature(Number, {
     constructors: () => ({_: [Number, []]})
   });
-  Number[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGNumber')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGNumber"))];
+  Number[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGNumber')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGNumber"))], 'fields', dart.map(['value', [dart.const(new _metadata.DomName('SVGNumber.value')), dart.const(new _metadata.DocsEditable())]])]);
   Number[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGNumber, Number);
   dart.defineExtensionNames([
@@ -3810,7 +3813,7 @@
       [dartx.replaceItem]: [Number, [Number, core.int]]
     })
   });
-  NumberList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGNumberList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGNumberList"))];
+  NumberList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGNumberList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGNumberList"))], 'fields', dart.map(['numberOfItems', [dart.const(new _metadata.DomName('SVGNumberList.numberOfItems')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SVGNumberList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   NumberList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGNumberList, NumberList);
   dart.defineExtensionNames([
@@ -3971,7 +3974,7 @@
       [dartx.getTotalLength]: [core.double, []]
     })
   });
-  PathElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathElement"))];
+  PathElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathElement"))], 'fields', dart.map(['animatedNormalizedPathSegList', [dart.const(new _metadata.DomName('SVGPathElement.animatedNormalizedPathSegList')), dart.const(new _metadata.DocsEditable())], 'animatedPathSegList', [dart.const(new _metadata.DomName('SVGPathElement.animatedPathSegList')), dart.const(new _metadata.DocsEditable())], 'normalizedPathSegList', [dart.const(new _metadata.DomName('SVGPathElement.normalizedPathSegList')), dart.const(new _metadata.DocsEditable())], 'pathLength', [dart.const(new _metadata.DomName('SVGPathElement.pathLength')), dart.const(new _metadata.DocsEditable())], 'pathSegList', [dart.const(new _metadata.DomName('SVGPathElement.pathSegList')), dart.const(new _metadata.DocsEditable())]])]);
   PathElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathElement, PathElement);
   dart.defineExtensionNames([
@@ -3992,7 +3995,7 @@
   dart.setSignature(PathSeg, {
     constructors: () => ({_: [PathSeg, []]})
   });
-  PathSeg[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSeg')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSeg"))];
+  PathSeg[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSeg')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSeg"))], 'fields', dart.map(['pathSegType', [dart.const(new _metadata.DomName('SVGPathSeg.pathSegType')), dart.const(new _metadata.DocsEditable())], 'pathSegTypeAsLetter', [dart.const(new _metadata.DomName('SVGPathSeg.pathSegTypeAsLetter')), dart.const(new _metadata.DocsEditable())]])]);
   PathSeg[dart.owner] = exports;
   PathSeg.PATHSEG_ARC_ABS = 10;
   PathSeg.PATHSEG_ARC_REL = 11;
@@ -4074,7 +4077,7 @@
   dart.setSignature(PathSegArcAbs, {
     constructors: () => ({_: [PathSegArcAbs, []]})
   });
-  PathSegArcAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegArcAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegArcAbs"))];
+  PathSegArcAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegArcAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegArcAbs"))], 'fields', dart.map(['angle', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.angle')), dart.const(new _metadata.DocsEditable())], 'largeArcFlag', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.largeArcFlag')), dart.const(new _metadata.DocsEditable())], 'r1', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.r1')), dart.const(new _metadata.DocsEditable())], 'r2', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.r2')), dart.const(new _metadata.DocsEditable())], 'sweepFlag', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.sweepFlag')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegArcAbs.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegArcAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegArcAbs, PathSegArcAbs);
   dart.defineExtensionNames([
@@ -4136,7 +4139,7 @@
   dart.setSignature(PathSegArcRel, {
     constructors: () => ({_: [PathSegArcRel, []]})
   });
-  PathSegArcRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegArcRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegArcRel"))];
+  PathSegArcRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegArcRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegArcRel"))], 'fields', dart.map(['angle', [dart.const(new _metadata.DomName('SVGPathSegArcRel.angle')), dart.const(new _metadata.DocsEditable())], 'largeArcFlag', [dart.const(new _metadata.DomName('SVGPathSegArcRel.largeArcFlag')), dart.const(new _metadata.DocsEditable())], 'r1', [dart.const(new _metadata.DomName('SVGPathSegArcRel.r1')), dart.const(new _metadata.DocsEditable())], 'r2', [dart.const(new _metadata.DomName('SVGPathSegArcRel.r2')), dart.const(new _metadata.DocsEditable())], 'sweepFlag', [dart.const(new _metadata.DomName('SVGPathSegArcRel.sweepFlag')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGPathSegArcRel.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegArcRel.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegArcRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegArcRel, PathSegArcRel);
   class PathSegClosePath extends PathSeg {
@@ -4147,7 +4150,7 @@
   dart.setSignature(PathSegClosePath, {
     constructors: () => ({_: [PathSegClosePath, []]})
   });
-  PathSegClosePath[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegClosePath')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegClosePath"))];
+  PathSegClosePath[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegClosePath')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegClosePath"))]]);
   PathSegClosePath[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegClosePath, PathSegClosePath);
   dart.defineExtensionNames([
@@ -4202,7 +4205,7 @@
   dart.setSignature(PathSegCurvetoCubicAbs, {
     constructors: () => ({_: [PathSegCurvetoCubicAbs, []]})
   });
-  PathSegCurvetoCubicAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicAbs"))];
+  PathSegCurvetoCubicAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.x')), dart.const(new _metadata.DocsEditable())], 'x1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.x1')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.x2')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.y')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.y1')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicAbs.y2')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoCubicAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoCubicAbs, PathSegCurvetoCubicAbs);
   dart.defineExtensionNames([
@@ -4257,7 +4260,7 @@
   dart.setSignature(PathSegCurvetoCubicRel, {
     constructors: () => ({_: [PathSegCurvetoCubicRel, []]})
   });
-  PathSegCurvetoCubicRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicRel"))];
+  PathSegCurvetoCubicRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.x')), dart.const(new _metadata.DocsEditable())], 'x1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.x1')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.x2')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.y')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.y1')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicRel.y2')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoCubicRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoCubicRel, PathSegCurvetoCubicRel);
   dart.defineExtensionNames([
@@ -4298,7 +4301,7 @@
   dart.setSignature(PathSegCurvetoCubicSmoothAbs, {
     constructors: () => ({_: [PathSegCurvetoCubicSmoothAbs, []]})
   });
-  PathSegCurvetoCubicSmoothAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicSmoothAbs"))];
+  PathSegCurvetoCubicSmoothAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicSmoothAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs.x')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs.x2')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs.y')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothAbs.y2')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoCubicSmoothAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothAbs, PathSegCurvetoCubicSmoothAbs);
   dart.defineExtensionNames([
@@ -4339,7 +4342,7 @@
   dart.setSignature(PathSegCurvetoCubicSmoothRel, {
     constructors: () => ({_: [PathSegCurvetoCubicSmoothRel, []]})
   });
-  PathSegCurvetoCubicSmoothRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicSmoothRel"))];
+  PathSegCurvetoCubicSmoothRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoCubicSmoothRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel.x')), dart.const(new _metadata.DocsEditable())], 'x2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel.x2')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel.y')), dart.const(new _metadata.DocsEditable())], 'y2', [dart.const(new _metadata.DomName('SVGPathSegCurvetoCubicSmoothRel.y2')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoCubicSmoothRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothRel, PathSegCurvetoCubicSmoothRel);
   dart.defineExtensionNames([
@@ -4380,7 +4383,7 @@
   dart.setSignature(PathSegCurvetoQuadraticAbs, {
     constructors: () => ({_: [PathSegCurvetoQuadraticAbs, []]})
   });
-  PathSegCurvetoQuadraticAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticAbs"))];
+  PathSegCurvetoQuadraticAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs.x')), dart.const(new _metadata.DocsEditable())], 'x1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs.x1')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs.y')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticAbs.y1')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoQuadraticAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticAbs, PathSegCurvetoQuadraticAbs);
   dart.defineExtensionNames([
@@ -4421,7 +4424,7 @@
   dart.setSignature(PathSegCurvetoQuadraticRel, {
     constructors: () => ({_: [PathSegCurvetoQuadraticRel, []]})
   });
-  PathSegCurvetoQuadraticRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticRel"))];
+  PathSegCurvetoQuadraticRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel.x')), dart.const(new _metadata.DocsEditable())], 'x1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel.x1')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel.y')), dart.const(new _metadata.DocsEditable())], 'y1', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticRel.y1')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoQuadraticRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticRel, PathSegCurvetoQuadraticRel);
   dart.defineExtensionNames([
@@ -4448,7 +4451,7 @@
   dart.setSignature(PathSegCurvetoQuadraticSmoothAbs, {
     constructors: () => ({_: [PathSegCurvetoQuadraticSmoothAbs, []]})
   });
-  PathSegCurvetoQuadraticSmoothAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticSmoothAbs"))];
+  PathSegCurvetoQuadraticSmoothAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticSmoothAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothAbs.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothAbs.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoQuadraticSmoothAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothAbs, PathSegCurvetoQuadraticSmoothAbs);
   dart.defineExtensionNames([
@@ -4475,7 +4478,7 @@
   dart.setSignature(PathSegCurvetoQuadraticSmoothRel, {
     constructors: () => ({_: [PathSegCurvetoQuadraticSmoothRel, []]})
   });
-  PathSegCurvetoQuadraticSmoothRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticSmoothRel"))];
+  PathSegCurvetoQuadraticSmoothRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegCurvetoQuadraticSmoothRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothRel.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegCurvetoQuadraticSmoothRel.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegCurvetoQuadraticSmoothRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothRel, PathSegCurvetoQuadraticSmoothRel);
   dart.defineExtensionNames([
@@ -4502,7 +4505,7 @@
   dart.setSignature(PathSegLinetoAbs, {
     constructors: () => ({_: [PathSegLinetoAbs, []]})
   });
-  PathSegLinetoAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoAbs"))];
+  PathSegLinetoAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegLinetoAbs.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegLinetoAbs.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoAbs, PathSegLinetoAbs);
   dart.defineExtensionNames([
@@ -4522,7 +4525,7 @@
   dart.setSignature(PathSegLinetoHorizontalAbs, {
     constructors: () => ({_: [PathSegLinetoHorizontalAbs, []]})
   });
-  PathSegLinetoHorizontalAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoHorizontalAbs"))];
+  PathSegLinetoHorizontalAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoHorizontalAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalAbs.x')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoHorizontalAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalAbs, PathSegLinetoHorizontalAbs);
   dart.defineExtensionNames([
@@ -4542,7 +4545,7 @@
   dart.setSignature(PathSegLinetoHorizontalRel, {
     constructors: () => ({_: [PathSegLinetoHorizontalRel, []]})
   });
-  PathSegLinetoHorizontalRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoHorizontalRel"))];
+  PathSegLinetoHorizontalRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoHorizontalRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegLinetoHorizontalRel.x')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoHorizontalRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalRel, PathSegLinetoHorizontalRel);
   dart.defineExtensionNames([
@@ -4569,7 +4572,7 @@
   dart.setSignature(PathSegLinetoRel, {
     constructors: () => ({_: [PathSegLinetoRel, []]})
   });
-  PathSegLinetoRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoRel"))];
+  PathSegLinetoRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegLinetoRel.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegLinetoRel.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoRel, PathSegLinetoRel);
   dart.defineExtensionNames([
@@ -4589,7 +4592,7 @@
   dart.setSignature(PathSegLinetoVerticalAbs, {
     constructors: () => ({_: [PathSegLinetoVerticalAbs, []]})
   });
-  PathSegLinetoVerticalAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoVerticalAbs"))];
+  PathSegLinetoVerticalAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoVerticalAbs"))], 'fields', dart.map(['y', [dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalAbs.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoVerticalAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoVerticalAbs, PathSegLinetoVerticalAbs);
   dart.defineExtensionNames([
@@ -4609,7 +4612,7 @@
   dart.setSignature(PathSegLinetoVerticalRel, {
     constructors: () => ({_: [PathSegLinetoVerticalRel, []]})
   });
-  PathSegLinetoVerticalRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoVerticalRel"))];
+  PathSegLinetoVerticalRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegLinetoVerticalRel"))], 'fields', dart.map(['y', [dart.const(new _metadata.DomName('SVGPathSegLinetoVerticalRel.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegLinetoVerticalRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegLinetoVerticalRel, PathSegLinetoVerticalRel);
   dart.defineExtensionNames([
@@ -4716,7 +4719,7 @@
       [dartx.replaceItem]: [PathSeg, [PathSeg, core.int]]
     })
   });
-  PathSegList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegList"))];
+  PathSegList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegList"))], 'fields', dart.map(['numberOfItems', [dart.const(new _metadata.DomName('SVGPathSegList.numberOfItems')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SVGPathSegList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   PathSegList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegList, PathSegList);
   dart.defineExtensionNames([
@@ -4743,7 +4746,7 @@
   dart.setSignature(PathSegMovetoAbs, {
     constructors: () => ({_: [PathSegMovetoAbs, []]})
   });
-  PathSegMovetoAbs[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegMovetoAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegMovetoAbs"))];
+  PathSegMovetoAbs[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegMovetoAbs')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegMovetoAbs"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegMovetoAbs.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegMovetoAbs.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegMovetoAbs[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegMovetoAbs, PathSegMovetoAbs);
   dart.defineExtensionNames([
@@ -4770,7 +4773,7 @@
   dart.setSignature(PathSegMovetoRel, {
     constructors: () => ({_: [PathSegMovetoRel, []]})
   });
-  PathSegMovetoRel[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegMovetoRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegMovetoRel"))];
+  PathSegMovetoRel[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPathSegMovetoRel')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPathSegMovetoRel"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPathSegMovetoRel.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPathSegMovetoRel.y')), dart.const(new _metadata.DocsEditable())]])]);
   PathSegMovetoRel[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPathSegMovetoRel, PathSegMovetoRel);
   dart.defineExtensionNames([
@@ -4865,7 +4868,7 @@
     }),
     methods: () => ({[dartx.hasExtension]: [core.bool, [core.String]]})
   });
-  PatternElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPatternElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPatternElement"))];
+  PatternElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPatternElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPatternElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGPatternElement.height')), dart.const(new _metadata.DocsEditable())], 'patternContentUnits', [dart.const(new _metadata.DomName('SVGPatternElement.patternContentUnits')), dart.const(new _metadata.DocsEditable())], 'patternTransform', [dart.const(new _metadata.DomName('SVGPatternElement.patternTransform')), dart.const(new _metadata.DocsEditable())], 'patternUnits', [dart.const(new _metadata.DomName('SVGPatternElement.patternUnits')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGPatternElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGPatternElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPatternElement.y')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGPatternElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'viewBox', [dart.const(new _metadata.DomName('SVGPatternElement.viewBox')), dart.const(new _metadata.DocsEditable())], 'requiredExtensions', [dart.const(new _metadata.DomName('SVGPatternElement.requiredExtensions')), dart.const(new _metadata.DocsEditable())], 'requiredFeatures', [dart.const(new _metadata.DomName('SVGPatternElement.requiredFeatures')), dart.const(new _metadata.DocsEditable())], 'systemLanguage', [dart.const(new _metadata.DomName('SVGPatternElement.systemLanguage')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGPatternElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   PatternElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPatternElement, PatternElement);
   dart.defineExtensionNames([
@@ -4897,7 +4900,7 @@
     constructors: () => ({_: [Point, []]}),
     methods: () => ({[dartx.matrixTransform]: [Point, [Matrix]]})
   });
-  Point[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPoint')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPoint"))];
+  Point[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPoint')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPoint"))], 'fields', dart.map(['x', [dart.const(new _metadata.DomName('SVGPoint.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGPoint.y')), dart.const(new _metadata.DocsEditable())]])]);
   Point[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPoint, Point);
   dart.defineExtensionNames([
@@ -4959,7 +4962,7 @@
       [dartx.replaceItem]: [Point, [Point, core.int]]
     })
   });
-  PointList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPointList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPointList"))];
+  PointList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPointList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPointList"))], 'fields', dart.map(['length', [dart.const(new _metadata.DomName('SVGPointList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'numberOfItems', [dart.const(new _metadata.DomName('SVGPointList.numberOfItems')), dart.const(new _metadata.DocsEditable())]])]);
   PointList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPointList, PointList);
   dart.defineExtensionNames([
@@ -4993,7 +4996,7 @@
       created: [PolygonElement, []]
     })
   });
-  PolygonElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPolygonElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPolygonElement"))];
+  PolygonElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPolygonElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPolygonElement"))], 'fields', dart.map(['animatedPoints', [dart.const(new _metadata.DomName('SVGPolygonElement.animatedPoints')), dart.const(new _metadata.DocsEditable())], 'points', [dart.const(new _metadata.DomName('SVGPolygonElement.points')), dart.const(new _metadata.DocsEditable())]])]);
   PolygonElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPolygonElement, PolygonElement);
   dart.defineExtensionNames([
@@ -5027,7 +5030,7 @@
       created: [PolylineElement, []]
     })
   });
-  PolylineElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPolylineElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPolylineElement"))];
+  PolylineElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPolylineElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPolylineElement"))], 'fields', dart.map(['animatedPoints', [dart.const(new _metadata.DomName('SVGPolylineElement.animatedPoints')), dart.const(new _metadata.DocsEditable())], 'points', [dart.const(new _metadata.DomName('SVGPolylineElement.points')), dart.const(new _metadata.DocsEditable())]])]);
   PolylineElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGPolylineElement, PolylineElement);
   dart.defineExtensionNames([
@@ -5054,7 +5057,7 @@
   dart.setSignature(PreserveAspectRatio, {
     constructors: () => ({_: [PreserveAspectRatio, []]})
   });
-  PreserveAspectRatio[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPreserveAspectRatio')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPreserveAspectRatio"))];
+  PreserveAspectRatio[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGPreserveAspectRatio')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGPreserveAspectRatio"))], 'fields', dart.map(['align', [dart.const(new _metadata.DomName('SVGPreserveAspectRatio.align')), dart.const(new _metadata.DocsEditable())], 'meetOrSlice', [dart.const(new _metadata.DomName('SVGPreserveAspectRatio.meetOrSlice')), dart.const(new _metadata.DocsEditable())]])]);
   PreserveAspectRatio[dart.owner] = exports;
   PreserveAspectRatio.SVG_MEETORSLICE_MEET = 1;
   PreserveAspectRatio.SVG_MEETORSLICE_SLICE = 2;
@@ -5122,7 +5125,7 @@
       created: [RadialGradientElement, []]
     })
   });
-  RadialGradientElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRadialGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRadialGradientElement"))];
+  RadialGradientElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRadialGradientElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRadialGradientElement"))], 'fields', dart.map(['cx', [dart.const(new _metadata.DomName('SVGRadialGradientElement.cx')), dart.const(new _metadata.DocsEditable())], 'cy', [dart.const(new _metadata.DomName('SVGRadialGradientElement.cy')), dart.const(new _metadata.DocsEditable())], 'fr', [dart.const(new _metadata.DomName('SVGRadialGradientElement.fr')), dart.const(new _metadata.DocsEditable())], 'fx', [dart.const(new _metadata.DomName('SVGRadialGradientElement.fx')), dart.const(new _metadata.DocsEditable())], 'fy', [dart.const(new _metadata.DomName('SVGRadialGradientElement.fy')), dart.const(new _metadata.DocsEditable())], 'r', [dart.const(new _metadata.DomName('SVGRadialGradientElement.r')), dart.const(new _metadata.DocsEditable())]])]);
   RadialGradientElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGRadialGradientElement, RadialGradientElement);
   dart.defineExtensionNames([
@@ -5163,7 +5166,7 @@
   dart.setSignature(Rect, {
     constructors: () => ({_: [Rect, []]})
   });
-  Rect[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRect')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRect"))];
+  Rect[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRect')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRect"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGRect.height')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGRect.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGRect.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGRect.y')), dart.const(new _metadata.DocsEditable())]])]);
   Rect[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGRect, Rect);
   dart.defineExtensionNames([
@@ -5217,7 +5220,7 @@
       created: [RectElement, []]
     })
   });
-  RectElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRectElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRectElement"))];
+  RectElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRectElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRectElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGRectElement.height')), dart.const(new _metadata.DocsEditable())], 'rx', [dart.const(new _metadata.DomName('SVGRectElement.rx')), dart.const(new _metadata.DocsEditable())], 'ry', [dart.const(new _metadata.DomName('SVGRectElement.ry')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGRectElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGRectElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGRectElement.y')), dart.const(new _metadata.DocsEditable())]])]);
   RectElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGRectElement, RectElement);
   class RenderingIntent extends _interceptors.Interceptor {
@@ -5228,7 +5231,7 @@
   dart.setSignature(RenderingIntent, {
     constructors: () => ({_: [RenderingIntent, []]})
   });
-  RenderingIntent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRenderingIntent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRenderingIntent"))];
+  RenderingIntent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGRenderingIntent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGRenderingIntent"))]]);
   RenderingIntent[dart.owner] = exports;
   RenderingIntent.RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
   RenderingIntent.RENDERING_INTENT_AUTO = 1;
@@ -5272,7 +5275,7 @@
       created: [ScriptElement, []]
     })
   });
-  ScriptElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGScriptElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGScriptElement"))];
+  ScriptElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGScriptElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGScriptElement"))], 'fields', dart.map(['type', [dart.const(new _metadata.DomName('SVGScriptElement.type')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGScriptElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   ScriptElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGScriptElement, ScriptElement);
   class SetElement extends AnimationElement {
@@ -5297,7 +5300,7 @@
       created: [SetElement, []]
     })
   });
-  SetElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSetElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSetElement"))];
+  SetElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSetElement')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSetElement"))]]);
   SetElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGSetElement, SetElement);
   dart.defineExtensionNames([
@@ -5326,7 +5329,7 @@
       created: [StopElement, []]
     })
   });
-  StopElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStopElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGStopElement"))];
+  StopElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStopElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGStopElement"))], 'fields', dart.map(['gradientOffset', [dart.const(new _js_helper.JSName('offset')), dart.const(new _metadata.DomName('SVGStopElement.offset')), dart.const(new _metadata.DocsEditable())]])]);
   StopElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGStopElement, StopElement);
   dart.defineExtensionNames([
@@ -5433,7 +5436,7 @@
       [dartx.replaceItem]: [core.String, [core.String, core.int]]
     })
   });
-  StringList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStringList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGStringList"))];
+  StringList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStringList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGStringList"))], 'fields', dart.map(['numberOfItems', [dart.const(new _metadata.DomName('SVGStringList.numberOfItems')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SVGStringList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   StringList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGStringList, StringList);
   dart.defineExtensionNames([
@@ -5494,7 +5497,7 @@
       created: [StyleElement, []]
     })
   });
-  StyleElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStyleElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGStyleElement"))];
+  StyleElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGStyleElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGStyleElement"))], 'fields', dart.map(['disabled', [dart.const(new _metadata.DomName('SVGStyleElement.disabled')), dart.const(new _metadata.DocsEditable())], 'media', [dart.const(new _metadata.DomName('SVGStyleElement.media')), dart.const(new _metadata.DocsEditable())], 'sheet', [dart.const(new _metadata.DomName('SVGStyleElement.sheet')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'type', [dart.const(new _metadata.DomName('SVGStyleElement.type')), dart.const(new _metadata.DocsEditable())]])]);
   StyleElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGStyleElement, StyleElement);
   const _element = Symbol('_element');
@@ -5755,7 +5758,7 @@
       [dartx.unsuspendRedrawAll]: [dart.void, []]
     })
   });
-  SvgSvgElement[dart.metadata] = () => [dart.const(new _metadata.DomName('SVGSVGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSVGElement"))];
+  SvgSvgElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('SVGSVGElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSVGElement"))], 'fields', dart.map(['currentScale', [dart.const(new _metadata.DomName('SVGSVGElement.currentScale')), dart.const(new _metadata.DocsEditable())], 'currentTranslate', [dart.const(new _metadata.DomName('SVGSVGElement.currentTranslate')), dart.const(new _metadata.DocsEditable())], 'currentView', [dart.const(new _metadata.DomName('SVGSVGElement.currentView')), dart.const(new _metadata.DocsEditable())], 'height', [dart.const(new _metadata.DomName('SVGSVGElement.height')), dart.const(new _metadata.DocsEditable())], 'pixelUnitToMillimeterX', [dart.const(new _metadata.DomName('SVGSVGElement.pixelUnitToMillimeterX')), dart.const(new _metadata.DocsEditable())], 'pixelUnitToMillimeterY', [dart.const(new _metadata.DomName('SVGSVGElement.pixelUnitToMillimeterY')), dart.const(new _metadata.DocsEditable())], 'screenPixelToMillimeterX', [dart.const(new _metadata.DomName('SVGSVGElement.screenPixelToMillimeterX')), dart.const(new _metadata.DocsEditable())], 'screenPixelToMillimeterY', [dart.const(new _metadata.DomName('SVGSVGElement.screenPixelToMillimeterY')), dart.const(new _metadata.DocsEditable())], 'useCurrentView', [dart.const(new _metadata.DomName('SVGSVGElement.useCurrentView')), dart.const(new _metadata.DocsEditable())], 'viewport', [dart.const(new _metadata.DomName('SVGSVGElement.viewport')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGSVGElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGSVGElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGSVGElement.y')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGSVGElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'viewBox', [dart.const(new _metadata.DomName('SVGSVGElement.viewBox')), dart.const(new _metadata.DocsEditable())], 'zoomAndPan', [dart.const(new _metadata.DomName('SVGSVGElement.zoomAndPan')), dart.const(new _metadata.DocsEditable())]])]);
   SvgSvgElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGSVGElement, SvgSvgElement);
   class SwitchElement extends GraphicsElement {
@@ -5777,7 +5780,7 @@
       created: [SwitchElement, []]
     })
   });
-  SwitchElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSwitchElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSwitchElement"))];
+  SwitchElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSwitchElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSwitchElement"))]]);
   SwitchElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGSwitchElement, SwitchElement);
   dart.defineExtensionNames([
@@ -5812,7 +5815,7 @@
       created: [SymbolElement, []]
     })
   });
-  SymbolElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSymbolElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSymbolElement"))];
+  SymbolElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGSymbolElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGSymbolElement"))], 'fields', dart.map(['preserveAspectRatio', [dart.const(new _metadata.DomName('SVGSymbolElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'viewBox', [dart.const(new _metadata.DomName('SVGSymbolElement.viewBox')), dart.const(new _metadata.DocsEditable())]])]);
   SymbolElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGSymbolElement, SymbolElement);
   class TSpanElement extends TextPositioningElement {
@@ -5834,7 +5837,7 @@
       created: [TSpanElement, []]
     })
   });
-  TSpanElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTSpanElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTSpanElement"))];
+  TSpanElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTSpanElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTSpanElement"))]]);
   TSpanElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGTSpanElement, TSpanElement);
   dart.defineExtensionNames([
@@ -5851,7 +5854,7 @@
     constructors: () => ({_: [Tests, []]})
   });
   dart.defineExtensionMembers(Tests, ['requiredExtensions', 'requiredFeatures', 'systemLanguage']);
-  Tests[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTests')), dart.const(new _metadata.Unstable())];
+  Tests[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTests')), dart.const(new _metadata.Unstable())]]);
   Tests[dart.owner] = exports;
   class TextElement extends TextPositioningElement {
     static _() {
@@ -5872,7 +5875,7 @@
       created: [TextElement, []]
     })
   });
-  TextElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextElement"))];
+  TextElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextElement"))]]);
   TextElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGTextElement, TextElement);
   dart.defineExtensionNames([
@@ -5913,7 +5916,7 @@
       created: [TextPathElement, []]
     })
   });
-  TextPathElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextPathElement"))];
+  TextPathElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTextPathElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTextPathElement"))], 'fields', dart.map(['method', [dart.const(new _metadata.DomName('SVGTextPathElement.method')), dart.const(new _metadata.DocsEditable())], 'spacing', [dart.const(new _metadata.DomName('SVGTextPathElement.spacing')), dart.const(new _metadata.DocsEditable())], 'startOffset', [dart.const(new _metadata.DomName('SVGTextPathElement.startOffset')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGTextPathElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   TextPathElement[dart.owner] = exports;
   TextPathElement.TEXTPATH_METHODTYPE_ALIGN = 1;
   TextPathElement.TEXTPATH_METHODTYPE_STRETCH = 2;
@@ -5941,7 +5944,7 @@
       created: [TitleElement, []]
     })
   });
-  TitleElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTitleElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTitleElement"))];
+  TitleElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTitleElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTitleElement"))]]);
   TitleElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGTitleElement, TitleElement);
   dart.defineExtensionNames([
@@ -5998,7 +6001,7 @@
       [dartx.setTranslate]: [dart.void, [core.num, core.num]]
     })
   });
-  Transform[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTransform')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTransform"))];
+  Transform[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTransform')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTransform"))], 'fields', dart.map(['angle', [dart.const(new _metadata.DomName('SVGTransform.angle')), dart.const(new _metadata.DocsEditable())], 'matrix', [dart.const(new _metadata.DomName('SVGTransform.matrix')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('SVGTransform.type')), dart.const(new _metadata.DocsEditable())]])]);
   Transform[dart.owner] = exports;
   Transform.SVG_TRANSFORM_MATRIX = 1;
   Transform.SVG_TRANSFORM_ROTATE = 4;
@@ -6122,7 +6125,7 @@
       [dartx.replaceItem]: [Transform, [Transform, core.int]]
     })
   });
-  TransformList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTransformList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTransformList"))];
+  TransformList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGTransformList')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGTransformList"))], 'fields', dart.map(['numberOfItems', [dart.const(new _metadata.DomName('SVGTransformList.numberOfItems')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SVGTransformList.length')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   TransformList[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGTransformList, TransformList);
   class UnitTypes extends _interceptors.Interceptor {
@@ -6133,7 +6136,7 @@
   dart.setSignature(UnitTypes, {
     constructors: () => ({_: [UnitTypes, []]})
   });
-  UnitTypes[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGUnitTypes')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGUnitTypes"))];
+  UnitTypes[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGUnitTypes')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGUnitTypes"))]]);
   UnitTypes[dart.owner] = exports;
   UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
   UnitTypes.SVG_UNIT_TYPE_UNKNOWN = 0;
@@ -6151,7 +6154,7 @@
     constructors: () => ({_: [UriReference, []]})
   });
   dart.defineExtensionMembers(UriReference, ['href']);
-  UriReference[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGURIReference')), dart.const(new _metadata.Unstable())];
+  UriReference[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGURIReference')), dart.const(new _metadata.Unstable())]]);
   UriReference[dart.owner] = exports;
   dart.defineExtensionNames([
     'height',
@@ -6200,7 +6203,7 @@
       created: [UseElement, []]
     })
   });
-  UseElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGUseElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGUseElement"))];
+  UseElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGUseElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGUseElement"))], 'fields', dart.map(['height', [dart.const(new _metadata.DomName('SVGUseElement.height')), dart.const(new _metadata.DocsEditable())], 'width', [dart.const(new _metadata.DomName('SVGUseElement.width')), dart.const(new _metadata.DocsEditable())], 'x', [dart.const(new _metadata.DomName('SVGUseElement.x')), dart.const(new _metadata.DocsEditable())], 'y', [dart.const(new _metadata.DomName('SVGUseElement.y')), dart.const(new _metadata.DocsEditable())], 'href', [dart.const(new _metadata.DomName('SVGUseElement.href')), dart.const(new _metadata.DocsEditable())]])]);
   UseElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGUseElement, UseElement);
   dart.defineExtensionNames([
@@ -6248,7 +6251,7 @@
       created: [ViewElement, []]
     })
   });
-  ViewElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGViewElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGViewElement"))];
+  ViewElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGViewElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGViewElement"))], 'fields', dart.map(['viewTarget', [dart.const(new _metadata.DomName('SVGViewElement.viewTarget')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGViewElement.preserveAspectRatio')), dart.const(new _metadata.DocsEditable())], 'viewBox', [dart.const(new _metadata.DomName('SVGViewElement.viewBox')), dart.const(new _metadata.DocsEditable())], 'zoomAndPan', [dart.const(new _metadata.DomName('SVGViewElement.zoomAndPan')), dart.const(new _metadata.DocsEditable())]])]);
   ViewElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGViewElement, ViewElement);
   dart.defineExtensionNames([
@@ -6301,7 +6304,7 @@
   dart.setSignature(ViewSpec, {
     constructors: () => ({_: [ViewSpec, []]})
   });
-  ViewSpec[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGViewSpec')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGViewSpec"))];
+  ViewSpec[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGViewSpec')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGViewSpec"))], 'fields', dart.map(['preserveAspectRatioString', [dart.const(new _metadata.DomName('SVGViewSpec.preserveAspectRatioString')), dart.const(new _metadata.DocsEditable())], 'transform', [dart.const(new _metadata.DomName('SVGViewSpec.transform')), dart.const(new _metadata.DocsEditable())], 'transformString', [dart.const(new _metadata.DomName('SVGViewSpec.transformString')), dart.const(new _metadata.DocsEditable())], 'viewBoxString', [dart.const(new _metadata.DomName('SVGViewSpec.viewBoxString')), dart.const(new _metadata.DocsEditable())], 'viewTarget', [dart.const(new _metadata.DomName('SVGViewSpec.viewTarget')), dart.const(new _metadata.DocsEditable())], 'viewTargetString', [dart.const(new _metadata.DomName('SVGViewSpec.viewTargetString')), dart.const(new _metadata.DocsEditable())], 'preserveAspectRatio', [dart.const(new _metadata.DomName('SVGViewSpec.preserveAspectRatio')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'viewBox', [dart.const(new _metadata.DomName('SVGViewSpec.viewBox')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'zoomAndPan', [dart.const(new _metadata.DomName('SVGViewSpec.zoomAndPan')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ViewSpec[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGViewSpec, ViewSpec);
   dart.defineExtensionNames([
@@ -6316,7 +6319,7 @@
     constructors: () => ({_: [ZoomAndPan, []]})
   });
   dart.defineExtensionMembers(ZoomAndPan, ['zoomAndPan', 'zoomAndPan']);
-  ZoomAndPan[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGZoomAndPan')), dart.const(new _metadata.Unstable())];
+  ZoomAndPan[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGZoomAndPan')), dart.const(new _metadata.Unstable())]]);
   ZoomAndPan[dart.owner] = exports;
   ZoomAndPan.SVG_ZOOMANDPAN_DISABLE = 1;
   ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY = 2;
@@ -6351,7 +6354,7 @@
   dart.setSignature(ZoomEvent, {
     constructors: () => ({_: [ZoomEvent, []]})
   });
-  ZoomEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGZoomEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGZoomEvent"))];
+  ZoomEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGZoomEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGZoomEvent"))], 'fields', dart.map(['newScale', [dart.const(new _metadata.DomName('SVGZoomEvent.newScale')), dart.const(new _metadata.DocsEditable())], 'newTranslate', [dart.const(new _metadata.DomName('SVGZoomEvent.newTranslate')), dart.const(new _metadata.DocsEditable())], 'previousScale', [dart.const(new _metadata.DomName('SVGZoomEvent.previousScale')), dart.const(new _metadata.DocsEditable())], 'previousTranslate', [dart.const(new _metadata.DomName('SVGZoomEvent.previousTranslate')), dart.const(new _metadata.DocsEditable())], 'zoomRectScreen', [dart.const(new _metadata.DomName('SVGZoomEvent.zoomRectScreen')), dart.const(new _metadata.DocsEditable())]])]);
   ZoomEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGZoomEvent, ZoomEvent);
   class _SVGAltGlyphDefElement extends SvgElement {
@@ -6369,7 +6372,7 @@
       created: [_SVGAltGlyphDefElement, []]
     })
   });
-  _SVGAltGlyphDefElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphDefElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphDefElement"))];
+  _SVGAltGlyphDefElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphDefElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphDefElement"))]]);
   _SVGAltGlyphDefElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAltGlyphDefElement, _SVGAltGlyphDefElement);
   class _SVGAltGlyphItemElement extends SvgElement {
@@ -6387,7 +6390,7 @@
       created: [_SVGAltGlyphItemElement, []]
     })
   });
-  _SVGAltGlyphItemElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphItemElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphItemElement"))];
+  _SVGAltGlyphItemElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGAltGlyphItemElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGAltGlyphItemElement"))]]);
   _SVGAltGlyphItemElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGAltGlyphItemElement, _SVGAltGlyphItemElement);
   class _SVGCursorElement extends SvgElement {
@@ -6413,7 +6416,7 @@
       created: [_SVGCursorElement, []]
     })
   });
-  _SVGCursorElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGCursorElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGCursorElement"))];
+  _SVGCursorElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGCursorElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGCursorElement"))]]);
   _SVGCursorElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGCursorElement, _SVGCursorElement);
   class _SVGFEDropShadowElement extends SvgElement {
@@ -6432,7 +6435,7 @@
       created: [_SVGFEDropShadowElement, []]
     })
   });
-  _SVGFEDropShadowElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDropShadowElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGFEDropShadowElement"))];
+  _SVGFEDropShadowElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFEDropShadowElement')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SVGFEDropShadowElement"))]]);
   _SVGFEDropShadowElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFEDropShadowElement, _SVGFEDropShadowElement);
   class _SVGFontElement extends SvgElement {
@@ -6450,7 +6453,7 @@
       created: [_SVGFontElement, []]
     })
   });
-  _SVGFontElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontElement"))];
+  _SVGFontElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontElement"))]]);
   _SVGFontElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontElement, _SVGFontElement);
   class _SVGFontFaceElement extends SvgElement {
@@ -6468,7 +6471,7 @@
       created: [_SVGFontFaceElement, []]
     })
   });
-  _SVGFontFaceElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceElement"))];
+  _SVGFontFaceElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceElement"))]]);
   _SVGFontFaceElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontFaceElement, _SVGFontFaceElement);
   class _SVGFontFaceFormatElement extends SvgElement {
@@ -6486,7 +6489,7 @@
       created: [_SVGFontFaceFormatElement, []]
     })
   });
-  _SVGFontFaceFormatElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceFormatElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceFormatElement"))];
+  _SVGFontFaceFormatElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceFormatElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceFormatElement"))]]);
   _SVGFontFaceFormatElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontFaceFormatElement, _SVGFontFaceFormatElement);
   class _SVGFontFaceNameElement extends SvgElement {
@@ -6504,7 +6507,7 @@
       created: [_SVGFontFaceNameElement, []]
     })
   });
-  _SVGFontFaceNameElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceNameElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceNameElement"))];
+  _SVGFontFaceNameElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceNameElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceNameElement"))]]);
   _SVGFontFaceNameElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontFaceNameElement, _SVGFontFaceNameElement);
   class _SVGFontFaceSrcElement extends SvgElement {
@@ -6522,7 +6525,7 @@
       created: [_SVGFontFaceSrcElement, []]
     })
   });
-  _SVGFontFaceSrcElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceSrcElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceSrcElement"))];
+  _SVGFontFaceSrcElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceSrcElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceSrcElement"))]]);
   _SVGFontFaceSrcElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontFaceSrcElement, _SVGFontFaceSrcElement);
   class _SVGFontFaceUriElement extends SvgElement {
@@ -6540,7 +6543,7 @@
       created: [_SVGFontFaceUriElement, []]
     })
   });
-  _SVGFontFaceUriElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceUriElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceUriElement"))];
+  _SVGFontFaceUriElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGFontFaceUriElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGFontFaceUriElement"))]]);
   _SVGFontFaceUriElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGFontFaceUriElement, _SVGFontFaceUriElement);
   class _SVGGlyphElement extends SvgElement {
@@ -6562,7 +6565,7 @@
       created: [_SVGGlyphElement, []]
     })
   });
-  _SVGGlyphElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGlyphElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGlyphElement"))];
+  _SVGGlyphElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGlyphElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGlyphElement"))]]);
   _SVGGlyphElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGGlyphElement, _SVGGlyphElement);
   class _SVGGlyphRefElement extends SvgElement {
@@ -6581,7 +6584,7 @@
       created: [_SVGGlyphRefElement, []]
     })
   });
-  _SVGGlyphRefElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGlyphRefElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGlyphRefElement"))];
+  _SVGGlyphRefElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGGlyphRefElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGGlyphRefElement"))]]);
   _SVGGlyphRefElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGGlyphRefElement, _SVGGlyphRefElement);
   class _SVGHKernElement extends SvgElement {
@@ -6603,7 +6606,7 @@
       created: [_SVGHKernElement, []]
     })
   });
-  _SVGHKernElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGHKernElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGHKernElement"))];
+  _SVGHKernElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGHKernElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGHKernElement"))]]);
   _SVGHKernElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGHKernElement, _SVGHKernElement);
   class _SVGMPathElement extends SvgElement {
@@ -6626,7 +6629,7 @@
       created: [_SVGMPathElement, []]
     })
   });
-  _SVGMPathElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMPathElement')), dart.const(new _js_helper.Native("SVGMPathElement"))];
+  _SVGMPathElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMPathElement')), dart.const(new _js_helper.Native("SVGMPathElement"))]]);
   _SVGMPathElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGMPathElement, _SVGMPathElement);
   class _SVGMissingGlyphElement extends SvgElement {
@@ -6644,7 +6647,7 @@
       created: [_SVGMissingGlyphElement, []]
     })
   });
-  _SVGMissingGlyphElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMissingGlyphElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMissingGlyphElement"))];
+  _SVGMissingGlyphElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGMissingGlyphElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGMissingGlyphElement"))]]);
   _SVGMissingGlyphElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGMissingGlyphElement, _SVGMissingGlyphElement);
   class _SVGVKernElement extends SvgElement {
@@ -6666,7 +6669,7 @@
       created: [_SVGVKernElement, []]
     })
   });
-  _SVGVKernElement[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGVKernElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGVKernElement"))];
+  _SVGVKernElement[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SVGVKernElement')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("SVGVKernElement"))]]);
   _SVGVKernElement[dart.owner] = exports;
   dart.registerExtension(dart.global.SVGVKernElement, _SVGVKernElement);
   // Exports:
diff --git a/lib/runtime/dart/web_audio.js b/lib/runtime/dart/web_audio.js
index 4615286..e6516e7 100644
--- a/lib/runtime/dart/web_audio.js
+++ b/lib/runtime/dart/web_audio.js
@@ -80,7 +80,7 @@
       [dartx.connectParam]: [dart.void, [AudioParam], [core.int]]
     })
   });
-  AudioNode[dart.metadata] = () => [dart.const(new _metadata.DomName('AudioNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioNode"))];
+  AudioNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('AudioNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioNode"))], 'fields', dart.map(['channelCount', [dart.const(new _metadata.DomName('AudioNode.channelCount')), dart.const(new _metadata.DocsEditable())], 'channelCountMode', [dart.const(new _metadata.DomName('AudioNode.channelCountMode')), dart.const(new _metadata.DocsEditable())], 'channelInterpretation', [dart.const(new _metadata.DomName('AudioNode.channelInterpretation')), dart.const(new _metadata.DocsEditable())], 'context', [dart.const(new _metadata.DomName('AudioNode.context')), dart.const(new _metadata.DocsEditable())], 'numberOfInputs', [dart.const(new _metadata.DomName('AudioNode.numberOfInputs')), dart.const(new _metadata.DocsEditable())], 'numberOfOutputs', [dart.const(new _metadata.DomName('AudioNode.numberOfOutputs')), dart.const(new _metadata.DocsEditable())]])]);
   AudioNode[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioNode, AudioNode);
   dart.defineExtensionNames([
@@ -147,7 +147,7 @@
       [dartx.getFloatTimeDomainData]: [dart.void, [typed_data.Float32List]]
     })
   });
-  AnalyserNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnalyserNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnalyserNode,RealtimeAnalyserNode"))];
+  AnalyserNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AnalyserNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AnalyserNode,RealtimeAnalyserNode"))], 'fields', dart.map(['fftSize', [dart.const(new _metadata.DomName('AnalyserNode.fftSize')), dart.const(new _metadata.DocsEditable())], 'frequencyBinCount', [dart.const(new _metadata.DomName('AnalyserNode.frequencyBinCount')), dart.const(new _metadata.DocsEditable())], 'maxDecibels', [dart.const(new _metadata.DomName('AnalyserNode.maxDecibels')), dart.const(new _metadata.DocsEditable())], 'minDecibels', [dart.const(new _metadata.DomName('AnalyserNode.minDecibels')), dart.const(new _metadata.DocsEditable())], 'smoothingTimeConstant', [dart.const(new _metadata.DomName('AnalyserNode.smoothingTimeConstant')), dart.const(new _metadata.DocsEditable())]])]);
   AnalyserNode[dart.owner] = exports;
   dart.registerExtension(dart.global.AnalyserNode, AnalyserNode);
   dart.defineExtensionNames([
@@ -181,7 +181,7 @@
     constructors: () => ({_: [AudioBuffer, []]}),
     methods: () => ({[dartx.getChannelData]: [typed_data.Float32List, [core.int]]})
   });
-  AudioBuffer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioBuffer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioBuffer"))];
+  AudioBuffer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioBuffer')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioBuffer"))], 'fields', dart.map(['duration', [dart.const(new _metadata.DomName('AudioBuffer.duration')), dart.const(new _metadata.DocsEditable())], 'length', [dart.const(new _metadata.DomName('AudioBuffer.length')), dart.const(new _metadata.DocsEditable())], 'numberOfChannels', [dart.const(new _metadata.DomName('AudioBuffer.numberOfChannels')), dart.const(new _metadata.DocsEditable())], 'sampleRate', [dart.const(new _metadata.DomName('AudioBuffer.sampleRate')), dart.const(new _metadata.DocsEditable())]])]);
   AudioBuffer[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioBuffer, AudioBuffer);
   const AudioBufferCallback = dart.typedef('AudioBufferCallback', () => dart.functionType(dart.void, [AudioBuffer]));
@@ -193,7 +193,7 @@
   dart.setSignature(AudioSourceNode, {
     constructors: () => ({_: [AudioSourceNode, []]})
   });
-  AudioSourceNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioSourceNode"))];
+  AudioSourceNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioSourceNode"))]]);
   AudioSourceNode[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioSourceNode, AudioSourceNode);
   dart.defineExtensionNames([
@@ -276,7 +276,7 @@
       [dartx.stop]: [dart.void, [core.num]]
     })
   });
-  AudioBufferSourceNode[dart.metadata] = () => [dart.const(new _metadata.DomName('AudioBufferSourceNode')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioBufferSourceNode"))];
+  AudioBufferSourceNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('AudioBufferSourceNode')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioBufferSourceNode"))], 'fields', dart.map(['buffer', [dart.const(new _metadata.DomName('AudioBufferSourceNode.buffer')), dart.const(new _metadata.DocsEditable())], 'loop', [dart.const(new _metadata.DomName('AudioBufferSourceNode.loop')), dart.const(new _metadata.DocsEditable())], 'loopEnd', [dart.const(new _metadata.DomName('AudioBufferSourceNode.loopEnd')), dart.const(new _metadata.DocsEditable())], 'loopStart', [dart.const(new _metadata.DomName('AudioBufferSourceNode.loopStart')), dart.const(new _metadata.DocsEditable())], 'playbackRate', [dart.const(new _metadata.DomName('AudioBufferSourceNode.playbackRate')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onEnded', [dart.const(new _metadata.DomName('AudioBufferSourceNode.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AudioBufferSourceNode[dart.owner] = exports;
   AudioBufferSourceNode.endedEvent = dart.const(new (html.EventStreamProvider$(html.Event))('ended'));
   dart.registerExtension(dart.global.AudioBufferSourceNode, AudioBufferSourceNode);
@@ -449,7 +449,7 @@
       [dartx.decodeAudioData]: [async.Future$(AudioBuffer), [typed_data.ByteBuffer]]
     })
   });
-  AudioContext[dart.metadata] = () => [dart.const(new _metadata.DomName('AudioContext')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioContext,webkitAudioContext"))];
+  AudioContext[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('AudioContext')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioContext,webkitAudioContext"))], 'fields', dart.map(['currentTime', [dart.const(new _metadata.DomName('AudioContext.currentTime')), dart.const(new _metadata.DocsEditable())], 'destination', [dart.const(new _metadata.DomName('AudioContext.destination')), dart.const(new _metadata.DocsEditable())], 'listener', [dart.const(new _metadata.DomName('AudioContext.listener')), dart.const(new _metadata.DocsEditable())], 'sampleRate', [dart.const(new _metadata.DomName('AudioContext.sampleRate')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onComplete', [dart.const(new _metadata.DomName('AudioContext.oncomplete')), dart.const(new _metadata.DocsEditable())]])]);
   AudioContext[dart.owner] = exports;
   AudioContext.completeEvent = dart.const(new (html.EventStreamProvider$(html.Event))('complete'));
   dart.registerExtension(dart.global.AudioContext, AudioContext);
@@ -467,7 +467,7 @@
   dart.setSignature(AudioDestinationNode, {
     constructors: () => ({_: [AudioDestinationNode, []]})
   });
-  AudioDestinationNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioDestinationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioDestinationNode"))];
+  AudioDestinationNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioDestinationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioDestinationNode"))], 'fields', dart.map(['maxChannelCount', [dart.const(new _metadata.DomName('AudioDestinationNode.maxChannelCount')), dart.const(new _metadata.DocsEditable())]])]);
   AudioDestinationNode[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioDestinationNode, AudioDestinationNode);
   dart.defineExtensionNames([
@@ -511,7 +511,7 @@
       [dartx.setVelocity]: [dart.void, [core.num, core.num, core.num]]
     })
   });
-  AudioListener[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioListener')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioListener"))];
+  AudioListener[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioListener')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioListener"))], 'fields', dart.map(['dopplerFactor', [dart.const(new _metadata.DomName('AudioListener.dopplerFactor')), dart.const(new _metadata.DocsEditable())], 'speedOfSound', [dart.const(new _metadata.DomName('AudioListener.speedOfSound')), dart.const(new _metadata.DocsEditable())]])]);
   AudioListener[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioListener, AudioListener);
   dart.defineExtensionNames([
@@ -567,7 +567,7 @@
       [dartx.setValueCurveAtTime]: [dart.void, [typed_data.Float32List, core.num, core.num]]
     })
   });
-  AudioParam[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioParam')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioParam"))];
+  AudioParam[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioParam')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioParam"))], 'fields', dart.map(['defaultValue', [dart.const(new _metadata.DomName('AudioParam.defaultValue')), dart.const(new _metadata.DocsEditable())], 'value', [dart.const(new _metadata.DomName('AudioParam.value')), dart.const(new _metadata.DocsEditable())]])]);
   AudioParam[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioParam, AudioParam);
   dart.defineExtensionNames([
@@ -592,7 +592,7 @@
   dart.setSignature(AudioProcessingEvent, {
     constructors: () => ({_: [AudioProcessingEvent, []]})
   });
-  AudioProcessingEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioProcessingEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioProcessingEvent"))];
+  AudioProcessingEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('AudioProcessingEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("AudioProcessingEvent"))], 'fields', dart.map(['inputBuffer', [dart.const(new _metadata.DomName('AudioProcessingEvent.inputBuffer')), dart.const(new _metadata.DocsEditable())], 'outputBuffer', [dart.const(new _metadata.DomName('AudioProcessingEvent.outputBuffer')), dart.const(new _metadata.DocsEditable())], 'playbackTime', [dart.const(new _metadata.DomName('AudioProcessingEvent.playbackTime')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   AudioProcessingEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.AudioProcessingEvent, AudioProcessingEvent);
   dart.defineExtensionNames([
@@ -633,7 +633,7 @@
     constructors: () => ({_: [BiquadFilterNode, []]}),
     methods: () => ({[dartx.getFrequencyResponse]: [dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List]]})
   });
-  BiquadFilterNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BiquadFilterNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("BiquadFilterNode"))];
+  BiquadFilterNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('BiquadFilterNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("BiquadFilterNode"))], 'fields', dart.map(['Q', [dart.const(new _metadata.DomName('BiquadFilterNode.Q')), dart.const(new _metadata.DocsEditable())], 'detune', [dart.const(new _metadata.DomName('BiquadFilterNode.detune')), dart.const(new _metadata.DocsEditable())], 'frequency', [dart.const(new _metadata.DomName('BiquadFilterNode.frequency')), dart.const(new _metadata.DocsEditable())], 'gain', [dart.const(new _metadata.DomName('BiquadFilterNode.gain')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('BiquadFilterNode.type')), dart.const(new _metadata.DocsEditable())]])]);
   BiquadFilterNode[dart.owner] = exports;
   dart.registerExtension(dart.global.BiquadFilterNode, BiquadFilterNode);
   class ChannelMergerNode extends AudioNode {
@@ -644,7 +644,7 @@
   dart.setSignature(ChannelMergerNode, {
     constructors: () => ({_: [ChannelMergerNode, []]})
   });
-  ChannelMergerNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChannelMergerNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ChannelMergerNode,AudioChannelMerger"))];
+  ChannelMergerNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChannelMergerNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ChannelMergerNode,AudioChannelMerger"))]]);
   ChannelMergerNode[dart.owner] = exports;
   dart.registerExtension(dart.global.ChannelMergerNode, ChannelMergerNode);
   class ChannelSplitterNode extends AudioNode {
@@ -655,7 +655,7 @@
   dart.setSignature(ChannelSplitterNode, {
     constructors: () => ({_: [ChannelSplitterNode, []]})
   });
-  ChannelSplitterNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChannelSplitterNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ChannelSplitterNode,AudioChannelSplitter"))];
+  ChannelSplitterNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ChannelSplitterNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ChannelSplitterNode,AudioChannelSplitter"))]]);
   ChannelSplitterNode[dart.owner] = exports;
   dart.registerExtension(dart.global.ChannelSplitterNode, ChannelSplitterNode);
   dart.defineExtensionNames([
@@ -682,7 +682,7 @@
   dart.setSignature(ConvolverNode, {
     constructors: () => ({_: [ConvolverNode, []]})
   });
-  ConvolverNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ConvolverNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ConvolverNode"))];
+  ConvolverNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ConvolverNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ConvolverNode"))], 'fields', dart.map(['buffer', [dart.const(new _metadata.DomName('ConvolverNode.buffer')), dart.const(new _metadata.DocsEditable())], 'normalize', [dart.const(new _metadata.DomName('ConvolverNode.normalize')), dart.const(new _metadata.DocsEditable())]])]);
   ConvolverNode[dart.owner] = exports;
   dart.registerExtension(dart.global.ConvolverNode, ConvolverNode);
   dart.defineExtensionNames([
@@ -699,7 +699,7 @@
   dart.setSignature(DelayNode, {
     constructors: () => ({_: [DelayNode, []]})
   });
-  DelayNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DelayNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DelayNode"))];
+  DelayNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DelayNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DelayNode"))], 'fields', dart.map(['delayTime', [dart.const(new _metadata.DomName('DelayNode.delayTime')), dart.const(new _metadata.DocsEditable())]])]);
   DelayNode[dart.owner] = exports;
   dart.registerExtension(dart.global.DelayNode, DelayNode);
   dart.defineExtensionNames([
@@ -736,7 +736,7 @@
   dart.setSignature(DynamicsCompressorNode, {
     constructors: () => ({_: [DynamicsCompressorNode, []]})
   });
-  DynamicsCompressorNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DynamicsCompressorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DynamicsCompressorNode"))];
+  DynamicsCompressorNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('DynamicsCompressorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("DynamicsCompressorNode"))], 'fields', dart.map(['attack', [dart.const(new _metadata.DomName('DynamicsCompressorNode.attack')), dart.const(new _metadata.DocsEditable())], 'knee', [dart.const(new _metadata.DomName('DynamicsCompressorNode.knee')), dart.const(new _metadata.DocsEditable())], 'ratio', [dart.const(new _metadata.DomName('DynamicsCompressorNode.ratio')), dart.const(new _metadata.DocsEditable())], 'reduction', [dart.const(new _metadata.DomName('DynamicsCompressorNode.reduction')), dart.const(new _metadata.DocsEditable())], 'release', [dart.const(new _metadata.DomName('DynamicsCompressorNode.release')), dart.const(new _metadata.DocsEditable())], 'threshold', [dart.const(new _metadata.DomName('DynamicsCompressorNode.threshold')), dart.const(new _metadata.DocsEditable())]])]);
   DynamicsCompressorNode[dart.owner] = exports;
   dart.registerExtension(dart.global.DynamicsCompressorNode, DynamicsCompressorNode);
   dart.defineExtensionNames([
@@ -753,7 +753,7 @@
   dart.setSignature(GainNode, {
     constructors: () => ({_: [GainNode, []]})
   });
-  GainNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GainNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GainNode,AudioGainNode"))];
+  GainNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('GainNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("GainNode,AudioGainNode"))], 'fields', dart.map(['gain', [dart.const(new _metadata.DomName('GainNode.gain')), dart.const(new _metadata.DocsEditable())]])]);
   GainNode[dart.owner] = exports;
   dart.registerExtension(dart.global.GainNode, GainNode);
   dart.defineExtensionNames([
@@ -770,7 +770,7 @@
   dart.setSignature(MediaElementAudioSourceNode, {
     constructors: () => ({_: [MediaElementAudioSourceNode, []]})
   });
-  MediaElementAudioSourceNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaElementAudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaElementAudioSourceNode"))];
+  MediaElementAudioSourceNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaElementAudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaElementAudioSourceNode"))], 'fields', dart.map(['mediaElement', [dart.const(new _metadata.DomName('MediaElementAudioSourceNode.mediaElement')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   MediaElementAudioSourceNode[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaElementAudioSourceNode, MediaElementAudioSourceNode);
   dart.defineExtensionNames([
@@ -787,7 +787,7 @@
   dart.setSignature(MediaStreamAudioDestinationNode, {
     constructors: () => ({_: [MediaStreamAudioDestinationNode, []]})
   });
-  MediaStreamAudioDestinationNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamAudioDestinationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamAudioDestinationNode"))];
+  MediaStreamAudioDestinationNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamAudioDestinationNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamAudioDestinationNode"))], 'fields', dart.map(['stream', [dart.const(new _metadata.DomName('MediaStreamAudioDestinationNode.stream')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStreamAudioDestinationNode[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaStreamAudioDestinationNode, MediaStreamAudioDestinationNode);
   dart.defineExtensionNames([
@@ -804,7 +804,7 @@
   dart.setSignature(MediaStreamAudioSourceNode, {
     constructors: () => ({_: [MediaStreamAudioSourceNode, []]})
   });
-  MediaStreamAudioSourceNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamAudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamAudioSourceNode"))];
+  MediaStreamAudioSourceNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('MediaStreamAudioSourceNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("MediaStreamAudioSourceNode"))], 'fields', dart.map(['mediaStream', [dart.const(new _metadata.DomName('MediaStreamAudioSourceNode.mediaStream')), dart.const(new _metadata.DocsEditable())]])]);
   MediaStreamAudioSourceNode[dart.owner] = exports;
   dart.registerExtension(dart.global.MediaStreamAudioSourceNode, MediaStreamAudioSourceNode);
   dart.defineExtensionNames([
@@ -821,7 +821,7 @@
   dart.setSignature(OfflineAudioCompletionEvent, {
     constructors: () => ({_: [OfflineAudioCompletionEvent, []]})
   });
-  OfflineAudioCompletionEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OfflineAudioCompletionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OfflineAudioCompletionEvent"))];
+  OfflineAudioCompletionEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OfflineAudioCompletionEvent')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OfflineAudioCompletionEvent"))], 'fields', dart.map(['renderedBuffer', [dart.const(new _metadata.DomName('OfflineAudioCompletionEvent.renderedBuffer')), dart.const(new _metadata.DocsEditable())]])]);
   OfflineAudioCompletionEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.OfflineAudioCompletionEvent, OfflineAudioCompletionEvent);
   class OfflineAudioContext extends AudioContext {
@@ -843,7 +843,7 @@
     statics: () => ({_create_1: [OfflineAudioContext, [dart.dynamic, dart.dynamic, dart.dynamic]]}),
     names: ['_create_1']
   });
-  OfflineAudioContext[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OfflineAudioContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OfflineAudioContext"))];
+  OfflineAudioContext[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OfflineAudioContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OfflineAudioContext"))]]);
   OfflineAudioContext[dart.owner] = exports;
   dart.registerExtension(dart.global.OfflineAudioContext, OfflineAudioContext);
   dart.defineExtensionNames([
@@ -902,7 +902,7 @@
       [dartx.stop]: [dart.void, [], [core.num]]
     })
   });
-  OscillatorNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OscillatorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OscillatorNode,Oscillator"))];
+  OscillatorNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OscillatorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OscillatorNode,Oscillator"))], 'fields', dart.map(['detune', [dart.const(new _metadata.DomName('OscillatorNode.detune')), dart.const(new _metadata.DocsEditable())], 'frequency', [dart.const(new _metadata.DomName('OscillatorNode.frequency')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('OscillatorNode.type')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onEnded', [dart.const(new _metadata.DomName('OscillatorNode.onended')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   OscillatorNode[dart.owner] = exports;
   OscillatorNode.endedEvent = dart.const(new (html.EventStreamProvider$(html.Event))('ended'));
   dart.registerExtension(dart.global.OscillatorNode, OscillatorNode);
@@ -989,7 +989,7 @@
       [dartx.setVelocity]: [dart.void, [core.num, core.num, core.num]]
     })
   });
-  PannerNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PannerNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PannerNode,AudioPannerNode,webkitAudioPannerNode"))];
+  PannerNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PannerNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PannerNode,AudioPannerNode,webkitAudioPannerNode"))], 'fields', dart.map(['coneInnerAngle', [dart.const(new _metadata.DomName('PannerNode.coneInnerAngle')), dart.const(new _metadata.DocsEditable())], 'coneOuterAngle', [dart.const(new _metadata.DomName('PannerNode.coneOuterAngle')), dart.const(new _metadata.DocsEditable())], 'coneOuterGain', [dart.const(new _metadata.DomName('PannerNode.coneOuterGain')), dart.const(new _metadata.DocsEditable())], 'distanceModel', [dart.const(new _metadata.DomName('PannerNode.distanceModel')), dart.const(new _metadata.DocsEditable())], 'maxDistance', [dart.const(new _metadata.DomName('PannerNode.maxDistance')), dart.const(new _metadata.DocsEditable())], 'panningModel', [dart.const(new _metadata.DomName('PannerNode.panningModel')), dart.const(new _metadata.DocsEditable())], 'refDistance', [dart.const(new _metadata.DomName('PannerNode.refDistance')), dart.const(new _metadata.DocsEditable())], 'rolloffFactor', [dart.const(new _metadata.DomName('PannerNode.rolloffFactor')), dart.const(new _metadata.DocsEditable())]])]);
   PannerNode[dart.owner] = exports;
   dart.registerExtension(dart.global.PannerNode, PannerNode);
   class PeriodicWave extends _interceptors.Interceptor {
@@ -1000,7 +1000,7 @@
   dart.setSignature(PeriodicWave, {
     constructors: () => ({_: [PeriodicWave, []]})
   });
-  PeriodicWave[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PeriodicWave')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PeriodicWave"))];
+  PeriodicWave[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('PeriodicWave')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("PeriodicWave"))]]);
   PeriodicWave[dart.owner] = exports;
   dart.registerExtension(dart.global.PeriodicWave, PeriodicWave);
   dart.defineExtensionNames([
@@ -1026,7 +1026,7 @@
     constructors: () => ({_: [ScriptProcessorNode, []]}),
     methods: () => ({[dartx.setEventListener]: [dart.void, [html.EventListener]]})
   });
-  ScriptProcessorNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ScriptProcessorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ScriptProcessorNode,JavaScriptAudioNode"))];
+  ScriptProcessorNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ScriptProcessorNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ScriptProcessorNode,JavaScriptAudioNode"))], 'fields', dart.map(['bufferSize', [dart.const(new _metadata.DomName('ScriptProcessorNode.bufferSize')), dart.const(new _metadata.DocsEditable())]]), 'properties', dart.map(['onAudioProcess', [dart.const(new _metadata.DomName('ScriptProcessorNode.onaudioprocess')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())]])]);
   ScriptProcessorNode[dart.owner] = exports;
   ScriptProcessorNode.audioProcessEvent = dart.const(new (html.EventStreamProvider$(AudioProcessingEvent))('audioprocess'));
   dart.registerExtension(dart.global.ScriptProcessorNode, ScriptProcessorNode);
@@ -1054,7 +1054,7 @@
   dart.setSignature(WaveShaperNode, {
     constructors: () => ({_: [WaveShaperNode, []]})
   });
-  WaveShaperNode[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WaveShaperNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WaveShaperNode"))];
+  WaveShaperNode[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WaveShaperNode')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WaveShaperNode"))], 'fields', dart.map(['curve', [dart.const(new _metadata.DomName('WaveShaperNode.curve')), dart.const(new _metadata.DocsEditable())], 'oversample', [dart.const(new _metadata.DomName('WaveShaperNode.oversample')), dart.const(new _metadata.DocsEditable())]])]);
   WaveShaperNode[dart.owner] = exports;
   dart.registerExtension(dart.global.WaveShaperNode, WaveShaperNode);
   // Exports:
diff --git a/lib/runtime/dart/web_gl.js b/lib/runtime/dart/web_gl.js
index 77cc9ce..17003e1 100644
--- a/lib/runtime/dart/web_gl.js
+++ b/lib/runtime/dart/web_gl.js
@@ -916,7 +916,7 @@
       [dartx.texSubImage2DTyped]: [dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]]
     })
   });
-  RenderingContext[dart.metadata] = () => [dart.const(new _metadata.DomName('WebGLRenderingContext')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLRenderingContext"))];
+  RenderingContext[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DomName('WebGLRenderingContext')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.FIREFOX)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLRenderingContext"))], 'fields', dart.map(['canvas', [dart.const(new _metadata.DomName('WebGLRenderingContext.canvas')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'drawingBufferHeight', [dart.const(new _metadata.DomName('WebGLRenderingContext.drawingBufferHeight')), dart.const(new _metadata.DocsEditable())], 'drawingBufferWidth', [dart.const(new _metadata.DomName('WebGLRenderingContext.drawingBufferWidth')), dart.const(new _metadata.DocsEditable())]])]);
   RenderingContext[dart.owner] = exports;
   RenderingContext.ACTIVE_ATTRIBUTES = 35721;
   RenderingContext.ACTIVE_TEXTURE = 34016;
@@ -1323,7 +1323,7 @@
   dart.setSignature(OesTextureHalfFloat, {
     constructors: () => ({_: [OesTextureHalfFloat, []]})
   });
-  OesTextureHalfFloat[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureHalfFloat')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureHalfFloat"))];
+  OesTextureHalfFloat[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureHalfFloat')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureHalfFloat"))]]);
   OesTextureHalfFloat[dart.owner] = exports;
   OesTextureHalfFloat.HALF_FLOAT_OES = 36193;
   dart.registerExtension(dart.global.OESTextureHalfFloat, OesTextureHalfFloat);
@@ -1546,7 +1546,7 @@
   dart.setSignature(ActiveInfo, {
     constructors: () => ({_: [ActiveInfo, []]})
   });
-  ActiveInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLActiveInfo')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLActiveInfo"))];
+  ActiveInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLActiveInfo')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLActiveInfo"))], 'fields', dart.map(['name', [dart.const(new _metadata.DomName('WebGLActiveInfo.name')), dart.const(new _metadata.DocsEditable())], 'size', [dart.const(new _metadata.DomName('WebGLActiveInfo.size')), dart.const(new _metadata.DocsEditable())], 'type', [dart.const(new _metadata.DomName('WebGLActiveInfo.type')), dart.const(new _metadata.DocsEditable())]])]);
   ActiveInfo[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLActiveInfo, ActiveInfo);
   dart.defineExtensionNames([
@@ -1576,7 +1576,7 @@
       [dartx.vertexAttribDivisorAngle]: [dart.void, [core.int, core.int]]
     })
   });
-  AngleInstancedArrays[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ANGLEInstancedArrays')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ANGLEInstancedArrays"))];
+  AngleInstancedArrays[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('ANGLEInstancedArrays')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("ANGLEInstancedArrays"))]]);
   AngleInstancedArrays[dart.owner] = exports;
   AngleInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070;
   dart.registerExtension(dart.global.ANGLEInstancedArrays, AngleInstancedArrays);
@@ -1588,7 +1588,7 @@
   dart.setSignature(Buffer, {
     constructors: () => ({_: [Buffer, []]})
   });
-  Buffer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLBuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLBuffer"))];
+  Buffer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLBuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLBuffer"))]]);
   Buffer[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLBuffer, Buffer);
   class CompressedTextureAtc extends _interceptors.Interceptor {
@@ -1599,7 +1599,7 @@
   dart.setSignature(CompressedTextureAtc, {
     constructors: () => ({_: [CompressedTextureAtc, []]})
   });
-  CompressedTextureAtc[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureATC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureATC"))];
+  CompressedTextureAtc[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureATC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureATC"))]]);
   CompressedTextureAtc[dart.owner] = exports;
   CompressedTextureAtc.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;
   CompressedTextureAtc.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
@@ -1613,7 +1613,7 @@
   dart.setSignature(CompressedTextureETC1, {
     constructors: () => ({_: [CompressedTextureETC1, []]})
   });
-  CompressedTextureETC1[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureETC1')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureETC1"))];
+  CompressedTextureETC1[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureETC1')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureETC1"))]]);
   CompressedTextureETC1[dart.owner] = exports;
   CompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL = 36196;
   dart.registerExtension(dart.global.WebGLCompressedTextureETC1, CompressedTextureETC1);
@@ -1625,7 +1625,7 @@
   dart.setSignature(CompressedTexturePvrtc, {
     constructors: () => ({_: [CompressedTexturePvrtc, []]})
   });
-  CompressedTexturePvrtc[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTexturePVRTC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTexturePVRTC"))];
+  CompressedTexturePvrtc[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTexturePVRTC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTexturePVRTC"))]]);
   CompressedTexturePvrtc[dart.owner] = exports;
   CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;
   CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
@@ -1640,7 +1640,7 @@
   dart.setSignature(CompressedTextureS3TC, {
     constructors: () => ({_: [CompressedTextureS3TC, []]})
   });
-  CompressedTextureS3TC[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureS3TC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureS3TC"))];
+  CompressedTextureS3TC[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLCompressedTextureS3TC')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLCompressedTextureS3TC"))]]);
   CompressedTextureS3TC[dart.owner] = exports;
   CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;
   CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;
@@ -1706,7 +1706,7 @@
   dart.setSignature(ContextAttributes, {
     constructors: () => ({_: [ContextAttributes, []]})
   });
-  ContextAttributes[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLContextAttributes')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLContextAttributes"))];
+  ContextAttributes[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLContextAttributes')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLContextAttributes"))], 'fields', dart.map(['alpha', [dart.const(new _metadata.DomName('WebGLContextAttributes.alpha')), dart.const(new _metadata.DocsEditable())], 'antialias', [dart.const(new _metadata.DomName('WebGLContextAttributes.antialias')), dart.const(new _metadata.DocsEditable())], 'depth', [dart.const(new _metadata.DomName('WebGLContextAttributes.depth')), dart.const(new _metadata.DocsEditable())], 'failIfMajorPerformanceCaveat', [dart.const(new _metadata.DomName('WebGLContextAttributes.failIfMajorPerformanceCaveat')), dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.Experimental())], 'premultipliedAlpha', [dart.const(new _metadata.DomName('WebGLContextAttributes.premultipliedAlpha')), dart.const(new _metadata.DocsEditable())], 'preserveDrawingBuffer', [dart.const(new _metadata.DomName('WebGLContextAttributes.preserveDrawingBuffer')), dart.const(new _metadata.DocsEditable())], 'stencil', [dart.const(new _metadata.DomName('WebGLContextAttributes.stencil')), dart.const(new _metadata.DocsEditable())]])]);
   ContextAttributes[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLContextAttributes, ContextAttributes);
   dart.defineExtensionNames([
@@ -1723,7 +1723,7 @@
   dart.setSignature(ContextEvent, {
     constructors: () => ({_: [ContextEvent, []]})
   });
-  ContextEvent[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLContextEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLContextEvent"))];
+  ContextEvent[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLContextEvent')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLContextEvent"))], 'fields', dart.map(['statusMessage', [dart.const(new _metadata.DomName('WebGLContextEvent.statusMessage')), dart.const(new _metadata.DocsEditable())]])]);
   ContextEvent[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLContextEvent, ContextEvent);
   class DebugRendererInfo extends _interceptors.Interceptor {
@@ -1734,7 +1734,7 @@
   dart.setSignature(DebugRendererInfo, {
     constructors: () => ({_: [DebugRendererInfo, []]})
   });
-  DebugRendererInfo[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDebugRendererInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDebugRendererInfo"))];
+  DebugRendererInfo[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDebugRendererInfo')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDebugRendererInfo"))]]);
   DebugRendererInfo[dart.owner] = exports;
   DebugRendererInfo.UNMASKED_RENDERER_WEBGL = 37446;
   DebugRendererInfo.UNMASKED_VENDOR_WEBGL = 37445;
@@ -1754,7 +1754,7 @@
     constructors: () => ({_: [DebugShaders, []]}),
     methods: () => ({[dartx.getTranslatedShaderSource]: [core.String, [Shader]]})
   });
-  DebugShaders[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDebugShaders')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDebugShaders"))];
+  DebugShaders[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDebugShaders')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDebugShaders"))]]);
   DebugShaders[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLDebugShaders, DebugShaders);
   class DepthTexture extends _interceptors.Interceptor {
@@ -1765,7 +1765,7 @@
   dart.setSignature(DepthTexture, {
     constructors: () => ({_: [DepthTexture, []]})
   });
-  DepthTexture[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDepthTexture')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDepthTexture"))];
+  DepthTexture[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDepthTexture')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDepthTexture"))]]);
   DepthTexture[dart.owner] = exports;
   DepthTexture.UNSIGNED_INT_24_8_WEBGL = 34042;
   dart.registerExtension(dart.global.WebGLDepthTexture, DepthTexture);
@@ -1784,7 +1784,7 @@
     constructors: () => ({_: [DrawBuffers, []]}),
     methods: () => ({[dartx.drawBuffersWebgl]: [dart.void, [core.List$(core.int)]]})
   });
-  DrawBuffers[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDrawBuffers')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDrawBuffers"))];
+  DrawBuffers[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLDrawBuffers')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLDrawBuffers"))]]);
   DrawBuffers[dart.owner] = exports;
   DrawBuffers.COLOR_ATTACHMENT0_WEBGL = 36064;
   DrawBuffers.COLOR_ATTACHMENT10_WEBGL = 36074;
@@ -1829,7 +1829,7 @@
   dart.setSignature(ExtBlendMinMax, {
     constructors: () => ({_: [ExtBlendMinMax, []]})
   });
-  ExtBlendMinMax[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTBlendMinMax')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTBlendMinMax"))];
+  ExtBlendMinMax[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTBlendMinMax')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTBlendMinMax"))]]);
   ExtBlendMinMax[dart.owner] = exports;
   ExtBlendMinMax.MAX_EXT = 32776;
   ExtBlendMinMax.MIN_EXT = 32775;
@@ -1842,7 +1842,7 @@
   dart.setSignature(ExtFragDepth, {
     constructors: () => ({_: [ExtFragDepth, []]})
   });
-  ExtFragDepth[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTFragDepth')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTFragDepth"))];
+  ExtFragDepth[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTFragDepth')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTFragDepth"))]]);
   ExtFragDepth[dart.owner] = exports;
   dart.registerExtension(dart.global.EXTFragDepth, ExtFragDepth);
   class ExtShaderTextureLod extends _interceptors.Interceptor {
@@ -1853,7 +1853,7 @@
   dart.setSignature(ExtShaderTextureLod, {
     constructors: () => ({_: [ExtShaderTextureLod, []]})
   });
-  ExtShaderTextureLod[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTShaderTextureLOD')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTShaderTextureLOD"))];
+  ExtShaderTextureLod[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTShaderTextureLOD')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTShaderTextureLOD"))]]);
   ExtShaderTextureLod[dart.owner] = exports;
   dart.registerExtension(dart.global.EXTShaderTextureLOD, ExtShaderTextureLod);
   class ExtTextureFilterAnisotropic extends _interceptors.Interceptor {
@@ -1864,7 +1864,7 @@
   dart.setSignature(ExtTextureFilterAnisotropic, {
     constructors: () => ({_: [ExtTextureFilterAnisotropic, []]})
   });
-  ExtTextureFilterAnisotropic[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTTextureFilterAnisotropic')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTTextureFilterAnisotropic"))];
+  ExtTextureFilterAnisotropic[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('EXTTextureFilterAnisotropic')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("EXTTextureFilterAnisotropic"))]]);
   ExtTextureFilterAnisotropic[dart.owner] = exports;
   ExtTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
   ExtTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT = 34046;
@@ -1877,7 +1877,7 @@
   dart.setSignature(Framebuffer, {
     constructors: () => ({_: [Framebuffer, []]})
   });
-  Framebuffer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLFramebuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLFramebuffer"))];
+  Framebuffer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLFramebuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLFramebuffer"))]]);
   Framebuffer[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLFramebuffer, Framebuffer);
   dart.defineExtensionNames([
@@ -1902,7 +1902,7 @@
       [dartx.restoreContext]: [dart.void, []]
     })
   });
-  LoseContext[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLLoseContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLLoseContext,WebGLExtensionLoseContext"))];
+  LoseContext[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLLoseContext')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLLoseContext,WebGLExtensionLoseContext"))]]);
   LoseContext[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLLoseContext, LoseContext);
   class OesElementIndexUint extends _interceptors.Interceptor {
@@ -1913,7 +1913,7 @@
   dart.setSignature(OesElementIndexUint, {
     constructors: () => ({_: [OesElementIndexUint, []]})
   });
-  OesElementIndexUint[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESElementIndexUint')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESElementIndexUint"))];
+  OesElementIndexUint[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESElementIndexUint')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESElementIndexUint"))]]);
   OesElementIndexUint[dart.owner] = exports;
   dart.registerExtension(dart.global.OESElementIndexUint, OesElementIndexUint);
   class OesStandardDerivatives extends _interceptors.Interceptor {
@@ -1924,7 +1924,7 @@
   dart.setSignature(OesStandardDerivatives, {
     constructors: () => ({_: [OesStandardDerivatives, []]})
   });
-  OesStandardDerivatives[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESStandardDerivatives')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESStandardDerivatives"))];
+  OesStandardDerivatives[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESStandardDerivatives')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESStandardDerivatives"))]]);
   OesStandardDerivatives[dart.owner] = exports;
   OesStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723;
   dart.registerExtension(dart.global.OESStandardDerivatives, OesStandardDerivatives);
@@ -1936,7 +1936,7 @@
   dart.setSignature(OesTextureFloat, {
     constructors: () => ({_: [OesTextureFloat, []]})
   });
-  OesTextureFloat[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureFloat')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureFloat"))];
+  OesTextureFloat[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureFloat')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureFloat"))]]);
   OesTextureFloat[dart.owner] = exports;
   dart.registerExtension(dart.global.OESTextureFloat, OesTextureFloat);
   class OesTextureFloatLinear extends _interceptors.Interceptor {
@@ -1947,7 +1947,7 @@
   dart.setSignature(OesTextureFloatLinear, {
     constructors: () => ({_: [OesTextureFloatLinear, []]})
   });
-  OesTextureFloatLinear[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureFloatLinear')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureFloatLinear"))];
+  OesTextureFloatLinear[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureFloatLinear')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureFloatLinear"))]]);
   OesTextureFloatLinear[dart.owner] = exports;
   dart.registerExtension(dart.global.OESTextureFloatLinear, OesTextureFloatLinear);
   class OesTextureHalfFloatLinear extends _interceptors.Interceptor {
@@ -1958,7 +1958,7 @@
   dart.setSignature(OesTextureHalfFloatLinear, {
     constructors: () => ({_: [OesTextureHalfFloatLinear, []]})
   });
-  OesTextureHalfFloatLinear[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureHalfFloatLinear')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureHalfFloatLinear"))];
+  OesTextureHalfFloatLinear[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESTextureHalfFloatLinear')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESTextureHalfFloatLinear"))]]);
   OesTextureHalfFloatLinear[dart.owner] = exports;
   dart.registerExtension(dart.global.OESTextureHalfFloatLinear, OesTextureHalfFloatLinear);
   dart.defineExtensionNames([
@@ -1993,7 +1993,7 @@
       [dartx.isVertexArray]: [core.bool, [VertexArrayObject]]
     })
   });
-  OesVertexArrayObject[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESVertexArrayObject')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESVertexArrayObject"))];
+  OesVertexArrayObject[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('OESVertexArrayObject')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("OESVertexArrayObject"))]]);
   OesVertexArrayObject[dart.owner] = exports;
   OesVertexArrayObject.VERTEX_ARRAY_BINDING_OES = 34229;
   dart.registerExtension(dart.global.OESVertexArrayObject, OesVertexArrayObject);
@@ -2005,7 +2005,7 @@
   dart.setSignature(Program, {
     constructors: () => ({_: [Program, []]})
   });
-  Program[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLProgram')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLProgram"))];
+  Program[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLProgram')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLProgram"))]]);
   Program[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLProgram, Program);
   class Renderbuffer extends _interceptors.Interceptor {
@@ -2016,7 +2016,7 @@
   dart.setSignature(Renderbuffer, {
     constructors: () => ({_: [Renderbuffer, []]})
   });
-  Renderbuffer[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLRenderbuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLRenderbuffer"))];
+  Renderbuffer[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLRenderbuffer')), dart.const(new _metadata.Unstable()), dart.const(new _js_helper.Native("WebGLRenderbuffer"))]]);
   Renderbuffer[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLRenderbuffer, Renderbuffer);
   class Shader extends _interceptors.Interceptor {
@@ -2027,7 +2027,7 @@
   dart.setSignature(Shader, {
     constructors: () => ({_: [Shader, []]})
   });
-  Shader[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLShader')), dart.const(new _js_helper.Native("WebGLShader"))];
+  Shader[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLShader')), dart.const(new _js_helper.Native("WebGLShader"))]]);
   Shader[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLShader, Shader);
   dart.defineExtensionNames([
@@ -2052,7 +2052,7 @@
   dart.setSignature(ShaderPrecisionFormat, {
     constructors: () => ({_: [ShaderPrecisionFormat, []]})
   });
-  ShaderPrecisionFormat[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLShaderPrecisionFormat')), dart.const(new _js_helper.Native("WebGLShaderPrecisionFormat"))];
+  ShaderPrecisionFormat[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLShaderPrecisionFormat')), dart.const(new _js_helper.Native("WebGLShaderPrecisionFormat"))], 'fields', dart.map(['precision', [dart.const(new _metadata.DomName('WebGLShaderPrecisionFormat.precision')), dart.const(new _metadata.DocsEditable())], 'rangeMax', [dart.const(new _metadata.DomName('WebGLShaderPrecisionFormat.rangeMax')), dart.const(new _metadata.DocsEditable())], 'rangeMin', [dart.const(new _metadata.DomName('WebGLShaderPrecisionFormat.rangeMin')), dart.const(new _metadata.DocsEditable())]])]);
   ShaderPrecisionFormat[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLShaderPrecisionFormat, ShaderPrecisionFormat);
   class Texture extends _interceptors.Interceptor {
@@ -2063,7 +2063,7 @@
   dart.setSignature(Texture, {
     constructors: () => ({_: [Texture, []]})
   });
-  Texture[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLTexture')), dart.const(new _js_helper.Native("WebGLTexture"))];
+  Texture[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLTexture')), dart.const(new _js_helper.Native("WebGLTexture"))]]);
   Texture[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLTexture, Texture);
   class UniformLocation extends _interceptors.Interceptor {
@@ -2074,7 +2074,7 @@
   dart.setSignature(UniformLocation, {
     constructors: () => ({_: [UniformLocation, []]})
   });
-  UniformLocation[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLUniformLocation')), dart.const(new _js_helper.Native("WebGLUniformLocation"))];
+  UniformLocation[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLUniformLocation')), dart.const(new _js_helper.Native("WebGLUniformLocation"))]]);
   UniformLocation[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLUniformLocation, UniformLocation);
   class VertexArrayObject extends _interceptors.Interceptor {
@@ -2085,7 +2085,7 @@
   dart.setSignature(VertexArrayObject, {
     constructors: () => ({_: [VertexArrayObject, []]})
   });
-  VertexArrayObject[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLVertexArrayObjectOES')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLVertexArrayObjectOES"))];
+  VertexArrayObject[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLVertexArrayObjectOES')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("WebGLVertexArrayObjectOES"))]]);
   VertexArrayObject[dart.owner] = exports;
   dart.registerExtension(dart.global.WebGLVertexArrayObjectOES, VertexArrayObject);
   class _WebGLRenderingContextBase extends _interceptors.Interceptor {
@@ -2096,7 +2096,7 @@
   dart.setSignature(_WebGLRenderingContextBase, {
     constructors: () => ({_: [_WebGLRenderingContextBase, []]})
   });
-  _WebGLRenderingContextBase[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLRenderingContextBase')), dart.const(new _metadata.Experimental())];
+  _WebGLRenderingContextBase[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('WebGLRenderingContextBase')), dart.const(new _metadata.Experimental())]]);
   _WebGLRenderingContextBase[dart.owner] = exports;
   // Exports:
   exports.RenderingContext = RenderingContext;
diff --git a/lib/runtime/dart/web_sql.js b/lib/runtime/dart/web_sql.js
index f606a4c..f98e8ab 100644
--- a/lib/runtime/dart/web_sql.js
+++ b/lib/runtime/dart/web_sql.js
@@ -50,7 +50,7 @@
       [dartx.transaction]: [dart.void, [SqlTransactionCallback], [SqlTransactionErrorCallback, html.VoidCallback]]
     })
   });
-  SqlDatabase[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Database')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Database"))];
+  SqlDatabase[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('Database')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("Database"))], 'fields', dart.map(['version', [dart.const(new _metadata.DomName('Database.version')), dart.const(new _metadata.DocsEditable())]])]);
   SqlDatabase[dart.owner] = exports;
   dart.registerExtension(dart.global.Database, SqlDatabase);
   dart.defineExtensionNames([
@@ -71,7 +71,7 @@
   dart.setSignature(SqlError, {
     constructors: () => ({_: [SqlError, []]})
   });
-  SqlError[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLError"))];
+  SqlError[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLError')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLError"))], 'fields', dart.map(['code', [dart.const(new _metadata.DomName('SQLError.code')), dart.const(new _metadata.DocsEditable())], 'message', [dart.const(new _metadata.DomName('SQLError.message')), dart.const(new _metadata.DocsEditable())]])]);
   SqlError[dart.owner] = exports;
   SqlError.CONSTRAINT_ERR = 6;
   SqlError.DATABASE_ERR = 1;
@@ -104,7 +104,7 @@
   dart.setSignature(SqlResultSet, {
     constructors: () => ({_: [SqlResultSet, []]})
   });
-  SqlResultSet[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLResultSet')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLResultSet"))];
+  SqlResultSet[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLResultSet')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLResultSet"))], 'fields', dart.map(['insertId', [dart.const(new _metadata.DomName('SQLResultSet.insertId')), dart.const(new _metadata.DocsEditable())], 'rows', [dart.const(new _metadata.DomName('SQLResultSet.rows')), dart.const(new _metadata.DocsEditable())], 'rowsAffected', [dart.const(new _metadata.DomName('SQLResultSet.rowsAffected')), dart.const(new _metadata.DocsEditable())]])]);
   SqlResultSet[dart.owner] = exports;
   dart.registerExtension(dart.global.SQLResultSet, SqlResultSet);
   const _item_1 = Symbol('_item_1');
@@ -179,7 +179,7 @@
       [_item_1]: [dart.dynamic, [dart.dynamic]]
     })
   });
-  SqlResultSetRowList[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLResultSetRowList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLResultSetRowList"))];
+  SqlResultSetRowList[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLResultSetRowList')), dart.const(new _metadata.Experimental()), dart.const(new _js_helper.Native("SQLResultSetRowList"))], 'properties', dart.map(['length', [dart.const(new _metadata.DomName('SQLResultSetRowList.length')), dart.const(new _metadata.DocsEditable())]])]);
   SqlResultSetRowList[dart.owner] = exports;
   dart.registerExtension(dart.global.SQLResultSetRowList, SqlResultSetRowList);
   dart.defineExtensionNames([
@@ -197,7 +197,7 @@
     constructors: () => ({_: [SqlTransaction, []]}),
     methods: () => ({[dartx.executeSql]: [dart.void, [core.String, core.List$(core.Object)], [SqlStatementCallback, SqlStatementErrorCallback]]})
   });
-  SqlTransaction[dart.metadata] = () => [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLTransaction')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), core.deprecated, dart.const(new _js_helper.Native("SQLTransaction"))];
+  SqlTransaction[dart.metadata] = () => dart.map(['type', [dart.const(new _metadata.DocsEditable()), dart.const(new _metadata.DomName('SQLTransaction')), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.CHROME)), dart.const(new _metadata.SupportedBrowser(_metadata.SupportedBrowser.SAFARI)), dart.const(new _metadata.Experimental()), core.deprecated, dart.const(new _js_helper.Native("SQLTransaction"))]]);
   SqlTransaction[dart.owner] = exports;
   dart.registerExtension(dart.global.SQLTransaction, SqlTransaction);
   // Exports:
diff --git a/lib/runtime/dart_library.js b/lib/runtime/dart_library.js
index 3200ad1..3d9302c 100644
--- a/lib/runtime/dart_library.js
+++ b/lib/runtime/dart_library.js
@@ -139,6 +139,9 @@
       return this.name;
     }
 
+    // TODO(vsm): Should this be installed?
+    Boolean.prototype['&&'] = function (other) { return this && other; };
+
     // TODO(vsm): DOM facades?
     // See: https://github.com/dart-lang/dev_compiler/issues/173
     if (typeof NodeList !== "undefined") {
diff --git a/lib/src/codegen/js_codegen.dart b/lib/src/codegen/js_codegen.dart
index 6117106..cb6d65b 100644
--- a/lib/src/codegen/js_codegen.dart
+++ b/lib/src/codegen/js_codegen.dart
@@ -74,6 +74,11 @@
   /// need storage slots.
   final HashSet<FieldElement> _fieldsNeedingStorage;
 
+  /// Information that indicates which properties are partial overrides of
+  /// superclass properties (e.g., getter-only override of a setter or
+  /// vice-versa).
+  final HashSet<FieldElement> _propertyOverrides;
+
   /// The variable for the target of the current `..` cascade expression.
   ///
   /// Usually a [SimpleIdentifier], but it can also be other expressions
@@ -120,7 +125,7 @@
   bool _isDartRuntime;
 
   JSCodegenVisitor(AbstractCompiler compiler, this.rules, this.currentLibrary,
-      this._extensionTypes, this._fieldsNeedingStorage)
+      this._extensionTypes, this._fieldsNeedingStorage, this._propertyOverrides)
       : compiler = compiler,
         options = compiler.options.codegenOptions,
         _types = compiler.context.typeProvider {
@@ -723,6 +728,31 @@
       } else if (m is MethodDeclaration) {
         jsMethods.add(_emitMethodDeclaration(type, m));
 
+        var methodElement = m.element;
+        if (methodElement is PropertyAccessorElement) {
+          var fieldElement = methodElement.variable;
+          if (_propertyOverrides.contains(fieldElement)) {
+            // Generate a corresponding virtual getter / setter.
+            var name = fieldElement.name;
+            if (m.isGetter) {
+              // Generate a setter
+              var value = new JS.TemporaryId('value');
+              var fn = new JS.Fun(
+                [value], js.statement('{ super.# = #; }', [name, value]));
+                jsMethods.add(new JS.Method(_elementMemberName(methodElement, allowExtensions: _extensionTypes.isExtensionType(type.element)),
+                    fn,
+                    isSetter: true));
+            } else {
+              // Generate a getter
+              var fn = new JS.Fun(
+                [], js.statement('{ return super.#; }', [name]));
+                jsMethods.add(new JS.Method(_elementMemberName(methodElement, allowExtensions: _extensionTypes.isExtensionType(type.element)),
+                fn,
+                isGetter: true));
+            }
+          }
+        }
+
         if (!hasJsPeer && m.isGetter && m.name.name == 'iterator') {
           hasIterator = true;
           jsMethods.add(_emitIterable(type));
@@ -941,12 +971,63 @@
 
     // TODO(vsm): Make this optional per #268.
     // Metadata
-    if (metadata.isNotEmpty) {
-      body.add(js.statement('#[dart.metadata] = () => #;', [
-        name,
-        new JS.ArrayInitializer(
-            new List<JS.Expression>.from(metadata.map(_instantiateAnnotation)))
-      ]));
+    if (true) {
+      // Class metadata
+      var properties = <JS.Expression>[];
+      if (metadata.isNotEmpty) {
+        properties.add(js.string('type', "'"));
+        var typeMetadata = new JS.ArrayInitializer(
+            new List<JS.Expression>.from(metadata.map(_instantiateAnnotation)));
+        properties.add(typeMetadata);
+      }
+
+      // Field metadata
+      var fieldList = <JS.Expression>[];
+      for (FieldDeclaration member in fields) {
+        var fieldMetadata = member.metadata;
+        if (fieldMetadata.isNotEmpty) {
+          var typeMetadata = new JS.ArrayInitializer(
+              new List<JS.Expression>.from(fieldMetadata.map(_instantiateAnnotation)));
+          for (VariableDeclaration field in member.fields.variables) {
+            fieldList.add(js.string(field.name.name, "'"));
+            fieldList.add(typeMetadata);
+          }
+        }
+      }
+      if (fieldList.isNotEmpty) {
+        properties.add(js.string('fields', "'"));
+        var fieldMap = js.call('dart.map(#)', new JS.ArrayInitializer(fieldList));
+        properties.add(fieldMap);
+      }
+
+      // Getter / setter metadata
+      var propertyList = <JS.Expression>[];
+      for (MethodDeclaration node in methods) {
+        if (node.isStatic) continue;
+        if (node.isGetter || node.isSetter) {
+          var methodMetadata = node.metadata;
+          if (methodMetadata.isNotEmpty) {
+            var typeMetadata = new JS.ArrayInitializer(
+                new List<JS.Expression>.from(methodMetadata.map(_instantiateAnnotation)));
+            var name = node.name.name + (node.isSetter ? '=' : '');
+            propertyList.add(js.string(name, "'"));
+            propertyList.add(typeMetadata);
+          }
+        }
+      }
+      if (propertyList.isNotEmpty) {
+        properties.add(js.string('properties', "'"));
+        var getterMap = js.call('dart.map(#)', new JS.ArrayInitializer(propertyList));
+        properties.add(getterMap);
+      }
+
+      if (properties.isNotEmpty) {
+        var metadataList = new JS.ArrayInitializer(properties);
+        var metadataMap = js.call('dart.map(#)', metadataList);
+        body.add(js.statement('#[dart.metadata] = () => #;', [
+          name, metadataMap
+        ]));
+      }
     }
 
     body.add(js.statement('#[dart.owner] = #;', [
@@ -2712,6 +2793,8 @@
         var div = AstBuilder.binaryExpression(left, '/', right)
           ..staticType = node.staticType;
         return _emitSend(div, 'truncate', []);
+      } else if (op.type == TokenType.PERCENT) {
+        code = '(#)[dartx["%"]](#)';
       } else {
         // TODO(vsm): When do Dart ops not map to JS?
         code = '# $op #';
@@ -3879,10 +3962,13 @@
         assert(dir.element != null);
       }
     }
-    var fields = findFieldsNeedingStorage(unit, _extensionTypes);
+
+    var fields = new HashSet<FieldElement>();
+    var propertyOverrides = new HashSet<FieldElement>();
+    findFieldsNeedingStorage(fields, propertyOverrides, unit, _extensionTypes);
     var rules = new StrongTypeSystemImpl();
     var codegen =
-        new JSCodegenVisitor(compiler, rules, library, _extensionTypes, fields);
+        new JSCodegenVisitor(compiler, rules, library, _extensionTypes, fields, propertyOverrides);
     var module = codegen.emitLibrary(unit);
     var out = compiler.getOutputPath(library.source.uri);
     var flags = compiler.options;
diff --git a/lib/src/codegen/js_field_storage.dart b/lib/src/codegen/js_field_storage.dart
index 27f0512..4a6bd55 100644
--- a/lib/src/codegen/js_field_storage.dart
+++ b/lib/src/codegen/js_field_storage.dart
@@ -11,9 +11,10 @@
 
 /// We use a storage slot for fields that override or can be overridden by
 /// getter/setter pairs.
-HashSet<FieldElement> findFieldsNeedingStorage(
+void findFieldsNeedingStorage(
+    HashSet<FieldElement> overrides,
+    HashSet<FieldElement> propertyOverrides,
     LibraryUnit library, ExtensionTypeSet extensionTypes) {
-  var overrides = new HashSet<FieldElement>();
   for (var unit in library.partsThenLibrary) {
     for (var cls in unit.element.types) {
       var superclasses = getSuperclasses(cls);
@@ -22,6 +23,13 @@
           checkForPropertyOverride(
               field, superclasses, overrides, extensionTypes);
         }
+        if (field.isSynthetic) {
+          if (field.setter == null) {
+            checkForPropertyOverride(field, superclasses, propertyOverrides, extensionTypes, checkGetter: false);
+          } else if (field.getter == null) {
+            checkForPropertyOverride(field, superclasses, propertyOverrides, extensionTypes, checkSetter: false);
+          }
+        }
       }
     }
   }
@@ -33,7 +41,8 @@
     FieldElement field,
     List<ClassElement> superclasses,
     HashSet<FieldElement> overrides,
-    ExtensionTypeSet extensionTypes) {
+    ExtensionTypeSet extensionTypes,
+    {bool checkGetter: true, bool checkSetter: true}) {
   assert(!field.isSynthetic);
 
   var library = field.library;
@@ -51,9 +60,14 @@
         break;
       }
 
-      found = true;
-      // Record that the super property is overridden.
-      if (superprop.library == library) overrides.add(superprop);
+      // TODO(vsm): Get rid of redundant check here.
+      if (checkGetter && getter != null && !getter.isAbstract ||
+        checkSetter && setter != null && !setter.isAbstract) {
+          found = true;
+          // TODO(vsm): Why do we need this?
+          // Record that the super property is overridden.
+          if (checkGetter && checkSetter && superprop.library == library) overrides.add(superprop);
+      }
     }
   }
 
diff --git a/tool/input_sdk/private/ddc_runtime/operations.dart b/tool/input_sdk/private/ddc_runtime/operations.dart
index 2cd0b69..615b2ab 100644
--- a/tool/input_sdk/private/ddc_runtime/operations.dart
+++ b/tool/input_sdk/private/ddc_runtime/operations.dart
@@ -130,6 +130,8 @@
 
 /// Shared code for dsend, dindex, and dsetindex. */
 callMethod(obj, name, args, displayName) => JS('', '''(() => {
+  if ($name == 'toString' && args.length == 0) return $toString($obj);
+  if ($name == 'hashCode' && args.length == 0) return $hashCode($obj);
   let symbol = $_canonicalFieldName($obj, $name, $args, $displayName);
   let f = $obj != null ? $obj[symbol] : null;
   let ftype = $getMethodType($obj, $name);
@@ -153,12 +155,15 @@
   // TODO(vsm): Remove this hack ...
   // This is primarily due to the lack of generic methods,
   // but we need to triage all the types.
+  var raw = $getGenericClass($type);
+  if (raw && $isSubtype($actual, raw())) return true;
   if (isSubtype($type, $Iterable) && isSubtype($actual, $Iterable) ||
       isSubtype($type, $Future) && isSubtype($actual, $Future) ||
       isSubtype($type, $Map) && isSubtype($actual, $Map) ||
       isSubtype($type, $Function) && isSubtype($actual, $Function) ||
       isSubtype($type, $Stream) && isSubtype($actual, $Stream) ||
       isSubtype($type, $StreamController) && isSubtype($actual, $StreamController) ||
+      isSubtype($type, $StreamTransformer) && isSubtype($actual, $StreamTransformer) ||
       isSubtype($type, $StreamSubscription) &&
           isSubtype($actual, $StreamSubscription)) {
     if (false) {
diff --git a/tool/input_sdk/private/ddc_runtime/utils.dart b/tool/input_sdk/private/ddc_runtime/utils.dart
index 79bccfd..5b1fe51 100644
--- a/tool/input_sdk/private/ddc_runtime/utils.dart
+++ b/tool/input_sdk/private/ddc_runtime/utils.dart
@@ -89,7 +89,12 @@
   for (let name of $names) {
     var desc = $getOwnPropertyDescriptor($from, name);
     if (desc != void 0) {
-      $defineProperty($to, name, desc);
+      // On native types, Symbol.iterator may already be present.
+      if (name == Symbol.iterator && getOwnPropertyDescriptor($to, name)) {
+        $to[Symbol.iterator] = desc.value;
+      } else {
+        $defineProperty($to, name, desc);
+      }
     } else {
       $defineLazyProperty($to, name, () => $from[name]);
     }
diff --git a/tool/input_sdk/private/js_mirrors.dart b/tool/input_sdk/private/js_mirrors.dart
index 5a42d2a..8a30d5e 100644
--- a/tool/input_sdk/private/js_mirrors.dart
+++ b/tool/input_sdk/private/js_mirrors.dart
@@ -114,16 +114,40 @@
         simpleName = new Symbol(JS('String', '#.name', cls)) {
     // Load metadata.
     var fn = JS('Function', '#[dart.metadata]', _cls);
-    _metadata = (fn == null)
+    Map map = fn == null ? {} : fn();
+    var typedata = map['type'];
+    _metadata = (typedata == null)
         ? <InstanceMirror>[]
         : new List<InstanceMirror>.from(
-            fn().map((i) => new JsInstanceMirror._(i)));
+            typedata.map((i) => new JsInstanceMirror._(i)));
     _owner = new JsLibraryMirror._(JS('', '#[dart.owner]', _cls));
 
+
     // Load declarations.
     // TODO(vsm): This is only populating the default constructor right now.
     _declarations = new Map<Symbol, MethodMirror>();
-    _declarations[simpleName] = new JsMethodMirror._(this, _cls);
+    _declarations[simpleName] = new JsMethodMirror._(this, _cls, []);
+
+    Map properties = map['properties'];
+    if (properties != null) {
+      properties.forEach((String name, List annotations) {
+        var symbol = new Symbol(JS('String', '#', name));
+        var metadata = new List<InstanceMirror>.from(
+            annotations.map((i) => new JsInstanceMirror._(i)));
+        _declarations[symbol] = new JsMethodMirror._(this, null, metadata);
+      });
+    }
+
+    Map fields = map['fields'];
+    if (fields != null) {
+      fields.forEach((String name, List annotations) {
+        var symbol = new Symbol(JS('String', '#', name));
+        var metadata = new List<InstanceMirror>.from(
+            annotations.map((i) => new JsInstanceMirror._(i)));
+        // TODO(vsm): This is an egregious hack.  Create a VariableMirror instead.
+        _declarations[symbol] = new JsMethodMirror._(this, null, metadata);
+      });
+    }
   }
 
   InstanceMirror newInstance(Symbol constructorName, List args,
@@ -288,14 +312,18 @@
   final String _name;
   final dynamic _method;
   List<ParameterMirror> _params;
+  List<InstanceMirror> _metadata;
 
-  JsMethodMirror._(JsClassMirror cls, this._method)
+  JsMethodMirror._(JsClassMirror cls, this._method, this._metadata)
       : _name = getName(cls.simpleName) {
-    var ftype = JS('', '#.classGetConstructorType(#)', _dart, cls._cls);
-    if (ftype == null) {
-      ftype = JS('', '#.classGetConstructorType(#, "new")', _dart, cls._cls);
+    // TODO(vsm): Support non-constructor method types.
+    if (_method != null) {
+      var ftype = JS('', '#.classGetConstructorType(#)', _dart, cls._cls);
+      if (ftype == null) {
+        ftype = JS('', '#.classGetConstructorType(#, "new")', _dart, cls._cls);
+      }
+      _params = _createParameterMirrorList(ftype);
     }
-    _params = _createParameterMirrorList(ftype);
   }
 
   JsMethodMirror._method(dynamic method) : _name = JS('String', '#.name', method), _method = method {
@@ -368,10 +396,7 @@
       throw new UnimplementedError("MethodMirror.isTopLevel unimplemented");
   SourceLocation get location =>
       throw new UnimplementedError("MethodMirror.location unimplemented");
-  List<InstanceMirror> get metadata {
-    // TODO(vsm): Parse and store method metadata
-    return <InstanceMirror>[];
-  }
+  List<InstanceMirror> get metadata => _metadata;
   DeclarationMirror get owner =>
       throw new UnimplementedError("MethodMirror.owner unimplemented");
   Symbol get qualifiedName =>
diff --git a/tool/sdk_expected_errors.txt b/tool/sdk_expected_errors.txt
index 9823770..9349ba2 100644
--- a/tool/sdk_expected_errors.txt
+++ b/tool/sdk_expected_errors.txt
@@ -250,9 +250,9 @@
 severe: [INVALID_METHOD_OVERRIDE] Invalid override. The type of JsLibraryMirror.uri (() → String) is not a subtype of LibraryMirror.uri (() → Uri). (dart:_js_mirrors, line 97, col 3)
 severe: [AnalyzerMessage] The return type 'String' is not assignable to 'Uri' as required by the getter it is overriding from 'LibraryMirror' (dart:_js_mirrors, line 97, col 14)
 severe: [AnalyzerMessage] The final variable '_owner' must be initialized (dart:_js_mirrors, line 112, col 3)
-severe: [AnalyzerMessage] '_owner' cannot be used as a setter, it is final (dart:_js_mirrors, line 121, col 5)
-severe: [AnalyzerMessage] '_method' cannot be used to name a constructor and a field in this class (dart:_js_mirrors, line 301, col 3)
-warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to List<Type> (dart:_js_mirrors, line 149, col 31)
+severe: [AnalyzerMessage] '_owner' cannot be used as a setter, it is final (dart:_js_mirrors, line 123, col 5)
+severe: [AnalyzerMessage] '_method' cannot be used to name a constructor and a field in this class (dart:_js_mirrors, line 329, col 3)
+warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to List<Type> (dart:_js_mirrors, line 173, col 31)
 severe: [AnalyzerMessage] The setter 'href' is not defined for the class 'Element' (dart:html, line 170, col 25)
 severe: [AnalyzerMessage] The final variable 'origin' must be initialized (dart:html, line 178, col 3)
 severe: [AnalyzerMessage] The final variable 'origin' must be initialized (dart:html, line 745, col 3)