{
 'name': 'HTML5',
 'description': 'Generated Tue May 20 23:40:17 CEST 2014 from the HTML5 specifications by the html5index.org generator.',
 'definitions': {
  'BarProp': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'visible': {
     'type': 'boolean',
    },
   },
  },
  'BeforeUnloadEvent': {
   'type': 'object',
   'library': 'Browser',
   'extends': '#descriptions/Event',
   'properties': {
    'returnValue': {
     'type': 'string',
    },
   },
  },
  'ErrorEvent': {
   'type': 'object',
   'library': 'Browser',
   'extends': '#descriptions/Event',
   'properties': {
    'colno': {
     'type': 'number',
    },
    'error': {
     'type': 'object',
    },
    'filename': {
     'type': 'string',
    },
    'lineno': {
     'type': 'number',
    },
    'message': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/ErrorEventInit',
      },
     ],
    },
   ],
  },
  'External': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'AddSearchProvider': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'engineURL',
       'type': 'string',
      },
     ],
    },
    'IsSearchProviderInstalled': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'engineURL',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HashChangeEvent': {
   'type': 'object',
   'library': 'Browser',
   'extends': '#descriptions/Event',
   'properties': {
    'newURL': {
     'type': 'string',
    },
    'oldURL': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/HashChangeEventInit',
      },
     ],
    },
   ],
  },
  'History': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'length': {
     'type': 'number',
    },
    'state': {
     'type': 'object',
    },
    'back': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'forward': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'go': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'delta',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'pushState': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'data',
       'type': 'object',
      },
      {
       'name': 'title',
       'type': 'string',
      },
      {
       'name': 'url',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'replaceState': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'data',
       'type': 'object',
      },
      {
       'name': 'title',
       'type': 'string',
      },
      {
       'name': 'url',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   },
  },
  'ImageBitmap': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'height': {
     'type': 'number',
    },
    'width': {
     'type': 'number',
    },
   },
  },
  'Location': {
   'type': 'object',
   'library': 'Browser',
   'implements' : [
    '#descriptions/URLUtils',
   ],
   'properties': {
    'assign': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
    'reload': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'replace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
   },
  },
  'MimeType': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'description': {
     'type': 'string',
    },
    'enabledPlugin': {
     'type': 'object',
     '$ref': '#descriptions/Plugin',
    },
    'suffixes': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'MimeTypeArray': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/MimeType?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'namedItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/MimeType?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'Navigator': {
   'type': 'object',
   'library': 'Browser',
   'implements' : [
    '#descriptions/NavigatorID',
    '#descriptions/NavigatorLanguage',
    '#descriptions/NavigatorOnLine',
    '#descriptions/NavigatorContentUtils',
    '#descriptions/NavigatorStorageUtils',
    '#descriptions/NavigatorPlugins',
   ],
   'properties': {
    'appCodeName': {
     'type': 'string',
    },
    'appName': {
     'type': 'string',
    },
    'appVersion': {
     'type': 'string',
    },
    'cookieEnabled': {
     'type': 'boolean',
    },
    'javaEnabled': {
     'type': 'boolean',
    },
    'language': {
     'type': 'string',
    },
    'languages': {
     'type': 'object',
     '$ref': '#descriptions/DOMString[]',
    },
    'mimeTypes': {
     'type': 'object',
     '$ref': '#descriptions/MimeTypeArray',
    },
    'onLine': {
     'type': 'boolean',
    },
    'platform': {
     'type': 'string',
    },
    'plugins': {
     'type': 'object',
     '$ref': '#descriptions/PluginArray',
    },
    'product': {
     'type': 'string',
    },
    'userAgent': {
     'type': 'string',
    },
    'isContentHandlerRegistered': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'mimeType',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
    'isProtocolHandlerRegistered': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'scheme',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
    'registerContentHandler': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mimeType',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
      {
       'name': 'title',
       'type': 'string',
      },
     ],
    },
    'registerProtocolHandler': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'scheme',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
      {
       'name': 'title',
       'type': 'string',
      },
     ],
    },
    'taintEnabled': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'unregisterContentHandler': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mimeType',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
    'unregisterProtocolHandler': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'scheme',
       'type': 'string',
      },
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
    'yieldForStorageUpdates': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'PageTransitionEvent': {
   'type': 'object',
   'library': 'Browser',
   'extends': '#descriptions/Event',
   'properties': {
    'persisted': {
     'type': 'boolean',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/PageTransitionEventInit',
      },
     ],
    },
   ],
  },
  'Plugin': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'description': {
     'type': 'string',
    },
    'filename': {
     'type': 'string',
    },
    'length': {
     'type': 'number',
    },
    'name': {
     'type': 'string',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/MimeType?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'namedItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/MimeType?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'PluginArray': {
   'type': 'object',
   'library': 'Browser',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Plugin?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'namedItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Plugin?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'refresh': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'reload',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
   },
  },
  'PopStateEvent': {
   'type': 'object',
   'library': 'Browser',
   'extends': '#descriptions/Event',
   'properties': {
    'state': {
     'type': 'object',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/PopStateEventInit',
      },
     ],
    },
   ],
  },
  'CSS': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'escape': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'ident',
       'type': 'string',
      },
     ],
    },
   },
  },
  'CSSCharsetRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'encoding': {
     'type': 'string',
    },
   },
  },
  'CSSGroupingRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'cssRules': {
     'type': 'object',
     '$ref': '#descriptions/CSSRuleList',
    },
    'deleteRule': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'insertRule': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'rule',
       'type': 'string',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'CSSImportRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'href': {
     'type': 'string',
    },
    'media': {
     'type': 'object',
     '$ref': '#descriptions/MediaList',
    },
    'styleSheet': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleSheet',
    },
   },
  },
  'CSSMarginRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'name': {
     'type': 'string',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
   },
  },
  'CSSMediaRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSGroupingRule',
   'properties': {
    'media': {
     'type': 'object',
     '$ref': '#descriptions/MediaList',
    },
   },
  },
  'CSSNamespaceRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'namespaceURI': {
     'type': 'string',
    },
    'prefix': {
     'type': 'string',
    },
   },
  },
  'CSSPageRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSGroupingRule',
   'properties': {
    'selectorText': {
     'type': 'string',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
   },
  },
  'CSSRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'CHARSET_RULE': {
     'type': 'number',
    },
    'cssText': {
     'type': 'string',
    },
    'FONT_FACE_RULE': {
     'type': 'number',
    },
    'HOST_RULE': {
     'type': 'number',
    },
    'IMPORT_RULE': {
     'type': 'number',
    },
    'MARGIN_RULE': {
     'type': 'number',
    },
    'MEDIA_RULE': {
     'type': 'number',
    },
    'NAMESPACE_RULE': {
     'type': 'number',
    },
    'PAGE_RULE': {
     'type': 'number',
    },
    'parentRule': {
     'type': 'object',
     '$ref': '#descriptions/CSSRule?',
    },
    'parentStyleSheet': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleSheet?',
    },
    'STYLE_RULE': {
     'type': 'number',
    },
    'type': {
     'type': 'number',
    },
   },
  },
  'CSSRuleList': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSRule?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'CSSStyleDeclaration': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    '_camel_cased_attribute': {
     'type': 'string',
    },
    'cssFloat': {
     'type': 'string',
    },
    'cssText': {
     'type': 'string',
    },
    'length': {
     'type': 'number',
    },
    'parentRule': {
     'type': 'object',
     '$ref': '#descriptions/CSSRule?',
    },
    'getPropertyPriority': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
     ],
    },
    'getPropertyValue': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
     ],
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeProperty': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
     ],
    },
    'setProperty': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
      {
       'name': 'value',
       'type': 'string',
      },
      {
       'name': 'priority',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'setPropertyPriority': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
      {
       'name': 'priority',
       'type': 'string',
      },
     ],
    },
    'setPropertyValue': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
      {
       'name': 'value',
       'type': 'string',
      },
     ],
    },
   },
  },
  'CSSStyleRule': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'selectorText': {
     'type': 'string',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
   },
  },
  'CSSStyleSheet': {
   'type': 'object',
   'library': 'CSS Object Model',
   'extends': '#descriptions/StyleSheet',
   'properties': {
    'cssRules': {
     'type': 'object',
     '$ref': '#descriptions/CSSRuleList',
    },
    'ownerRule': {
     'type': 'object',
     '$ref': '#descriptions/CSSRule?',
    },
    'deleteRule': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'insertRule': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'rule',
       'type': 'string',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'MediaList': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'length': {
     'type': 'number',
    },
    'mediaText': {
     'type': 'string',
    },
    'appendMedium': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'medium',
       'type': 'string',
      },
     ],
    },
    'deleteMedium': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'medium',
       'type': 'string',
      },
     ],
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'PseudoElement': {
   'type': 'object',
   'library': 'CSS Object Model',
   'implements' : [
    '#descriptions/GetStyleUtils',
   ],
   'properties': {
    'cascadedStyle': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'rawComputedStyle': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'usedStyle': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
   },
  },
  'StyleSheet': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'disabled': {
     'type': 'boolean',
    },
    'href': {
     'type': 'string',
    },
    'media': {
     'type': 'object',
     '$ref': '#descriptions/MediaList',
    },
    'ownerNode': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'object',
       '$ref': '#descriptions/Element',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/ProcessingInstruction',
      },
     ],
    },
    'parentStyleSheet': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheet?',
    },
    'title': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'StyleSheetList': {
   'type': 'object',
   'library': 'CSS Object Model',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/StyleSheet?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'CanvasGradient': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'addColorStop': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'color',
       'type': 'string',
      },
     ],
    },
   },
  },
  'CanvasPattern': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'setTransform': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'transform',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
   },
  },
  'CanvasProxy': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'setContext': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'context',
       'type': 'object',
       '$ref': '#descriptions/RenderingContext',
      },
     ],
    },
   },
  },
  'CanvasRenderingContext2D': {
   'type': 'object',
   'library': 'Canvas',
   'implements' : [
    '#descriptions/CanvasDrawingStyles',
    '#descriptions/CanvasPathMethods',
   ],
   'properties': {
    'canvas': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCanvasElement',
    },
    'currentTransform': {
     'type': 'object',
     '$ref': '#descriptions/SVGMatrix',
    },
    'direction': {
     'type': 'string',
    },
    'fillStyle': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'string',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/CanvasGradient',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/CanvasPattern',
      },
     ],
    },
    'font': {
     'type': 'string',
    },
    'globalAlpha': {
     'type': 'unrestricted double',
    },
    'globalCompositeOperation': {
     'type': 'string',
    },
    'height': {
     'type': 'number',
    },
    'imageSmoothingEnabled': {
     'type': 'boolean',
    },
    'lineCap': {
     'type': 'string',
    },
    'lineDashOffset': {
     'type': 'unrestricted double',
    },
    'lineJoin': {
     'type': 'string',
    },
    'lineWidth': {
     'type': 'unrestricted double',
    },
    'miterLimit': {
     'type': 'unrestricted double',
    },
    'shadowBlur': {
     'type': 'unrestricted double',
    },
    'shadowColor': {
     'type': 'string',
    },
    'shadowOffsetX': {
     'type': 'unrestricted double',
    },
    'shadowOffsetY': {
     'type': 'unrestricted double',
    },
    'strokeStyle': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'string',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/CanvasGradient',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/CanvasPattern',
      },
     ],
    },
    'textAlign': {
     'type': 'string',
    },
    'textBaseline': {
     'type': 'string',
    },
    'width': {
     'type': 'number',
    },
    'addHitRegion': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'options',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/HitRegionOptions',
      },
     ],
    },
    'arc': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'radius',
       'type': 'unrestricted double',
      },
      {
       'name': 'startAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'endAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'anticlockwise',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'arcTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x1',
       'type': 'unrestricted double',
      },
      {
       'name': 'y1',
       'type': 'unrestricted double',
      },
      {
       'name': 'x2',
       'type': 'unrestricted double',
      },
      {
       'name': 'y2',
       'type': 'unrestricted double',
      },
      {
       'name': 'radius',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusY',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'rotation',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'beginPath': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'bezierCurveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cp1x',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp1y',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp2x',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp2y',
       'type': 'unrestricted double',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'clearRect': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'w',
       'type': 'unrestricted double',
      },
      {
       'name': 'h',
       'type': 'unrestricted double',
      },
     ],
    },
    'clip': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'fillRule_path',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'fillRule',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/CanvasFillRule',
      },
     ],
    },
    'closePath': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'commit': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'createImageData': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ImageData',
     },
     'parameter' : [
      {
       'name': 'sw_imagedata',
       'type': 'object',
      },
      {
       'name': 'sh',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'createLinearGradient': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CanvasGradient',
     },
     'parameter' : [
      {
       'name': 'x0',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y0',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'createPattern': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CanvasPattern',
     },
     'parameter' : [
      {
       'name': 'image',
       'type': 'object',
       '$ref': '#descriptions/CanvasImageSource',
      },
      {
       'name': 'repetition',
       'type': 'string',
      },
     ],
    },
    'createRadialGradient': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CanvasGradient',
     },
     'parameter' : [
      {
       'name': 'x0',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y0',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'r0',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'r1',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'drawCustomFocusRing': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'element_path',
       'type': 'object',
      },
      {
       'name': 'element',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/Element',
      },
     ],
    },
    'drawImage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'image',
       'type': 'object',
       '$ref': '#descriptions/CanvasImageSource',
      },
      {
       'name': 'dx_sx',
       'type': 'unrestricted double',
      },
      {
       'name': 'dy_sy',
       'type': 'unrestricted double',
      },
      {
       'name': 'dw_sw',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'dh_sh',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'dx',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'dy',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'dw',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'dh',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'drawSystemFocusRing': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'element_path',
       'type': 'object',
      },
      {
       'name': 'element',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/Element',
      },
     ],
    },
    'ellipse': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusX',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusY',
       'type': 'unrestricted double',
      },
      {
       'name': 'rotation',
       'type': 'unrestricted double',
      },
      {
       'name': 'startAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'endAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'anticlockwise',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'fill': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'fillRule_path',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'fillRule',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/CanvasFillRule',
      },
     ],
    },
    'fillRect': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'w',
       'type': 'unrestricted double',
      },
      {
       'name': 'h',
       'type': 'unrestricted double',
      },
     ],
    },
    'fillText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'getImageData': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ImageData',
     },
     'parameter' : [
      {
       'name': 'sx',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'sy',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'sw',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'sh',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'getLineDash': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/sequence<unrestricted double>',
     },
     'parameter' : [
     ],
    },
    'isPointInPath': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'x_path',
       'type': 'object',
      },
      {
       'name': 'y_x',
       'type': 'unrestricted double',
      },
      {
       'name': 'fillRule_y',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'fillRule',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/CanvasFillRule',
      },
     ],
    },
    'isPointInStroke': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'x_path',
       'type': 'object',
      },
      {
       'name': 'y_x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'lineTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'measureText': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextMetrics',
     },
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
     ],
    },
    'moveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'putImageData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'imagedata',
       'type': 'object',
       '$ref': '#descriptions/ImageData',
      },
      {
       'name': 'dx',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'dy',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'dirtyX',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'dirtyY',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'dirtyWidth',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'dirtyHeight',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'quadraticCurveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cpx',
       'type': 'unrestricted double',
      },
      {
       'name': 'cpy',
       'type': 'unrestricted double',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'rect': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'w',
       'type': 'unrestricted double',
      },
      {
       'name': 'h',
       'type': 'unrestricted double',
      },
     ],
    },
    'removeHitRegion': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'id',
       'type': 'string',
      },
     ],
    },
    'resetClip': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'resetTransform': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'restore': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'rotate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'angle',
       'type': 'unrestricted double',
      },
     ],
    },
    'save': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'scale': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'scrollPathIntoView': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'path',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/Path2D',
      },
     ],
    },
    'setLineDash': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'segments',
       'type': 'object',
       '$ref': '#descriptions/sequence<unrestricted double>',
      },
     ],
    },
    'setTransform': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'a',
       'type': 'unrestricted double',
      },
      {
       'name': 'b',
       'type': 'unrestricted double',
      },
      {
       'name': 'c',
       'type': 'unrestricted double',
      },
      {
       'name': 'd',
       'type': 'unrestricted double',
      },
      {
       'name': 'e',
       'type': 'unrestricted double',
      },
      {
       'name': 'f',
       'type': 'unrestricted double',
      },
     ],
    },
    'stroke': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'path',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/Path2D',
      },
     ],
    },
    'strokeRect': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'w',
       'type': 'unrestricted double',
      },
      {
       'name': 'h',
       'type': 'unrestricted double',
      },
     ],
    },
    'strokeText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'transform': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'a',
       'type': 'unrestricted double',
      },
      {
       'name': 'b',
       'type': 'unrestricted double',
      },
      {
       'name': 'c',
       'type': 'unrestricted double',
      },
      {
       'name': 'd',
       'type': 'unrestricted double',
      },
      {
       'name': 'e',
       'type': 'unrestricted double',
      },
      {
       'name': 'f',
       'type': 'unrestricted double',
      },
     ],
    },
    'translate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'width',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'height',
       'type': 'number',
      },
     ],
    },
   ],
  },
  'DrawingStyle': {
   'type': 'object',
   'library': 'Canvas',
   'implements' : [
    '#descriptions/CanvasDrawingStyles',
   ],
   'properties': {
    'direction': {
     'type': 'string',
    },
    'font': {
     'type': 'string',
    },
    'lineCap': {
     'type': 'string',
    },
    'lineDashOffset': {
     'type': 'unrestricted double',
    },
    'lineJoin': {
     'type': 'string',
    },
    'lineWidth': {
     'type': 'unrestricted double',
    },
    'miterLimit': {
     'type': 'unrestricted double',
    },
    'textAlign': {
     'type': 'string',
    },
    'textBaseline': {
     'type': 'string',
    },
    'getLineDash': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/sequence<unrestricted double>',
     },
     'parameter' : [
     ],
    },
    'setLineDash': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'segments',
       'type': 'object',
       '$ref': '#descriptions/sequence<unrestricted double>',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'scope',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/Element',
      },
     ],
    },
   ],
  },
  'HTMLCanvasElement': {
   'type': 'object',
   'library': 'Canvas',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'height': {
     'type': 'number',
    },
    'width': {
     'type': 'number',
    },
    'getContext': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/RenderingContext?',
     },
     'parameter' : [
      {
       'name': 'contextId',
       'type': 'string',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'probablySupportsContext': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'contextId',
       'type': 'string',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'setContext': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'context',
       'type': 'object',
       '$ref': '#descriptions/RenderingContext',
      },
     ],
    },
    'toBlob': {
     'type': 'function',
     'parameter' : [
      {
       'name': '_callback',
       'type': 'object',
       '$ref': '#descriptions/FileCallback?',
      },
      {
       'name': 'type',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'toDataURL': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'type',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'transferControlToProxy': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CanvasProxy',
     },
     'parameter' : [
     ],
    },
   },
  },
  'ImageData': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'data': {
     'type': 'object',
     '$ref': '#descriptions/Uint8ClampedArray',
    },
    'height': {
     'type': 'number',
    },
    'width': {
     'type': 'number',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'sw',
       'type': 'number',
      },
      {
       'name': 'sh',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'data',
       'type': 'object',
       '$ref': '#descriptions/Uint8ClampedArray',
      },
      {
       'name': 'sw',
       'type': 'number',
      },
      {
       'name': 'sh',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Path2D': {
   'type': 'object',
   'library': 'Canvas',
   'implements' : [
    '#descriptions/CanvasPathMethods',
   ],
   'properties': {
    'addPath': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'path',
       'type': 'object',
       '$ref': '#descriptions/Path2D',
      },
      {
       'name': 'transformation',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix?',
      },
     ],
    },
    'addPathByStrokingPath': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'path',
       'type': 'object',
       '$ref': '#descriptions/Path2D',
      },
      {
       'name': 'styles',
       'type': 'object',
       '$ref': '#descriptions/CanvasDrawingStyles',
      },
      {
       'name': 'transformation',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix?',
      },
     ],
    },
    'addPathByStrokingText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
      {
       'name': 'styles',
       'type': 'object',
       '$ref': '#descriptions/CanvasDrawingStyles',
      },
      {
       'name': 'transformation',
       'type': 'object',
      },
      {
       'name': 'x_path',
       'type': 'object',
      },
      {
       'name': 'y_maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'addText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
      {
       'name': 'styles',
       'type': 'object',
       '$ref': '#descriptions/CanvasDrawingStyles',
      },
      {
       'name': 'transformation',
       'type': 'object',
      },
      {
       'name': 'x_path',
       'type': 'object',
      },
      {
       'name': 'y_maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'maxWidth',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'arc': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'radius',
       'type': 'unrestricted double',
      },
      {
       'name': 'startAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'endAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'anticlockwise',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'arcTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x1',
       'type': 'unrestricted double',
      },
      {
       'name': 'y1',
       'type': 'unrestricted double',
      },
      {
       'name': 'x2',
       'type': 'unrestricted double',
      },
      {
       'name': 'y2',
       'type': 'unrestricted double',
      },
      {
       'name': 'radius',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusY',
       'optional': true,
       'type': 'unrestricted double',
      },
      {
       'name': 'rotation',
       'optional': true,
       'type': 'unrestricted double',
      },
     ],
    },
    'bezierCurveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cp1x',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp1y',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp2x',
       'type': 'unrestricted double',
      },
      {
       'name': 'cp2y',
       'type': 'unrestricted double',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'closePath': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'ellipse': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusX',
       'type': 'unrestricted double',
      },
      {
       'name': 'radiusY',
       'type': 'unrestricted double',
      },
      {
       'name': 'rotation',
       'type': 'unrestricted double',
      },
      {
       'name': 'startAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'endAngle',
       'type': 'unrestricted double',
      },
      {
       'name': 'anticlockwise',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'lineTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'moveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'quadraticCurveTo': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cpx',
       'type': 'unrestricted double',
      },
      {
       'name': 'cpy',
       'type': 'unrestricted double',
      },
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
     ],
    },
    'rect': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'unrestricted double',
      },
      {
       'name': 'y',
       'type': 'unrestricted double',
      },
      {
       'name': 'w',
       'type': 'unrestricted double',
      },
      {
       'name': 'h',
       'type': 'unrestricted double',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
    {
     'parameter' : [
      {
       'name': 'path',
       'type': 'object',
       '$ref': '#descriptions/Path2D',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'paths',
       'type': 'object',
       '$ref': '#descriptions/Path2D[]',
      },
      {
       'name': 'fillRule',
       'type': 'object',
       '$ref': '#descriptions/CanvasFillRule',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'd',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'TextMetrics': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'actualBoundingBoxAscent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'actualBoundingBoxDescent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'actualBoundingBoxLeft': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'actualBoundingBoxRight': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'alphabeticBaseline': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'emHeightAscent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'emHeightDescent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'fontBoundingBoxAscent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'fontBoundingBoxDescent': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'hangingBaseline': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'ideographicBaseline': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   },
  },
  'Touch': {
   'type': 'object',
   'library': 'Canvas',
   'properties': {
    'region': {
     'type': 'string',
    },
   },
  },
  'Attr': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'localName': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
    'namespaceURI': {
     'type': 'string',
    },
    'prefix': {
     'type': 'string',
    },
    'specified': {
     'type': 'boolean',
    },
    'value': {
     'type': 'string',
    },
   },
  },
  'AutocompleteErrorEvent': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Event',
   'properties': {
    'reason': {
     'type': 'object',
     '$ref': '#descriptions/AutocompleteErrorReason',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/AutocompleteErrorEventInit',
      },
     ],
    },
   ],
  },
  'CharacterData': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Node',
   'implements' : [
    '#descriptions/NonDocumentTypeChildNode',
    '#descriptions/ChildNode',
   ],
   'properties': {
    'data': {
     'type': 'string',
    },
    'length': {
     'type': 'number',
    },
    'nextElementSibling': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'previousElementSibling': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'after': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'appendData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'before': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'deleteData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'number',
      },
      {
       'name': 'count',
       'type': 'number',
      },
     ],
    },
    'insertData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'number',
      },
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'replace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'replaceData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'number',
      },
      {
       'name': 'count',
       'type': 'number',
      },
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'substringData': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'offset',
       'type': 'number',
      },
      {
       'name': 'count',
       'type': 'number',
      },
     ],
    },
   },
  },
  'Comment': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/CharacterData',
   'properties': {
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'data',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   ],
  },
  'CustomEvent': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Event',
   'properties': {
    'detail': {
     'type': 'object',
    },
    'initCustomEvent': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'bubbles',
       'type': 'boolean',
      },
      {
       'name': 'cancelable',
       'type': 'boolean',
      },
      {
       'name': 'detail',
       'type': 'object',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/CustomEventInit',
      },
     ],
    },
   ],
  },
  'DOMError': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'message': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'message',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   ],
  },
  'DOMImplementation': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'createDocument': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/XMLDocument',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'qualifiedName',
       'type': 'string',
      },
      {
       'name': 'doctype',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/DocumentType?',
      },
     ],
    },
    'createDocumentType': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DocumentType',
     },
     'parameter' : [
      {
       'name': 'qualifiedName',
       'type': 'string',
      },
      {
       'name': 'publicId',
       'type': 'string',
      },
      {
       'name': 'systemId',
       'type': 'string',
      },
     ],
    },
    'createHTMLDocument': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Document',
     },
     'parameter' : [
      {
       'name': 'title',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'hasFeature': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
   },
  },
  'DOMSettableTokenList': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/DOMTokenList',
   'properties': {
    'value': {
     'type': 'string',
    },
   },
  },
  'DOMTokenList': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'length': {
     'type': 'number',
    },
    'add': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'tokens',
       'type': 'string',
      },
     ],
    },
    'contains': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'token',
       'type': 'string',
      },
     ],
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'tokens',
       'type': 'string',
      },
     ],
    },
    'toggle': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'token',
       'type': 'string',
      },
      {
       'name': 'force',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
   },
  },
  'Document': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Node',
   'implements' : [
    '#descriptions/NonElementParentNode',
    '#descriptions/ParentNode',
    '#descriptions/GlobalEventHandlers',
   ],
   'properties': {
    'activeElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'body': {
     'type': 'object',
     '$ref': '#descriptions/HTMLElement?',
    },
    'characterSet': {
     'type': 'string',
    },
    'childElementCount': {
     'type': 'number',
    },
    'children': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'commands': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'compatMode': {
     'type': 'string',
    },
    'contentType': {
     'type': 'string',
    },
    'cookie': {
     'type': 'string',
    },
    'cssElementMap': {
     'type': 'object',
     '$ref': '#descriptions/DOMElementMap',
    },
    'currentScript': {
     'type': 'object',
     '$ref': '#descriptions/HTMLScriptElement?',
    },
    'defaultView': {
     'type': 'object',
     '$ref': '#descriptions/WindowProxy?',
    },
    'designMode': {
     'type': 'string',
    },
    'dir': {
     'type': 'string',
    },
    'doctype': {
     'type': 'object',
     '$ref': '#descriptions/DocumentType?',
    },
    'documentElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'documentURI': {
     'type': 'string',
    },
    'domain': {
     'type': 'string',
    },
    'embeds': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'firstElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'forms': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'fullscreenElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'fullscreenEnabled': {
     'type': 'boolean',
    },
    'head': {
     'type': 'object',
     '$ref': '#descriptions/HTMLHeadElement?',
    },
    'images': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'implementation': {
     'type': 'object',
     '$ref': '#descriptions/DOMImplementation',
    },
    'lastElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'lastModified': {
     'type': 'string',
    },
    'lastStyleSheetSet': {
     'type': 'string',
    },
    'links': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'location': {
     'type': 'object',
     '$ref': '#descriptions/Location?',
    },
    'onabort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onautocomplete': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onautocompleteerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onblur': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncancel': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncanplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncanplaythrough': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onclick': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onclose': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncontextmenu': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncuechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondblclick': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondrag': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragend': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragenter': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragexit': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragleave': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragover': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragstart': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondrop': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondurationchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onemptied': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onended': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/OnErrorEventHandler',
    },
    'onfocus': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oninput': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oninvalid': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeydown': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeypress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeyup': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onload': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadeddata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadedmetadata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadstart': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousedown': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseenter': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseleave': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousemove': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseout': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseover': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseup': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousewheel': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpause': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplaying': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpointerlockchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler?',
    },
    'onpointerlockerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler?',
    },
    'onprogress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onratechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onreadystatechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onreset': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onresize': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onscroll': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onseeked': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onseeking': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onselect': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onshow': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onstalled': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsubmit': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsuspend': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ontimeupdate': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ontoggle': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onvolumechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onwaiting': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'origin': {
     'type': 'string',
    },
    'plugins': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'pointerLockElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'preferredStyleSheetSet': {
     'type': 'string',
    },
    'readyState': {
     'type': 'object',
     '$ref': '#descriptions/DocumentReadyState',
    },
    'referrer': {
     'type': 'string',
    },
    'scripts': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'selectedStyleSheetSet': {
     'type': 'string',
    },
    'styleSheets': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheetList',
    },
    'styleSheetSets': {
     'type': 'object',
     '$ref': '#descriptions/DOMString[]',
    },
    'title': {
     'type': 'string',
    },
    'URL': {
     'type': 'string',
    },
    'adoptNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'append': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'createComment': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Comment',
     },
     'parameter' : [
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'createDocumentFragment': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DocumentFragment',
     },
     'parameter' : [
     ],
    },
    'createElement': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element',
     },
     'parameter' : [
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'createElementNS': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'qualifiedName',
       'type': 'string',
      },
     ],
    },
    'createEvent': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Event',
     },
     'parameter' : [
      {
       'name': 'interface',
       'type': 'string',
      },
     ],
    },
    'createNodeIterator': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeIterator',
     },
     'parameter' : [
      {
       'name': 'root',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'whatToShow',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'filter',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/NodeFilter?',
      },
     ],
    },
    'createProcessingInstruction': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ProcessingInstruction',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'string',
      },
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'createRange': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Range',
     },
     'parameter' : [
     ],
    },
    'createTextNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Text',
     },
     'parameter' : [
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'createTreeWalker': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TreeWalker',
     },
     'parameter' : [
      {
       'name': 'root',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'whatToShow',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'filter',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/NodeFilter?',
      },
     ],
    },
    'enableStyleSheetsForSet': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'execCommand': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
      {
       'name': 'showUI',
       'optional': true,
       'type': 'boolean',
      },
      {
       'name': 'value',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'exitFullscreen': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'exitPointerLock': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getElementById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'elementId',
       'type': 'string',
      },
     ],
    },
    'getElementsByClassName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'classNames',
       'type': 'string',
      },
     ],
    },
    'getElementsByName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'elementName',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagNameNS': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'getItems': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'typeNames',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasFocus': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'importNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'deep',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'open': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Document',
     },
     'parameter' : [
      {
       'name': 'type_url',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'replace_name',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'features',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'replace',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'prepend': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'query': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'queryAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Elements',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'queryCommandEnabled': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
     ],
    },
    'queryCommandIndeterm': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
     ],
    },
    'queryCommandState': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
     ],
    },
    'queryCommandSupported': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
     ],
    },
    'queryCommandValue': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'commandId',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'write': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
     ],
    },
    'writeln': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'text',
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'DocumentFragment': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Node',
   'implements' : [
    '#descriptions/NonElementParentNode',
    '#descriptions/ParentNode',
   ],
   'properties': {
    'childElementCount': {
     'type': 'number',
    },
    'children': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'firstElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'lastElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'append': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'getElementById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'elementId',
       'type': 'string',
      },
     ],
    },
    'prepend': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'query': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'queryAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Elements',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'DocumentType': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Node',
   'implements' : [
    '#descriptions/ChildNode',
   ],
   'properties': {
    'name': {
     'type': 'string',
    },
    'publicId': {
     'type': 'string',
    },
    'systemId': {
     'type': 'string',
    },
    'after': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'before': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'replace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
   },
  },
  'Element': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Node',
   'implements' : [
    '#descriptions/ParentNode',
    '#descriptions/NonDocumentTypeChildNode',
    '#descriptions/ChildNode',
   ],
   'properties': {
    'attributes': {
     'type': 'object',
     '$ref': '#descriptions/Attr[]',
    },
    'childElementCount': {
     'type': 'number',
    },
    'children': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'classList': {
     'type': 'object',
     '$ref': '#descriptions/DOMTokenList',
    },
    'className': {
     'type': 'string',
    },
    'firstElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'id': {
     'type': 'string',
    },
    'lastElementChild': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'localName': {
     'type': 'string',
    },
    'namespaceURI': {
     'type': 'string',
    },
    'nextElementSibling': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'prefix': {
     'type': 'string',
    },
    'previousElementSibling': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'pseudo': {
     'type': 'string',
    },
    'shadowRoot': {
     'type': 'object',
     '$ref': '#descriptions/ShadowRoot?',
    },
    'tagName': {
     'type': 'string',
    },
    'after': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'append': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'before': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'createShadowRoot': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ShadowRoot',
     },
     'parameter' : [
     ],
    },
    'getAttribute': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getAttributeNS': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'getElementsByClassName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'classNames',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagNameNS': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLCollection',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'hasAttribute': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasAttributeNS': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'matches': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'prepend': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'pseudo': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/PseudoElement?',
     },
     'parameter' : [
      {
       'name': 'pseudoElt',
       'type': 'string',
      },
     ],
    },
    'query': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'queryAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Elements',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'querySelectorAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'selectors',
       'type': 'string',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'removeAttribute': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'removeAttributeNS': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'replace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'nodes',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/Node',
        },
        {
         'type': 'string',
        },
       ],
      },
     ],
    },
    'requestFullscreen': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'requestPointerLock': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'setAttribute': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'value',
       'type': 'string',
      },
     ],
    },
    'setAttributeNS': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'value',
       'type': 'string',
      },
     ],
    },
   },
  },
  'Elements': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Array',
   'properties': {
    'query': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
    'queryAll': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Elements',
     },
     'parameter' : [
      {
       'name': 'relativeSelectors',
       'type': 'string',
      },
     ],
    },
   },
  },
  'Event': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'AT_TARGET': {
     'type': 'number',
    },
    'bubbles': {
     'type': 'boolean',
    },
    'BUBBLING_PHASE': {
     'type': 'number',
    },
    'cancelable': {
     'type': 'boolean',
    },
    'CAPTURING_PHASE': {
     'type': 'number',
    },
    'currentTarget': {
     'type': 'object',
     '$ref': '#descriptions/EventTarget?',
    },
    'defaultPrevented': {
     'type': 'boolean',
    },
    'eventPhase': {
     'type': 'number',
    },
    'isTrusted': {
     'type': 'boolean',
    },
    'NONE': {
     'type': 'number',
    },
    'target': {
     'type': 'object',
     '$ref': '#descriptions/EventTarget?',
    },
    'timeStamp': {
     'type': 'object',
     '$ref': '#descriptions/DOMTimeStamp',
    },
    'type': {
     'type': 'string',
    },
    'initEvent': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'bubbles',
       'type': 'boolean',
      },
      {
       'name': 'cancelable',
       'type': 'boolean',
      },
     ],
    },
    'preventDefault': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'stopImmediatePropagation': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'stopPropagation': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/EventInit',
      },
     ],
    },
   ],
  },
  'EventTarget': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'addEventListener': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'callback',
       'type': 'object',
       '$ref': '#descriptions/EventListener?',
      },
      {
       'name': 'capture',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'dispatchEvent': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'event',
       'type': 'object',
       '$ref': '#descriptions/Event',
      },
     ],
    },
    'removeEventListener': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'callback',
       'type': 'object',
       '$ref': '#descriptions/EventListener?',
      },
      {
       'name': 'capture',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
   },
  },
  'HTMLAnchorElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'implements' : [
    '#descriptions/URLUtils',
   ],
   'properties': {
    'download': {
     'type': 'string',
    },
    'hreflang': {
     'type': 'string',
    },
    'ping': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'rel': {
     'type': 'string',
    },
    'relList': {
     'type': 'object',
     '$ref': '#descriptions/DOMTokenList',
    },
    'target': {
     'type': 'string',
    },
    'text': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLAreaElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'implements' : [
    '#descriptions/URLUtils',
   ],
   'properties': {
    'alt': {
     'type': 'string',
    },
    'coords': {
     'type': 'string',
    },
    'download': {
     'type': 'string',
    },
    'hreflang': {
     'type': 'string',
    },
    'ping': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'rel': {
     'type': 'string',
    },
    'relList': {
     'type': 'object',
     '$ref': '#descriptions/DOMTokenList',
    },
    'shape': {
     'type': 'string',
    },
    'target': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLBRElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLBaseElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'href': {
     'type': 'string',
    },
    'target': {
     'type': 'string',
    },
   },
  },
  'HTMLBodyElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'implements' : [
    '#descriptions/WindowEventHandlers',
   ],
   'properties': {
    'onafterprint': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onbeforeprint': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onbeforeunload': {
     'type': 'object',
     '$ref': '#descriptions/OnBeforeUnloadEventHandler',
    },
    'onhashchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onlanguagechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onoffline': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ononline': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpagehide': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpageshow': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpopstate': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onstorage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onunload': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
   },
  },
  'HTMLButtonElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'autofocus': {
     'type': 'boolean',
    },
    'disabled': {
     'type': 'boolean',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'formAction': {
     'type': 'string',
    },
    'formEnctype': {
     'type': 'string',
    },
    'formMethod': {
     'type': 'string',
    },
    'formNoValidate': {
     'type': 'boolean',
    },
    'formTarget': {
     'type': 'string',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'menu': {
     'type': 'object',
     '$ref': '#descriptions/HTMLMenuElement?',
    },
    'name': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'value': {
     'type': 'string',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLCollection': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'namedItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLDListElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLDataElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'value': {
     'type': 'string',
    },
   },
  },
  'HTMLDataListElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'options': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
   },
  },
  'HTMLDetailsElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'open': {
     'type': 'boolean',
    },
   },
  },
  'HTMLDialogElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'open': {
     'type': 'boolean',
    },
    'returnValue': {
     'type': 'string',
    },
    'close': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'returnValue',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'show': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'anchor',
       'optional': true,
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/MouseEvent',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/Element',
        },
       ],
      },
     ],
    },
    'showModal': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'anchor',
       'optional': true,
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/MouseEvent',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/Element',
        },
       ],
      },
     ],
    },
   },
  },
  'HTMLDivElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Element',
   'implements' : [
    '#descriptions/GlobalEventHandlers',
    '#descriptions/ElementCSSInlineStyle',
   ],
   'properties': {
    'accessKey': {
     'type': 'string',
    },
    'accessKeyLabel': {
     'type': 'string',
    },
    'commandChecked': {
     'type': 'object',
     '$ref': '#descriptions/boolean?',
    },
    'commandDisabled': {
     'type': 'object',
     '$ref': '#descriptions/boolean?',
    },
    'commandHidden': {
     'type': 'object',
     '$ref': '#descriptions/boolean?',
    },
    'commandIcon': {
     'type': 'string',
    },
    'commandLabel': {
     'type': 'string',
    },
    'commandType': {
     'type': 'string',
    },
    'contentEditable': {
     'type': 'string',
    },
    'contextMenu': {
     'type': 'object',
     '$ref': '#descriptions/HTMLMenuElement?',
    },
    'dataset': {
     'type': 'object',
     '$ref': '#descriptions/DOMStringMap',
    },
    'dir': {
     'type': 'string',
    },
    'draggable': {
     'type': 'boolean',
    },
    'dropzone': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'hidden': {
     'type': 'boolean',
    },
    'isContentEditable': {
     'type': 'boolean',
    },
    'itemId': {
     'type': 'string',
    },
    'itemProp': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'itemRef': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'itemScope': {
     'type': 'boolean',
    },
    'itemType': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'itemValue': {
     'type': 'object',
    },
    'lang': {
     'type': 'string',
    },
    'onabort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onautocomplete': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onautocompleteerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onblur': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncancel': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncanplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncanplaythrough': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onclick': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onclose': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncontextmenu': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncuechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondblclick': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondrag': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragend': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragenter': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragexit': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragleave': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragover': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondragstart': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondrop': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondurationchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onemptied': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onended': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/OnErrorEventHandler',
    },
    'onfocus': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oninput': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oninvalid': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeydown': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeypress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onkeyup': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onload': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadeddata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadedmetadata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadstart': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousedown': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseenter': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseleave': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousemove': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseout': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseover': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmouseup': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmousewheel': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpause': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplaying': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onprogress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onratechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onreset': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onresize': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onscroll': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onseeked': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onseeking': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onselect': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onshow': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onstalled': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsubmit': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsuspend': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ontimeupdate': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ontoggle': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onvolumechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onwaiting': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'properties': {
     'type': 'object',
     '$ref': '#descriptions/HTMLPropertiesCollection',
    },
    'spellcheck': {
     'type': 'boolean',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'tabIndex': {
     'type': 'number',
    },
    'title': {
     'type': 'string',
    },
    'translate': {
     'type': 'boolean',
    },
    'blur': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'click': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'focus': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'forceSpellCheck': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'HTMLEmbedElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'height': {
     'type': 'string',
    },
    'src': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'width': {
     'type': 'string',
    },
    'legacycaller': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
   },
  },
  'HTMLFieldSetElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'disabled': {
     'type': 'boolean',
    },
    'elements': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormControlsCollection',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'name': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLFormElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'acceptCharset': {
     'type': 'string',
    },
    'action': {
     'type': 'string',
    },
    'autocomplete': {
     'type': 'string',
    },
    'elements': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormControlsCollection',
    },
    'encoding': {
     'type': 'string',
    },
    'enctype': {
     'type': 'string',
    },
    'length': {
     'type': 'number',
    },
    'method': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
    'noValidate': {
     'type': 'boolean',
    },
    'target': {
     'type': 'string',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element',
     },
     'parameter' : [
      {
       'name': 'index_name',
       'type': 'object',
      },
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'requestAutocomplete': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'reset': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'submit': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'HTMLHRElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLHeadElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLHeadingElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLHtmlElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLIFrameElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'allowFullscreen': {
     'type': 'boolean',
    },
    'contentDocument': {
     'type': 'object',
     '$ref': '#descriptions/Document?',
    },
    'contentWindow': {
     'type': 'object',
     '$ref': '#descriptions/WindowProxy?',
    },
    'height': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
    'sandbox': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'seamless': {
     'type': 'boolean',
    },
    'src': {
     'type': 'string',
    },
    'srcdoc': {
     'type': 'string',
    },
    'width': {
     'type': 'string',
    },
   },
  },
  'HTMLImageElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'alt': {
     'type': 'string',
    },
    'complete': {
     'type': 'boolean',
    },
    'crossOrigin': {
     'type': 'string',
    },
    'height': {
     'type': 'number',
    },
    'isMap': {
     'type': 'boolean',
    },
    'naturalHeight': {
     'type': 'number',
    },
    'naturalWidth': {
     'type': 'number',
    },
    'src': {
     'type': 'string',
    },
    'srcset': {
     'type': 'string',
    },
    'useMap': {
     'type': 'string',
    },
    'width': {
     'type': 'number',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'width',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'height',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'HTMLInputElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'accept': {
     'type': 'string',
    },
    'alt': {
     'type': 'string',
    },
    'autocomplete': {
     'type': 'string',
    },
    'autofocus': {
     'type': 'boolean',
    },
    'checked': {
     'type': 'boolean',
    },
    'defaultChecked': {
     'type': 'boolean',
    },
    'defaultValue': {
     'type': 'string',
    },
    'dirName': {
     'type': 'string',
    },
    'disabled': {
     'type': 'boolean',
    },
    'files': {
     'type': 'object',
     '$ref': '#descriptions/FileList?',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'formAction': {
     'type': 'string',
    },
    'formEnctype': {
     'type': 'string',
    },
    'formMethod': {
     'type': 'string',
    },
    'formNoValidate': {
     'type': 'boolean',
    },
    'formTarget': {
     'type': 'string',
    },
    'height': {
     'type': 'number',
    },
    'indeterminate': {
     'type': 'boolean',
    },
    'inputMode': {
     'type': 'string',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'list': {
     'type': 'object',
     '$ref': '#descriptions/HTMLElement?',
    },
    'max': {
     'type': 'string',
    },
    'maxLength': {
     'type': 'number',
    },
    'min': {
     'type': 'string',
    },
    'minLength': {
     'type': 'number',
    },
    'multiple': {
     'type': 'boolean',
    },
    'name': {
     'type': 'string',
    },
    'pattern': {
     'type': 'string',
    },
    'placeholder': {
     'type': 'string',
    },
    'readOnly': {
     'type': 'boolean',
    },
    'required': {
     'type': 'boolean',
    },
    'selectionDirection': {
     'type': 'string',
    },
    'selectionEnd': {
     'type': 'number',
    },
    'selectionStart': {
     'type': 'number',
    },
    'size': {
     'type': 'number',
    },
    'src': {
     'type': 'string',
    },
    'step': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'value': {
     'type': 'string',
    },
    'valueAsDate': {
     'type': 'object',
     '$ref': '#descriptions/Date?',
    },
    'valueAsNumber': {
     'type': 'unrestricted double',
    },
    'valueHigh': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'valueLow': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'width': {
     'type': 'number',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'select': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
    'setRangeText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'replacement',
       'type': 'string',
      },
      {
       'name': 'start',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'end',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'selectionMode',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/SelectionMode',
      },
     ],
    },
    'setSelectionRange': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
      {
       'name': 'direction',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'stepDown': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'n',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'stepUp': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'n',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   },
  },
  'HTMLKeygenElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'autofocus': {
     'type': 'boolean',
    },
    'challenge': {
     'type': 'string',
    },
    'disabled': {
     'type': 'boolean',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'keytype': {
     'type': 'string',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'name': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLLIElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'value': {
     'type': 'number',
    },
   },
  },
  'HTMLLabelElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'control': {
     'type': 'object',
     '$ref': '#descriptions/HTMLElement?',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'htmlFor': {
     'type': 'string',
    },
   },
  },
  'HTMLLegendElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
   },
  },
  'HTMLLinkElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'implements' : [
    '#descriptions/LinkStyle',
   ],
   'properties': {
    'crossOrigin': {
     'type': 'string',
    },
    'href': {
     'type': 'string',
    },
    'hreflang': {
     'type': 'string',
    },
    'media': {
     'type': 'string',
    },
    'rel': {
     'type': 'string',
    },
    'relList': {
     'type': 'object',
     '$ref': '#descriptions/DOMTokenList',
    },
    'sheet': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheet?',
    },
    'sizes': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLMapElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'areas': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'images': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'name': {
     'type': 'string',
    },
   },
  },
  'HTMLMenuElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'label': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLMenuItemElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'checked': {
     'type': 'boolean',
    },
    'command': {
     'type': 'object',
     '$ref': '#descriptions/HTMLElement?',
    },
    'default': {
     'type': 'boolean',
    },
    'disabled': {
     'type': 'boolean',
    },
    'icon': {
     'type': 'string',
    },
    'label': {
     'type': 'string',
    },
    'radiogroup': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLMetaElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'content': {
     'type': 'string',
    },
    'httpEquiv': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
   },
  },
  'HTMLMeterElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'high': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'low': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'max': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'min': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'optimum': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'value': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   },
  },
  'HTMLModElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'cite': {
     'type': 'string',
    },
    'dateTime': {
     'type': 'string',
    },
   },
  },
  'HTMLOListElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'reversed': {
     'type': 'boolean',
    },
    'start': {
     'type': 'number',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLObjectElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'contentDocument': {
     'type': 'object',
     '$ref': '#descriptions/Document?',
    },
    'contentWindow': {
     'type': 'object',
     '$ref': '#descriptions/WindowProxy?',
    },
    'data': {
     'type': 'string',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'height': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'typeMustMatch': {
     'type': 'boolean',
    },
    'useMap': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'width': {
     'type': 'string',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'legacycaller': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLOptGroupElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'disabled': {
     'type': 'boolean',
    },
    'label': {
     'type': 'string',
    },
   },
  },
  'HTMLOptionElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'defaultSelected': {
     'type': 'boolean',
    },
    'disabled': {
     'type': 'boolean',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'index': {
     'type': 'number',
    },
    'label': {
     'type': 'string',
    },
    'selected': {
     'type': 'boolean',
    },
    'text': {
     'type': 'string',
    },
    'value': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'text',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'value',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'defaultSelected',
       'optional': true,
       'type': 'boolean',
      },
      {
       'name': 'selected',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
   ],
  },
  'HTMLOutputElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'defaultValue': {
     'type': 'string',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'htmlFor': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'name': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'value': {
     'type': 'string',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLParagraphElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLParamElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'name': {
     'type': 'string',
    },
    'value': {
     'type': 'string',
    },
   },
  },
  'HTMLPreElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLProgressElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'max': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'position': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'value': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   },
  },
  'HTMLQuoteElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'cite': {
     'type': 'string',
    },
   },
  },
  'HTMLScriptElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'async': {
     'type': 'boolean',
    },
    'charset': {
     'type': 'string',
    },
    'crossOrigin': {
     'type': 'string',
    },
    'defer': {
     'type': 'boolean',
    },
    'src': {
     'type': 'string',
    },
    'text': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLSelectElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'autofocus': {
     'type': 'boolean',
    },
    'disabled': {
     'type': 'boolean',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'length': {
     'type': 'number',
    },
    'multiple': {
     'type': 'boolean',
    },
    'name': {
     'type': 'string',
    },
    'options': {
     'type': 'object',
     '$ref': '#descriptions/HTMLOptionsCollection',
    },
    'required': {
     'type': 'boolean',
    },
    'selectedIndex': {
     'type': 'number',
    },
    'selectedOptions': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'size': {
     'type': 'number',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'value': {
     'type': 'string',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'add': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'element',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/HTMLOptionElement',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/HTMLOptGroupElement',
        },
       ],
      },
      {
       'name': 'before',
       'optional': true,
       'type': 'object',
       'oneOf' : [
        {
         'type': 'object',
         '$ref': '#descriptions/HTMLElement',
        },
        {
         'type': 'number',
        },
       ],
      },
     ],
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'namedItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLOptionElement?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
    'setter creator': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
      {
       'name': 'option',
       'type': 'object',
       '$ref': '#descriptions/HTMLOptionElement?',
      },
     ],
    },
   },
  },
  'HTMLSpanElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLStyleElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'implements' : [
    '#descriptions/LinkStyle',
   ],
   'properties': {
    'media': {
     'type': 'string',
    },
    'scoped': {
     'type': 'boolean',
    },
    'sheet': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheet?',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLTableCaptionElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLTableCellElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'cellIndex': {
     'type': 'number',
    },
    'colSpan': {
     'type': 'number',
    },
    'headers': {
     'type': 'object',
     '$ref': '#descriptions/DOMSettableTokenList',
    },
    'rowSpan': {
     'type': 'number',
    },
   },
  },
  'HTMLTableColElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'span': {
     'type': 'number',
    },
   },
  },
  'HTMLTableDataCellElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLTableCellElement',
   'properties': {
   },
  },
  'HTMLTableElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'caption': {
     'type': 'object',
     '$ref': '#descriptions/HTMLTableCaptionElement?',
    },
    'rows': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'sortable': {
     'type': 'boolean',
    },
    'tBodies': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'tFoot': {
     'type': 'object',
     '$ref': '#descriptions/HTMLTableSectionElement?',
    },
    'tHead': {
     'type': 'object',
     '$ref': '#descriptions/HTMLTableSectionElement?',
    },
    'createCaption': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
     ],
    },
    'createTBody': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
     ],
    },
    'createTFoot': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
     ],
    },
    'createTHead': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
     ],
    },
    'deleteCaption': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'deleteRow': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'deleteTFoot': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'deleteTHead': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'insertRow': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
      {
       'name': 'index',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'stopSorting': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'HTMLTableHeaderCellElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLTableCellElement',
   'properties': {
    'abbr': {
     'type': 'string',
    },
    'scope': {
     'type': 'string',
    },
    'sorted': {
     'type': 'string',
    },
    'sort': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'HTMLTableRowElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'cells': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'rowIndex': {
     'type': 'number',
    },
    'sectionRowIndex': {
     'type': 'number',
    },
    'deleteCell': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'insertCell': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
      {
       'name': 'index',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   },
  },
  'HTMLTableSectionElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'rows': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCollection',
    },
    'deleteRow': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'insertRow': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
      {
       'name': 'index',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   },
  },
  'HTMLTemplateElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'content': {
     'type': 'object',
     '$ref': '#descriptions/DocumentFragment',
    },
   },
  },
  'HTMLTextAreaElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'autocomplete': {
     'type': 'string',
    },
    'autofocus': {
     'type': 'boolean',
    },
    'cols': {
     'type': 'number',
    },
    'defaultValue': {
     'type': 'string',
    },
    'dirName': {
     'type': 'string',
    },
    'disabled': {
     'type': 'boolean',
    },
    'form': {
     'type': 'object',
     '$ref': '#descriptions/HTMLFormElement?',
    },
    'inputMode': {
     'type': 'string',
    },
    'labels': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'maxLength': {
     'type': 'number',
    },
    'minLength': {
     'type': 'number',
    },
    'name': {
     'type': 'string',
    },
    'placeholder': {
     'type': 'string',
    },
    'readOnly': {
     'type': 'boolean',
    },
    'required': {
     'type': 'boolean',
    },
    'rows': {
     'type': 'number',
    },
    'selectionDirection': {
     'type': 'string',
    },
    'selectionEnd': {
     'type': 'number',
    },
    'selectionStart': {
     'type': 'number',
    },
    'textLength': {
     'type': 'number',
    },
    'type': {
     'type': 'string',
    },
    'validationMessage': {
     'type': 'string',
    },
    'validity': {
     'type': 'object',
     '$ref': '#descriptions/ValidityState',
    },
    'value': {
     'type': 'string',
    },
    'willValidate': {
     'type': 'boolean',
    },
    'wrap': {
     'type': 'string',
    },
    'checkValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'reportValidity': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'select': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'setCustomValidity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'error',
       'type': 'string',
      },
     ],
    },
    'setRangeText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'replacement',
       'type': 'string',
      },
      {
       'name': 'start',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'end',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'selectionMode',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/SelectionMode',
      },
     ],
    },
    'setSelectionRange': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
      {
       'name': 'direction',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLTimeElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'dateTime': {
     'type': 'string',
    },
   },
  },
  'HTMLTitleElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'text': {
     'type': 'string',
    },
   },
  },
  'HTMLUListElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'HTMLUnknownElement': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
   },
  },
  'MutationObserver': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'disconnect': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'observe': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'options',
       'type': 'object',
       '$ref': '#descriptions/MutationObserverInit',
      },
     ],
    },
    'takeRecords': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/sequence<MutationRecord>',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'callback',
       'type': 'object',
       '$ref': '#descriptions/MutationCallback',
      },
     ],
    },
   ],
  },
  'MutationRecord': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'addedNodes': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'attributeName': {
     'type': 'string',
    },
    'attributeNamespace': {
     'type': 'string',
    },
    'nextSibling': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'oldValue': {
     'type': 'string',
    },
    'previousSibling': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'removedNodes': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'target': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'Node': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'ATTRIBUTE_NODE': {
     'type': 'number',
    },
    'baseURI': {
     'type': 'string',
    },
    'CDATA_SECTION_NODE': {
     'type': 'number',
    },
    'childNodes': {
     'type': 'object',
     '$ref': '#descriptions/NodeList',
    },
    'COMMENT_NODE': {
     'type': 'number',
    },
    'DOCUMENT_FRAGMENT_NODE': {
     'type': 'number',
    },
    'DOCUMENT_NODE': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_CONTAINED_BY': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_CONTAINS': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_DISCONNECTED': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_FOLLOWING': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC': {
     'type': 'number',
    },
    'DOCUMENT_POSITION_PRECEDING': {
     'type': 'number',
    },
    'DOCUMENT_TYPE_NODE': {
     'type': 'number',
    },
    'ELEMENT_NODE': {
     'type': 'number',
    },
    'ENTITY_NODE': {
     'type': 'number',
    },
    'ENTITY_REFERENCE_NODE': {
     'type': 'number',
    },
    'firstChild': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'lastChild': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'nextSibling': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'nodeName': {
     'type': 'string',
    },
    'nodeType': {
     'type': 'number',
    },
    'nodeValue': {
     'type': 'string',
    },
    'NOTATION_NODE': {
     'type': 'number',
    },
    'ownerDocument': {
     'type': 'object',
     '$ref': '#descriptions/Document?',
    },
    'parentElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'parentNode': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'previousSibling': {
     'type': 'object',
     '$ref': '#descriptions/Node?',
    },
    'PROCESSING_INSTRUCTION_NODE': {
     'type': 'number',
    },
    'TEXT_NODE': {
     'type': 'number',
    },
    'textContent': {
     'type': 'string',
    },
    'appendChild': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'cloneNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'deep',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'compareDocumentPosition': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'other',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'contains': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'other',
       'type': 'object',
       '$ref': '#descriptions/Node?',
      },
     ],
    },
    'hasChildNodes': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'insertBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'child',
       'type': 'object',
       '$ref': '#descriptions/Node?',
      },
     ],
    },
    'isDefaultNamespace': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
     ],
    },
    'isEqualNode': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node?',
      },
     ],
    },
    'lookupNamespaceURI': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'prefix',
       'type': 'string',
      },
     ],
    },
    'lookupPrefix': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
     ],
    },
    'normalize': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'removeChild': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'child',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'replaceChild': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'child',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
   },
  },
  'NodeIterator': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'filter': {
     'type': 'object',
     '$ref': '#descriptions/NodeFilter?',
    },
    'pointerBeforeReferenceNode': {
     'type': 'boolean',
    },
    'referenceNode': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'root': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'whatToShow': {
     'type': 'number',
    },
    'detach': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'nextNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'previousNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
   },
  },
  'NodeList': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'ProcessingInstruction': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/CharacterData',
   'implements' : [
    '#descriptions/LinkStyle',
   ],
   'properties': {
    'sheet': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheet?',
    },
    'target': {
     'type': 'string',
    },
   },
  },
  'Range': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'collapsed': {
     'type': 'boolean',
    },
    'commonAncestorContainer': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'END_TO_END': {
     'type': 'number',
    },
    'END_TO_START': {
     'type': 'number',
    },
    'endContainer': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'endOffset': {
     'type': 'number',
    },
    'START_TO_END': {
     'type': 'number',
    },
    'START_TO_START': {
     'type': 'number',
    },
    'startContainer': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'startOffset': {
     'type': 'number',
    },
    'cloneContents': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DocumentFragment',
     },
     'parameter' : [
     ],
    },
    'cloneRange': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Range',
     },
     'parameter' : [
     ],
    },
    'collapse': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'toStart',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'compareBoundaryPoints': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'how',
       'type': 'number',
      },
      {
       'name': 'sourceRange',
       'type': 'object',
       '$ref': '#descriptions/Range',
      },
     ],
    },
    'comparePoint': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'offset',
       'type': 'number',
      },
     ],
    },
    'deleteContents': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'detach': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'extractContents': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DocumentFragment',
     },
     'parameter' : [
     ],
    },
    'insertNode': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'intersectsNode': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'isPointInRange': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'offset',
       'type': 'number',
      },
     ],
    },
    'selectNode': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'selectNodeContents': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'setEnd': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'offset',
       'type': 'number',
      },
     ],
    },
    'setEndAfter': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'setEndBefore': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'setStart': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
      {
       'name': 'offset',
       'type': 'number',
      },
     ],
    },
    'setStartAfter': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'setStartBefore': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'node',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
    'surroundContents': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'newParent',
       'type': 'object',
       '$ref': '#descriptions/Node',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'RelatedEvent': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Event',
   'properties': {
    'relatedTarget': {
     'type': 'object',
     '$ref': '#descriptions/EventTarget?',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/RelatedEventInit',
      },
     ],
    },
   ],
  },
  'Text': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/CharacterData',
   'properties': {
    'wholeText': {
     'type': 'string',
    },
    'splitText': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Text',
     },
     'parameter' : [
      {
       'name': 'offset',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'data',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   ],
  },
  'TreeWalker': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'currentNode': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'filter': {
     'type': 'object',
     '$ref': '#descriptions/NodeFilter?',
    },
    'root': {
     'type': 'object',
     '$ref': '#descriptions/Node',
    },
    'whatToShow': {
     'type': 'number',
    },
    'firstChild': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'lastChild': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'nextNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'nextSibling': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'parentNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'previousNode': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
    'previousSibling': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Node?',
     },
     'parameter' : [
     ],
    },
   },
  },
  'ValidityState': {
   'type': 'object',
   'library': 'DOM',
   'properties': {
    'badInput': {
     'type': 'boolean',
    },
    'customError': {
     'type': 'boolean',
    },
    'patternMismatch': {
     'type': 'boolean',
    },
    'rangeOverflow': {
     'type': 'boolean',
    },
    'rangeUnderflow': {
     'type': 'boolean',
    },
    'stepMismatch': {
     'type': 'boolean',
    },
    'tooLong': {
     'type': 'boolean',
    },
    'tooShort': {
     'type': 'boolean',
    },
    'typeMismatch': {
     'type': 'boolean',
    },
    'valid': {
     'type': 'boolean',
    },
    'valueMissing': {
     'type': 'boolean',
    },
   },
  },
  'XMLDocument': {
   'type': 'object',
   'library': 'DOM',
   'extends': '#descriptions/Document',
   'properties': {
    'load': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
   },
  },
  'DataTransfer': {
   'type': 'object',
   'library': 'Drag and Drop',
   'properties': {
    'dropEffect': {
     'type': 'string',
    },
    'effectAllowed': {
     'type': 'string',
    },
    'files': {
     'type': 'object',
     '$ref': '#descriptions/FileList',
    },
    'items': {
     'type': 'object',
     '$ref': '#descriptions/DataTransferItemList',
    },
    'types': {
     'type': 'object',
     '$ref': '#descriptions/DOMString[]',
    },
    'clearData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'format',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'getData': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'format',
       'type': 'string',
      },
     ],
    },
    'setData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'format',
       'type': 'string',
      },
      {
       'name': 'data',
       'type': 'string',
      },
     ],
    },
    'setDragImage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'image',
       'type': 'object',
       '$ref': '#descriptions/Element',
      },
      {
       'name': 'x',
       'type': 'number',
      },
      {
       'name': 'y',
       'type': 'number',
      },
     ],
    },
   },
  },
  'DataTransferItem': {
   'type': 'object',
   'library': 'Drag and Drop',
   'properties': {
    'kind': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'getAsFile': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/File?',
     },
     'parameter' : [
     ],
    },
    'getAsString': {
     'type': 'function',
     'parameter' : [
      {
       'name': '_callback',
       'type': 'object',
       '$ref': '#descriptions/FunctionStringCallback?',
      },
     ],
    },
   },
  },
  'DataTransferItemList': {
   'type': 'object',
   'library': 'Drag and Drop',
   'properties': {
    'length': {
     'type': 'number',
    },
    'add': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DataTransferItem?',
     },
     'parameter' : [
      {
       'name': 'data',
       'type': 'object',
      },
      {
       'name': 'type',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/DataTransferItem',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'DragEvent': {
   'type': 'object',
   'library': 'Drag and Drop',
   'extends': '#descriptions/MouseEvent',
   'properties': {
    'dataTransfer': {
     'type': 'object',
     '$ref': '#descriptions/DataTransfer?',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/DragEventInit',
      },
     ],
    },
   ],
  },
  'Array': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'length': {
     'type': 'number',
    },
    'concat': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'items',
       'type': 'object',
      },
     ],
    },
    'every': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'thisArg',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'filter': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'thisArg',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'forEach': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'thisArg',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'indexOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'searchElement',
       'type': 'object',
      },
      {
       'name': 'fromIndex',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'isArray': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'arg',
       'type': 'object',
      },
     ],
    },
    'join': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'separator',
       'type': 'string',
      },
     ],
    },
    'lastIndexOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'searchElement',
       'type': 'object',
      },
      {
       'name': 'fromIndex',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'map': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'thisArg',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'pop': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
     ],
    },
    'push': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'items',
       'type': 'object',
      },
     ],
    },
    'reduce': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'initialValue',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'reduceRight': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'initialValue',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'reverse': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
     ],
    },
    'shift': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
     ],
    },
    'slice': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
    'some': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'callbackfn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
      {
       'name': 'thisArg',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'sort': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'compareFn',
       'type': 'object',
       '$ref': '#descriptions/Function',
      },
     ],
    },
    'splice': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'deleteCount',
       'type': 'number',
      },
      {
       'name': 'items',
       'type': 'object',
      },
     ],
    },
    'toLocaleString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'unshift': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'items',
       'type': 'object',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'params',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'size',
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Boolean': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'valueOf': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
   ],
  },
  'Date': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'getDate': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getDay': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getFullYear': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getHours': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getMilliseconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getMinutes': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getMonth': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getSeconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getTime': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getTimezoneOffset': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCDate': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCDay': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCFullYear': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCHours': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCMilliseconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCMinutes': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCMonth': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getUTCSeconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'now': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Date',
     },
     'parameter' : [
     ],
    },
    'setDate': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'date',
       'type': 'number',
      },
     ],
    },
    'setFullYear': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'year',
       'type': 'number',
      },
      {
       'name': 'month',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setHours': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'hour',
       'type': 'number',
      },
      {
       'name': 'min',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'sec',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setMilliseconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'ms',
       'type': 'number',
      },
     ],
    },
    'setMinutes': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'min',
       'type': 'number',
      },
      {
       'name': 'sec',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setMonth': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'month',
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setSeconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'sec',
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setTime': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'time',
       'type': 'number',
      },
     ],
    },
    'setUTCDate': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'date',
       'type': 'number',
      },
     ],
    },
    'setUTCFullYear': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'year',
       'type': 'number',
      },
      {
       'name': 'month',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setUTCHours': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'hour',
       'type': 'number',
      },
      {
       'name': 'min',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'sec',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setUTCMilliseconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'ms',
       'type': 'number',
      },
     ],
    },
    'setUTCMinutes': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'min',
       'type': 'number',
      },
      {
       'name': 'sec',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setUTCMonth': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'month',
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'setUTCSeconds': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'sec',
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'toDateString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toISOString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toJSON': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'object',
      },
     ],
    },
    'toLocaleDateString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toLocaleString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toLocaleTimeString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toTimeString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toUTCString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'UTC': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Date',
     },
     'parameter' : [
      {
       'name': 'year',
       'type': 'number',
      },
      {
       'name': 'month',
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'hours',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'minutes',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'seconds',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'valueOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
    {
     'parameter' : [
      {
       'name': 'year',
       'type': 'number',
      },
      {
       'name': 'month',
       'type': 'number',
      },
      {
       'name': 'date',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'hours',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'minutes',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'seconds',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'ms',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Error': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'message': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'message',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'Function': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'length': {
     'type': 'number',
    },
    'apply': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'thisArg',
       'type': 'object',
      },
      {
       'name': 'argArray',
       'type': 'array',
      },
     ],
    },
    'bind': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'thisArg',
       'type': 'object',
      },
      {
       'name': 'args',
       'type': 'object',
      },
     ],
    },
    'call': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'thisArg',
       'type': 'object',
      },
      {
       'name': 'args',
       'type': 'object',
      },
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'paramsAndBody',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'JSON': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'parse': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'json',
       'type': 'string',
      },
     ],
    },
    'stringify': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
      {
       'name': 'replacer',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'space',
       'optional': true,
       'type': 'object',
      },
     ],
    },
   },
  },
  'Math': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'E': {
     'type': 'number',
    },
    'LN10': {
     'type': 'number',
    },
    'LN2': {
     'type': 'number',
    },
    'LOG10E': {
     'type': 'number',
    },
    'LOG2E': {
     'type': 'number',
    },
    'PI': {
     'type': 'number',
    },
    'SQRT1_2': {
     'type': 'number',
    },
    'SQRT2': {
     'type': 'number',
    },
    'abs': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'acos': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'asin': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'atan': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'atan2': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'y',
       'type': 'number',
      },
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'ceil': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'cos': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'exp': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'floor': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'log': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'max': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'values',
       'type': 'number',
      },
     ],
    },
    'min': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'values',
       'type': 'number',
      },
     ],
    },
    'pow': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
      {
       'name': 'y',
       'type': 'number',
      },
     ],
    },
    'random': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'round': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'sin': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'sqrt': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
    'tan': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'number',
      },
     ],
    },
   },
  },
  'Number': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'MAX_VALUE': {
     'type': 'number',
    },
    'MIN_VALUE': {
     'type': 'number',
    },
    'NaN': {
     'type': 'number',
    },
    'NEGATIVE_INFINITY': {
     'type': 'number',
    },
    'POSITIVE_INFINITY': {
     'type': 'number',
    },
    'toExponential': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'fractionDigits',
       'type': 'number',
      },
     ],
    },
    'toFixed': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'fractionDigits',
       'type': 'number',
      },
     ],
    },
    'toLocaleString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toPrecision': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'precision',
       'type': 'number',
      },
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'radix',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'valueOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
   ],
  },
  'Object': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'create': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
      {
       'name': 'properties',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'defineProperties': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
      {
       'name': 'props',
       'type': 'object',
      },
     ],
    },
    'defineProperty': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
      {
       'name': 'p',
       'type': 'string',
      },
      {
       'name': 'attrs',
       'type': 'object',
      },
     ],
    },
    'freeze': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'getOwnPropertyDescriptor': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
      {
       'name': 'p',
       'type': 'string',
      },
     ],
    },
    'getOwnPropertyNames': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/string[]',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'getPrototypeOf': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'hasOwnProperty': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'property',
       'type': 'string',
      },
     ],
    },
    'isExtensible': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'isFrozen': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'isPrototypeOf': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'isSealed': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'keys': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/string[]',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'preventExtensions': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'propertyIsEnumerable': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'p',
       'type': 'string',
      },
     ],
    },
    'seal': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'o',
       'type': 'object',
      },
     ],
    },
    'toLocaleString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'valueOf': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'value',
       'optional': true,
       'type': 'object',
      },
     ],
    },
   ],
  },
  'RegExp': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'global': {
     'type': 'boolean',
    },
    'ignoreCase': {
     'type': 'boolean',
    },
    'lastIndex': {
     'type': 'number',
    },
    'multiline': {
     'type': 'boolean',
    },
    'source': {
     'type': 'string',
    },
    'test': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 's',
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'pattern',
       'type': 'object',
      },
      {
       'name': 'flags',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'String': {
   'type': 'object',
   'library': 'ECMAScript',
   'properties': {
    'length': {
     'type': 'number',
    },
    'charAt': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'pos',
       'type': 'number',
      },
     ],
    },
    'charCodeAt': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'pos',
       'type': 'number',
      },
     ],
    },
    'concat': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'strings',
       'type': 'string',
      },
     ],
    },
    'fromCharCode': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'chars',
       'type': 'number',
      },
     ],
    },
    'indexOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'searchString',
       'type': 'string',
      },
      {
       'name': 'position',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'lastIndexOf': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'searchString',
       'type': 'string',
      },
      {
       'name': 'position',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'localeCompare': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'that',
       'type': 'string',
      },
     ],
    },
    'match': {
     'type': 'function',
     'returns': {
      'type': 'array',
     },
     'parameter' : [
      {
       'name': 'regexp',
       'type': 'object',
      },
     ],
    },
    'replace': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'searchValue',
       'type': 'string',
      },
      {
       'name': 'replaceValue',
       'type': 'string',
      },
     ],
    },
    'search': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'regexp',
       'type': 'object',
      },
     ],
    },
    'slice': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
    'split': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'separator',
       'type': 'string',
      },
      {
       'name': 'limit',
       'type': 'number',
      },
     ],
    },
    'substring': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
    'toLocaleLowerCase': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toLocaleUpperCase': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toLowerCase': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toString': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'toUpperCase': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'trim': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
    'valueOf': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
   ],
  },
  'Blob': {
   'type': 'object',
   'library': 'File API',
   'properties': {
    'size': {
     'type': 'number',
    },
    'type': {
     'type': 'string',
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'slice': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Blob',
     },
     'parameter' : [
      {
       'name': 'start',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'end',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'contentType',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
    {
     'parameter' : [
      {
       'name': 'blobParts',
       'type': 'object',
       '$ref': '#descriptions/sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)>',
      },
      {
       'name': 'options',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/BlobPropertyBag',
      },
     ],
    },
   ],
  },
  'File': {
   'type': 'object',
   'library': 'File API',
   'extends': '#descriptions/Blob',
   'properties': {
    'lastModifiedDate': {
     'type': 'object',
     '$ref': '#descriptions/Date',
    },
    'name': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'fileBits',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
      {
       'name': 'fileName',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'FileList': {
   'type': 'object',
   'library': 'File API',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/File?',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'FileReader': {
   'type': 'object',
   'library': 'File API',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'DONE': {
     'type': 'number',
    },
    'EMPTY': {
     'type': 'number',
    },
    'error': {
     'type': 'object',
     '$ref': '#descriptions/DOMError?',
    },
    'LOADING': {
     'type': 'number',
    },
    'onabort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onload': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadend': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadstart': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onprogress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'readyState': {
     'type': 'number',
    },
    'result': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'string',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
     ],
    },
    'abort': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'readAsArrayBuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'readAsDataURL': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'readAsText': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
      {
       'name': 'label',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'FileReaderSync': {
   'type': 'object',
   'library': 'File API',
   'properties': {
    'readAsArrayBuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ArrayBuffer',
     },
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'readAsDataURL': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'readAsText': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
      {
       'name': 'label',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'URL': {
   'type': 'object',
   'library': 'File API',
   'properties': {
    'createFor': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'createObjectURL': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'blob',
       'type': 'object',
       '$ref': '#descriptions/Blob',
      },
     ],
    },
    'revokeObjectURL': {
     'type': 'function',
     'static': true,
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
     ],
    },
   },
  },
  'IDBCursor': {
   'type': 'object',
   'library': 'Indexed DB',
   'properties': {
    'direction': {
     'type': 'object',
     '$ref': '#descriptions/IDBCursorDirection',
    },
    'key': {
     'type': 'object',
    },
    'primaryKey': {
     'type': 'object',
    },
    'source': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'object',
       '$ref': '#descriptions/IDBObjectStore',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/IDBIndex',
      },
     ],
    },
    'advance': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'count',
       'type': 'number',
      },
     ],
    },
    'continue': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'key',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'delete': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
     ],
    },
    'update': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
   },
  },
  'IDBCursorWithValue': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/IDBCursor',
   'properties': {
    'value': {
     'type': 'object',
    },
   },
  },
  'IDBDatabase': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'name': {
     'type': 'string',
    },
    'objectStoreNames': {
     'type': 'object',
     '$ref': '#descriptions/DOMStringList',
    },
    'onabort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onversionchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'version': {
     'type': 'number',
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'createObjectStore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBObjectStore',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'optionalParameters',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBObjectStoreParameters',
      },
     ],
    },
    'deleteObjectStore': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'transaction': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBTransaction',
     },
     'parameter' : [
      {
       'name': 'storeNames',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'string',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/sequence<DOMString>',
        },
       ],
      },
      {
       'name': 'mode',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBTransactionMode',
      },
     ],
    },
   },
  },
  'IDBFactory': {
   'type': 'object',
   'library': 'Indexed DB',
   'properties': {
    'cmp': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'first',
       'type': 'object',
      },
      {
       'name': 'second',
       'type': 'object',
      },
     ],
    },
    'deleteDatabase': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBOpenDBRequest',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'open': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBOpenDBRequest',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'version',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   },
  },
  'IDBIndex': {
   'type': 'object',
   'library': 'Indexed DB',
   'properties': {
    'keyPath': {
     'type': 'object',
    },
    'multiEntry': {
     'type': 'boolean',
    },
    'name': {
     'type': 'string',
    },
    'objectStore': {
     'type': 'object',
     '$ref': '#descriptions/IDBObjectStore',
    },
    'unique': {
     'type': 'boolean',
    },
    'count': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'object',
      },
     ],
    },
    'getKey': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'object',
      },
     ],
    },
    'openCursor': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'range',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'direction',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBCursorDirection',
      },
     ],
    },
    'openKeyCursor': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'range',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'direction',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBCursorDirection',
      },
     ],
    },
   },
  },
  'IDBKeyRange': {
   'type': 'object',
   'library': 'Indexed DB',
   'properties': {
    'lower': {
     'type': 'object',
    },
    'lowerOpen': {
     'type': 'boolean',
    },
    'upper': {
     'type': 'object',
    },
    'upperOpen': {
     'type': 'boolean',
    },
    'bound': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBKeyRange',
     },
     'parameter' : [
      {
       'name': 'lower',
       'type': 'object',
      },
      {
       'name': 'upper',
       'type': 'object',
      },
      {
       'name': 'lowerOpen',
       'optional': true,
       'type': 'boolean',
      },
      {
       'name': 'upperOpen',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'lowerBound': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBKeyRange',
     },
     'parameter' : [
      {
       'name': 'lower',
       'type': 'object',
      },
      {
       'name': 'open',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'only': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBKeyRange',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
    'upperBound': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBKeyRange',
     },
     'parameter' : [
      {
       'name': 'upper',
       'type': 'object',
      },
      {
       'name': 'open',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
   },
  },
  'IDBObjectStore': {
   'type': 'object',
   'library': 'Indexed DB',
   'properties': {
    'autoIncrement': {
     'type': 'boolean',
    },
    'indexNames': {
     'type': 'object',
     '$ref': '#descriptions/DOMStringList',
    },
    'keyPath': {
     'type': 'object',
    },
    'name': {
     'type': 'string',
    },
    'transaction': {
     'type': 'object',
     '$ref': '#descriptions/IDBTransaction',
    },
    'add': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
      {
       'name': 'key',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
     ],
    },
    'count': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'createIndex': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBIndex',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
      {
       'name': 'keyPath',
       'type': 'object',
       'oneOf' : [
        {
         'type': 'string',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/sequence<DOMString>',
        },
       ],
      },
      {
       'name': 'optionalParameters',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBIndexParameters',
      },
     ],
    },
    'delete': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'object',
      },
     ],
    },
    'deleteIndex': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indexName',
       'type': 'string',
      },
     ],
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'object',
      },
     ],
    },
    'index': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBIndex',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'openCursor': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'range',
       'optional': true,
       'type': 'object',
      },
      {
       'name': 'direction',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBCursorDirection',
      },
     ],
    },
    'put': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBRequest',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
      {
       'name': 'key',
       'optional': true,
       'type': 'object',
      },
     ],
    },
   },
  },
  'IDBOpenDBRequest': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/IDBRequest',
   'properties': {
    'onblocked': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onupgradeneeded': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
   },
  },
  'IDBRequest': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'error': {
     'type': 'object',
     '$ref': '#descriptions/DOMError',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onsuccess': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'readyState': {
     'type': 'object',
     '$ref': '#descriptions/IDBRequestReadyState',
    },
    'result': {
     'type': 'object',
    },
    'source': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'object',
       '$ref': '#descriptions/IDBObjectStore',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/IDBIndex',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/IDBCursor',
      },
     ],
    },
    'transaction': {
     'type': 'object',
     '$ref': '#descriptions/IDBTransaction',
    },
   },
  },
  'IDBTransaction': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'db': {
     'type': 'object',
     '$ref': '#descriptions/IDBDatabase',
    },
    'error': {
     'type': 'object',
     '$ref': '#descriptions/DOMError',
    },
    'mode': {
     'type': 'object',
     '$ref': '#descriptions/IDBTransactionMode',
    },
    'onabort': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncomplete': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'abort': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'objectStore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/IDBObjectStore',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'IDBVersionChangeEvent': {
   'type': 'object',
   'library': 'Indexed DB',
   'extends': '#descriptions/Event',
   'properties': {
    'newVersion': {
     'type': 'object',
     '$ref': '#descriptions/unsigned long long?',
    },
    'oldVersion': {
     'type': 'number',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/IDBVersionChangeEventInit',
      },
     ],
    },
   ],
  },
  'AudioTrack': {
   'type': 'object',
   'library': 'Media',
   'properties': {
    'enabled': {
     'type': 'boolean',
    },
    'id': {
     'type': 'string',
    },
    'kind': {
     'type': 'string',
    },
    'label': {
     'type': 'string',
    },
    'language': {
     'type': 'string',
    },
   },
  },
  'AudioTrackList': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'length': {
     'type': 'number',
    },
    'onaddtrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onremovetrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/AudioTrack',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'getTrackById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/AudioTrack?',
     },
     'parameter' : [
      {
       'name': 'id',
       'type': 'string',
      },
     ],
    },
   },
  },
  'HTMLAudioElement': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/HTMLMediaElement',
   'properties': {
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'src',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   ],
  },
  'HTMLMediaElement': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'audioTracks': {
     'type': 'object',
     '$ref': '#descriptions/AudioTrackList',
    },
    'autoplay': {
     'type': 'boolean',
    },
    'buffered': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'controller': {
     'type': 'object',
     '$ref': '#descriptions/MediaController?',
    },
    'controls': {
     'type': 'boolean',
    },
    'crossOrigin': {
     'type': 'string',
    },
    'currentSrc': {
     'type': 'string',
    },
    'currentTime': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'defaultMuted': {
     'type': 'boolean',
    },
    'defaultPlaybackRate': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'duration': {
     'type': 'unrestricted double',
    },
    'ended': {
     'type': 'boolean',
    },
    'error': {
     'type': 'object',
     '$ref': '#descriptions/MediaError?',
    },
    'HAVE_CURRENT_DATA': {
     'type': 'number',
    },
    'HAVE_ENOUGH_DATA': {
     'type': 'number',
    },
    'HAVE_FUTURE_DATA': {
     'type': 'number',
    },
    'HAVE_METADATA': {
     'type': 'number',
    },
    'HAVE_NOTHING': {
     'type': 'number',
    },
    'loop': {
     'type': 'boolean',
    },
    'mediaGroup': {
     'type': 'string',
    },
    'muted': {
     'type': 'boolean',
    },
    'NETWORK_EMPTY': {
     'type': 'number',
    },
    'NETWORK_IDLE': {
     'type': 'number',
    },
    'NETWORK_LOADING': {
     'type': 'number',
    },
    'NETWORK_NO_SOURCE': {
     'type': 'number',
    },
    'networkState': {
     'type': 'number',
    },
    'paused': {
     'type': 'boolean',
    },
    'playbackRate': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'played': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'preload': {
     'type': 'string',
    },
    'readyState': {
     'type': 'number',
    },
    'seekable': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'seeking': {
     'type': 'boolean',
    },
    'src': {
     'type': 'string',
    },
    'textTracks': {
     'type': 'object',
     '$ref': '#descriptions/TextTrackList',
    },
    'videoTracks': {
     'type': 'object',
     '$ref': '#descriptions/VideoTrackList',
    },
    'volume': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'addTextTrack': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextTrack',
     },
     'parameter' : [
      {
       'name': 'kind',
       'type': 'object',
       '$ref': '#descriptions/TextTrackKind',
      },
      {
       'name': 'label',
       'optional': true,
       'type': 'string',
      },
      {
       'name': 'language',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'canPlayType': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CanPlayTypeResult',
     },
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
     ],
    },
    'fastSeek': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'time',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'getStartDate': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Date',
     },
     'parameter' : [
     ],
    },
    'load': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'pause': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'play': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'HTMLSourceElement': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'src': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'HTMLTrackElement': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'default': {
     'type': 'boolean',
    },
    'ERROR': {
     'type': 'number',
    },
    'kind': {
     'type': 'string',
    },
    'label': {
     'type': 'string',
    },
    'LOADED': {
     'type': 'number',
    },
    'LOADING': {
     'type': 'number',
    },
    'NONE': {
     'type': 'number',
    },
    'readyState': {
     'type': 'number',
    },
    'src': {
     'type': 'string',
    },
    'srclang': {
     'type': 'string',
    },
    'track': {
     'type': 'object',
     '$ref': '#descriptions/TextTrack',
    },
   },
  },
  'HTMLVideoElement': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/HTMLMediaElement',
   'properties': {
    'height': {
     'type': 'number',
    },
    'poster': {
     'type': 'string',
    },
    'videoHeight': {
     'type': 'number',
    },
    'videoWidth': {
     'type': 'number',
    },
    'width': {
     'type': 'number',
    },
   },
  },
  'MediaController': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'buffered': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'currentTime': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'defaultPlaybackRate': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'duration': {
     'type': 'unrestricted double',
    },
    'muted': {
     'type': 'boolean',
    },
    'oncanplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'oncanplaythrough': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondurationchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onemptied': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onended': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadeddata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onloadedmetadata': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onpause': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplay': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onplaying': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onratechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ontimeupdate': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onvolumechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onwaiting': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'paused': {
     'type': 'boolean',
    },
    'playbackRate': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'playbackState': {
     'type': 'object',
     '$ref': '#descriptions/MediaControllerPlaybackState',
    },
    'played': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'readyState': {
     'type': 'number',
    },
    'seekable': {
     'type': 'object',
     '$ref': '#descriptions/TimeRanges',
    },
    'volume': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'pause': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'play': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'unpause': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'MediaError': {
   'type': 'object',
   'library': 'Media',
   'properties': {
    'code': {
     'type': 'number',
    },
    'MEDIA_ERR_ABORTED': {
     'type': 'number',
    },
    'MEDIA_ERR_DECODE': {
     'type': 'number',
    },
    'MEDIA_ERR_NETWORK': {
     'type': 'number',
    },
    'MEDIA_ERR_SRC_NOT_SUPPORTED': {
     'type': 'number',
    },
   },
  },
  'TextTrack': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'activeCues': {
     'type': 'object',
     '$ref': '#descriptions/TextTrackCueList?',
    },
    'cues': {
     'type': 'object',
     '$ref': '#descriptions/TextTrackCueList?',
    },
    'id': {
     'type': 'string',
    },
    'inBandMetadataTrackDispatchType': {
     'type': 'string',
    },
    'kind': {
     'type': 'object',
     '$ref': '#descriptions/TextTrackKind',
    },
    'label': {
     'type': 'string',
    },
    'language': {
     'type': 'string',
    },
    'mode': {
     'type': 'object',
     '$ref': '#descriptions/TextTrackMode',
    },
    'oncuechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'addCue': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cue',
       'type': 'object',
       '$ref': '#descriptions/TextTrackCue',
      },
     ],
    },
    'removeCue': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cue',
       'type': 'object',
       '$ref': '#descriptions/TextTrackCue',
      },
     ],
    },
   },
  },
  'TextTrackCue': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'endTime': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'id': {
     'type': 'string',
    },
    'onenter': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onexit': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'pauseOnExit': {
     'type': 'boolean',
    },
    'startTime': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'track': {
     'type': 'object',
     '$ref': '#descriptions/TextTrack?',
    },
   },
  },
  'TextTrackCueList': {
   'type': 'object',
   'library': 'Media',
   'properties': {
    'length': {
     'type': 'number',
    },
    'getCueById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextTrackCue?',
     },
     'parameter' : [
      {
       'name': 'id',
       'type': 'string',
      },
     ],
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextTrackCue',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'TextTrackList': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'length': {
     'type': 'number',
    },
    'onaddtrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onremovetrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextTrack',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'getTrackById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/TextTrack?',
     },
     'parameter' : [
      {
       'name': 'id',
       'type': 'string',
      },
     ],
    },
   },
  },
  'TimeRanges': {
   'type': 'object',
   'library': 'Media',
   'properties': {
    'length': {
     'type': 'number',
    },
    'end': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/double',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'start': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/double',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'TrackEvent': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/Event',
   'properties': {
    'track': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'object',
       '$ref': '#descriptions/VideoTrack',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/AudioTrack',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/TextTrack',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/TrackEventInit',
      },
     ],
    },
   ],
  },
  'VideoTrack': {
   'type': 'object',
   'library': 'Media',
   'properties': {
    'id': {
     'type': 'string',
    },
    'kind': {
     'type': 'string',
    },
    'label': {
     'type': 'string',
    },
    'language': {
     'type': 'string',
    },
    'selected': {
     'type': 'boolean',
    },
   },
  },
  'VideoTrackList': {
   'type': 'object',
   'library': 'Media',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'length': {
     'type': 'number',
    },
    'onaddtrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onremovetrack': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'selectedIndex': {
     'type': 'number',
    },
    'getter': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/VideoTrack',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'getTrackById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/VideoTrack?',
     },
     'parameter' : [
      {
       'name': 'id',
       'type': 'string',
      },
     ],
    },
   },
  },
  'ApplicationCache': {
   'type': 'object',
   'library': 'Offline',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'CHECKING': {
     'type': 'number',
    },
    'DOWNLOADING': {
     'type': 'number',
    },
    'IDLE': {
     'type': 'number',
    },
    'OBSOLETE': {
     'type': 'number',
    },
    'oncached': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onchecking': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ondownloading': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onnoupdate': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onobsolete': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onprogress': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onupdateready': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'status': {
     'type': 'number',
    },
    'UNCACHED': {
     'type': 'number',
    },
    'UPDATEREADY': {
     'type': 'number',
    },
    'abort': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'swapCache': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'update': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'ElementTimeControl': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'beginElement': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'beginElementAt': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'endElement': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'endElementAt': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'GetSVGDocument': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'getSVGDocument': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGDocument',
     },
     'parameter' : [
     ],
    },
   },
  },
  'SVGAElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'target': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGAltGlyphDefElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGAltGlyphElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextPositioningElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGURIReference',
   ],
   'properties': {
    'format': {
     'type': 'string',
    },
    'glyphRef': {
     'type': 'string',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
   },
  },
  'SVGAltGlyphItemElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGAngle': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'SVG_ANGLETYPE_DEG': {
     'type': 'number',
    },
    'SVG_ANGLETYPE_GRAD': {
     'type': 'number',
    },
    'SVG_ANGLETYPE_RAD': {
     'type': 'number',
    },
    'SVG_ANGLETYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_ANGLETYPE_UNSPECIFIED': {
     'type': 'number',
    },
    'unitType': {
     'type': 'number',
    },
    'value': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'valueAsString': {
     'type': 'string',
    },
    'valueInSpecifiedUnits': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'convertToSpecifiedUnits': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'unitType',
       'type': 'number',
      },
     ],
    },
    'newValueSpecifiedUnits': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'unitType',
       'type': 'number',
      },
      {
       'name': 'valueInSpecifiedUnits',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'SVGAnimateColorElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGAnimationElement',
   'implements' : [
    '#descriptions/SVGStylable',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGAnimateElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGAnimationElement',
   'implements' : [
    '#descriptions/SVGStylable',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGAnimateMotionElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGAnimationElement',
   'properties': {
   },
  },
  'SVGAnimateTransformElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGAnimationElement',
   'properties': {
   },
  },
  'SVGAnimatedAngle': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGAngle',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGAngle',
    },
   },
  },
  'SVGAnimatedBoolean': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'boolean',
    },
    'baseVal': {
     'type': 'boolean',
    },
   },
  },
  'SVGAnimatedEnumeration': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'number',
    },
    'baseVal': {
     'type': 'number',
    },
   },
  },
  'SVGAnimatedInteger': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'number',
    },
    'baseVal': {
     'type': 'number',
    },
   },
  },
  'SVGAnimatedLength': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGLength',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGLength',
    },
   },
  },
  'SVGAnimatedLengthList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGLengthList',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGLengthList',
    },
   },
  },
  'SVGAnimatedNumber': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGAnimatedNumberList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGNumberList',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGNumberList',
    },
   },
  },
  'SVGAnimatedPathData': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animatedNormalizedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'animatedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'normalizedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'pathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
   },
  },
  'SVGAnimatedPoints': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animatedPoints': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
    'points': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
   },
  },
  'SVGAnimatedPreserveAspectRatio': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGPreserveAspectRatio',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGPreserveAspectRatio',
    },
   },
  },
  'SVGAnimatedRect': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGRect',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGRect',
    },
   },
  },
  'SVGAnimatedString': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'string',
    },
    'baseVal': {
     'type': 'string',
    },
   },
  },
  'SVGAnimatedTransformList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'animVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGTransformList',
    },
    'baseVal': {
     'type': 'object',
     '$ref': '#descriptions/SVGTransformList',
    },
   },
  },
  'SVGAnimationElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/ElementTimeControl',
    '#descriptions/SVGTests',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/ElementTimeControl',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'targetElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'beginElement': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'beginElementAt': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'endElement': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'endElementAt': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'getCurrentTime': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'getSimpleDuration': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'getStartTime': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGCSSRule': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'COLOR_PROFILE_RULE': {
     'type': 'number',
    },
   },
  },
  'SVGCircleElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'cx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'cy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'r': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGClipPathElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGUnitTypes',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGUnitTypes',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'clipPathUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGColor': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/CSSValue',
   'properties': {
    'colorType': {
     'type': 'number',
    },
    'iccColor': {
     'type': 'object',
     '$ref': '#descriptions/SVGICCColor',
    },
    'rgbColor': {
     'type': 'object',
     '$ref': '#descriptions/RGBColor',
    },
    'SVG_COLORTYPE_CURRENTCOLOR': {
     'type': 'number',
    },
    'SVG_COLORTYPE_RGBCOLOR': {
     'type': 'number',
    },
    'SVG_COLORTYPE_RGBCOLOR_ICCCOLOR': {
     'type': 'number',
    },
    'SVG_COLORTYPE_UNKNOWN': {
     'type': 'number',
    },
    'setColor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'colorType',
       'type': 'number',
      },
      {
       'name': 'rgbColor',
       'type': 'string',
      },
      {
       'name': 'iccColor',
       'type': 'string',
      },
     ],
    },
    'setRGBColor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'rgbColor',
       'type': 'string',
      },
     ],
    },
    'setRGBColorICCColor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'rgbColor',
       'type': 'string',
      },
      {
       'name': 'iccColor',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGColorProfileElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGRenderingIntent',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGRenderingIntent',
   ],
   'properties': {
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'local': {
     'type': 'string',
    },
    'name': {
     'type': 'string',
    },
    'RENDERING_INTENT_ABSOLUTE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_AUTO': {
     'type': 'number',
    },
    'RENDERING_INTENT_PERCEPTUAL': {
     'type': 'number',
    },
    'RENDERING_INTENT_RELATIVE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_SATURATION': {
     'type': 'number',
    },
    'RENDERING_INTENT_UNKNOWN': {
     'type': 'number',
    },
    'renderingIntent': {
     'type': 'number',
    },
   },
  },
  'SVGColorProfileRule': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGCSSRule',
   'implements' : [
    '#descriptions/SVGRenderingIntent',
    '#descriptions/SVGRenderingIntent',
   ],
   'properties': {
    'name': {
     'type': 'string',
    },
    'RENDERING_INTENT_ABSOLUTE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_AUTO': {
     'type': 'number',
    },
    'RENDERING_INTENT_PERCEPTUAL': {
     'type': 'number',
    },
    'RENDERING_INTENT_RELATIVE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_SATURATION': {
     'type': 'number',
    },
    'RENDERING_INTENT_UNKNOWN': {
     'type': 'number',
    },
    'renderingIntent': {
     'type': 'number',
    },
    'src': {
     'type': 'string',
    },
   },
  },
  'SVGComponentTransferFunctionElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
    'amplitude': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'exponent': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'intercept': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'offset': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'slope': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE': {
     'type': 'number',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_GAMMA': {
     'type': 'number',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY': {
     'type': 'number',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_LINEAR': {
     'type': 'number',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_TABLE': {
     'type': 'number',
    },
    'SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'tableValues': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumberList',
    },
    'type': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
   },
  },
  'SVGCursorElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGExternalResourcesRequired',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGDefsElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGDescElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGStylable',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGDocument': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/Document',
   'implements' : [
    '#descriptions/DocumentEvent',
    '#descriptions/DocumentEvent',
   ],
   'properties': {
    'domain': {
     'type': 'string',
    },
    'referrer': {
     'type': 'string',
    },
    'rootElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGSVGElement',
    },
    'title': {
     'type': 'string',
    },
    'URL': {
     'type': 'string',
    },
   },
  },
  'SVGElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/Element',
   'implements' : [
    '#descriptions/ElementCSSInlineStyle',
   ],
   'properties': {
    'id': {
     'type': 'string',
    },
    'ownerSVGElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGSVGElement',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'viewportElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'xmlbase': {
     'type': 'string',
    },
   },
  },
  'SVGElementInstance': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'childNodes': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstanceList',
    },
    'correspondingElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'correspondingUseElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGUseElement',
    },
    'firstChild': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'lastChild': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'nextSibling': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'parentNode': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'previousSibling': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
   },
  },
  'SVGElementInstanceList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'length': {
     'type': 'number',
    },
    'item': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGElementInstance',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGEllipseElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'cx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'cy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'rx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'ry': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGExternalResourcesRequired': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
   },
  },
  'SVGFEBlendElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'in2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'mode': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'SVG_FEBLEND_MODE_DARKEN': {
     'type': 'number',
    },
    'SVG_FEBLEND_MODE_LIGHTEN': {
     'type': 'number',
    },
    'SVG_FEBLEND_MODE_MULTIPLY': {
     'type': 'number',
    },
    'SVG_FEBLEND_MODE_NORMAL': {
     'type': 'number',
    },
    'SVG_FEBLEND_MODE_SCREEN': {
     'type': 'number',
    },
    'SVG_FEBLEND_MODE_UNKNOWN': {
     'type': 'number',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEColorMatrixElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'SVG_FECOLORMATRIX_TYPE_HUEROTATE': {
     'type': 'number',
    },
    'SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA': {
     'type': 'number',
    },
    'SVG_FECOLORMATRIX_TYPE_MATRIX': {
     'type': 'number',
    },
    'SVG_FECOLORMATRIX_TYPE_SATURATE': {
     'type': 'number',
    },
    'SVG_FECOLORMATRIX_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'type': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'values': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumberList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEComponentTransferElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFECompositeElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'in2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'k1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'k2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'k3': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'k4': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'operator': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'SVG_FECOMPOSITE_OPERATOR_ARITHMETIC': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_ATOP': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_IN': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_OUT': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_OVER': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_UNKNOWN': {
     'type': 'number',
    },
    'SVG_FECOMPOSITE_OPERATOR_XOR': {
     'type': 'number',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEConvolveMatrixElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'bias': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'divisor': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'edgeMode': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'kernelMatrix': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumberList',
    },
    'kernelUnitLengthX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'kernelUnitLengthY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'orderX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'orderY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'preserveAlpha': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'SVG_EDGEMODE_DUPLICATE': {
     'type': 'number',
    },
    'SVG_EDGEMODE_NONE': {
     'type': 'number',
    },
    'SVG_EDGEMODE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_EDGEMODE_WRAP': {
     'type': 'number',
    },
    'targetX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'targetY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEDiffuseLightingElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'diffuseConstant': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'kernelUnitLengthX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'kernelUnitLengthY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'surfaceScale': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEDisplacementMapElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'in2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'scale': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'SVG_CHANNEL_A': {
     'type': 'number',
    },
    'SVG_CHANNEL_B': {
     'type': 'number',
    },
    'SVG_CHANNEL_G': {
     'type': 'number',
    },
    'SVG_CHANNEL_R': {
     'type': 'number',
    },
    'SVG_CHANNEL_UNKNOWN': {
     'type': 'number',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xChannelSelector': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'yChannelSelector': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
   },
  },
  'SVGFEDistantLightElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
    'azimuth': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'elevation': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
   },
  },
  'SVGFEFloodElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEFuncAElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGComponentTransferFunctionElement',
   'properties': {
   },
  },
  'SVGFEFuncBElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGComponentTransferFunctionElement',
   'properties': {
   },
  },
  'SVGFEFuncGElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGComponentTransferFunctionElement',
   'properties': {
   },
  },
  'SVGFEFuncRElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGComponentTransferFunctionElement',
   'properties': {
   },
  },
  'SVGFEGaussianBlurElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'stdDeviationX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'stdDeviationY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'setStdDeviation': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'stdDeviationX',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'stdDeviationY',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'SVGFEImageElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEMergeElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEMergeNodeElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
   },
  },
  'SVGFEMorphologyElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'operator': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'radiusX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'radiusY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'SVG_MORPHOLOGY_OPERATOR_DILATE': {
     'type': 'number',
    },
    'SVG_MORPHOLOGY_OPERATOR_ERODE': {
     'type': 'number',
    },
    'SVG_MORPHOLOGY_OPERATOR_UNKNOWN': {
     'type': 'number',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEOffsetElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'dx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'dy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFEPointLightElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'z': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
   },
  },
  'SVGFESpecularLightingElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'kernelUnitLengthX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'kernelUnitLengthY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'specularConstant': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'specularExponent': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'surfaceScale': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFESpotLightElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
    'limitingConeAngle': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'pointsAtX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'pointsAtY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'pointsAtZ': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'specularExponent': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'z': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
   },
  },
  'SVGFETileElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'in1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFETurbulenceElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
    '#descriptions/SVGFilterPrimitiveStandardAttributes',
   ],
   'properties': {
    'baseFrequencyX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'baseFrequencyY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'numOctaves': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'seed': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'stitchTiles': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'SVG_STITCHTYPE_NOSTITCH': {
     'type': 'number',
    },
    'SVG_STITCHTYPE_STITCH': {
     'type': 'number',
    },
    'SVG_STITCHTYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_TURBULENCE_TYPE_FRACTALNOISE': {
     'type': 'number',
    },
    'SVG_TURBULENCE_TYPE_TURBULENCE': {
     'type': 'number',
    },
    'SVG_TURBULENCE_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'type': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFilterElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'filterResX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'filterResY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedInteger',
    },
    'filterUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'primitiveUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'setFilterRes': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'filterResX',
       'type': 'number',
      },
      {
       'name': 'filterResY',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGFilterPrimitiveStandardAttributes': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGStylable',
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'result': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGFitToViewBox': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
   },
  },
  'SVGFontElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGFontFaceElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGFontFaceFormatElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGFontFaceNameElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGFontFaceSrcElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGFontFaceUriElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGForeignObjectElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGGElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGGlyphElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGStylable',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGGlyphRefElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGStylable',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'dx': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'dy': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'format': {
     'type': 'string',
    },
    'glyphRef': {
     'type': 'string',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGGradientElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'gradientTransform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'gradientUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'spreadMethod': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_SPREADMETHOD_PAD': {
     'type': 'number',
    },
    'SVG_SPREADMETHOD_REFLECT': {
     'type': 'number',
    },
    'SVG_SPREADMETHOD_REPEAT': {
     'type': 'number',
    },
    'SVG_SPREADMETHOD_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGHKernElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGICCColor': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'colorProfile': {
     'type': 'string',
    },
    'colors': {
     'type': 'object',
     '$ref': '#descriptions/SVGNumberList',
    },
   },
  },
  'SVGImageElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGLangSpace': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
   },
  },
  'SVGLength': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'SVG_LENGTHTYPE_CM': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_EMS': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_EXS': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_IN': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_MM': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_NUMBER': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_PC': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_PERCENTAGE': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_PT': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_PX': {
     'type': 'number',
    },
    'SVG_LENGTHTYPE_UNKNOWN': {
     'type': 'number',
    },
    'unitType': {
     'type': 'number',
    },
    'value': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'valueAsString': {
     'type': 'string',
    },
    'valueInSpecifiedUnits': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'convertToSpecifiedUnits': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'unitType',
       'type': 'number',
      },
     ],
    },
    'newValueSpecifiedUnits': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'unitType',
       'type': 'number',
      },
      {
       'name': 'valueInSpecifiedUnits',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'SVGLengthList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGLength',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGLength',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGLength',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGLength',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGLineElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGLinearGradientElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGGradientElement',
   'properties': {
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGLocatable': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'farthestViewportElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'nearestViewportElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'getBBox': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGRect',
     },
     'parameter' : [
     ],
    },
    'getCTM': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'getScreenCTM': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'getTransformToElement': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'element',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
     ],
    },
   },
  },
  'SVGMPathElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
   },
  },
  'SVGMarkerElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'markerHeight': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'markerUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'markerWidth': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'orientAngle': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedAngle',
    },
    'orientType': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'refX': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'refY': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_MARKER_ORIENT_ANGLE': {
     'type': 'number',
    },
    'SVG_MARKER_ORIENT_AUTO': {
     'type': 'number',
    },
    'SVG_MARKER_ORIENT_UNKNOWN': {
     'type': 'number',
    },
    'SVG_MARKERUNITS_STROKEWIDTH': {
     'type': 'number',
    },
    'SVG_MARKERUNITS_UNKNOWN': {
     'type': 'number',
    },
    'SVG_MARKERUNITS_USERSPACEONUSE': {
     'type': 'number',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'setOrientToAngle': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/SVGAngle',
      },
     ],
    },
    'setOrientToAuto': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'SVGMaskElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGUnitTypes',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'maskContentUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'maskUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGMatrix': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'a': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'b': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'c': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'd': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'e': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'f': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'flipX': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'flipY': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'inverse': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'multiply': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'secondMatrix',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
    'rotate': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'rotateFromVector': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'scale': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'scaleFactor',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'scaleNonUniform': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'scaleFactorX',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'scaleFactorY',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'skewX': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'skewY': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'translate': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'SVGMetadataElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGMissingGlyphElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGStylable',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGNumber': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'value': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGNumberList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGNumber',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGNumber',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGNumber',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGNumber',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGPaint': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGColor',
   'properties': {
    'paintType': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_CURRENTCOLOR': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_NONE': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_RGBCOLOR': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_URI': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_URI_CURRENTCOLOR': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_URI_NONE': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_URI_RGBCOLOR': {
     'type': 'number',
    },
    'SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR': {
     'type': 'number',
    },
    'uri': {
     'type': 'string',
    },
    'setPaint': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'paintType',
       'type': 'number',
      },
      {
       'name': 'uri',
       'type': 'string',
      },
      {
       'name': 'rgbColor',
       'type': 'string',
      },
      {
       'name': 'iccColor',
       'type': 'string',
      },
     ],
    },
    'setUri': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'uri',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGPathElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPathData',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPathData',
   ],
   'properties': {
    'animatedNormalizedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'animatedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'normalizedPathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'pathLength': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'pathSegList': {
     'type': 'object',
     '$ref': '#descriptions/SVGPathSegList',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'createSVGPathSegArcAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegArcAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'r1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'r2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'largeArcFlag',
       'type': 'boolean',
      },
      {
       'name': 'sweepFlag',
       'type': 'boolean',
      },
     ],
    },
    'createSVGPathSegArcRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegArcRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'r1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'r2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'largeArcFlag',
       'type': 'boolean',
      },
      {
       'name': 'sweepFlag',
       'type': 'boolean',
      },
     ],
    },
    'createSVGPathSegClosePath': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegClosePath',
     },
     'parameter' : [
     ],
    },
    'createSVGPathSegCurvetoCubicAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoCubicAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoCubicRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoCubicRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoCubicSmoothAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoCubicSmoothAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoCubicSmoothRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoCubicSmoothRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y2',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoQuadraticAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoQuadraticAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoQuadraticRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoQuadraticRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'x1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y1',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoQuadraticSmoothAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoQuadraticSmoothAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegCurvetoQuadraticSmoothRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegCurvetoQuadraticSmoothRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoHorizontalAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoHorizontalAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoHorizontalRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoHorizontalRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoVerticalAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoVerticalAbs',
     },
     'parameter' : [
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegLinetoVerticalRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegLinetoVerticalRel',
     },
     'parameter' : [
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegMovetoAbs': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegMovetoAbs',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'createSVGPathSegMovetoRel': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSegMovetoRel',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'getPathSegAtLength': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'distance',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'getPointAtLength': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'distance',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getTotalLength': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGPathSeg': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'PATHSEG_ARC_ABS': {
     'type': 'number',
    },
    'PATHSEG_ARC_REL': {
     'type': 'number',
    },
    'PATHSEG_CLOSEPATH': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_CUBIC_ABS': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_CUBIC_REL': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_CUBIC_SMOOTH_ABS': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_CUBIC_SMOOTH_REL': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_QUADRATIC_ABS': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_QUADRATIC_REL': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS': {
     'type': 'number',
    },
    'PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL': {
     'type': 'number',
    },
    'PATHSEG_LINETO_ABS': {
     'type': 'number',
    },
    'PATHSEG_LINETO_HORIZONTAL_ABS': {
     'type': 'number',
    },
    'PATHSEG_LINETO_HORIZONTAL_REL': {
     'type': 'number',
    },
    'PATHSEG_LINETO_REL': {
     'type': 'number',
    },
    'PATHSEG_LINETO_VERTICAL_ABS': {
     'type': 'number',
    },
    'PATHSEG_LINETO_VERTICAL_REL': {
     'type': 'number',
    },
    'PATHSEG_MOVETO_ABS': {
     'type': 'number',
    },
    'PATHSEG_MOVETO_REL': {
     'type': 'number',
    },
    'PATHSEG_UNKNOWN': {
     'type': 'number',
    },
    'pathSegType': {
     'type': 'number',
    },
    'pathSegTypeAsLetter': {
     'type': 'string',
    },
   },
  },
  'SVGPathSegArcAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'angle': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'largeArcFlag': {
     'type': 'boolean',
    },
    'r1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'r2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'sweepFlag': {
     'type': 'boolean',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegArcRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'angle': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'largeArcFlag': {
     'type': 'boolean',
    },
    'r1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'r2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'sweepFlag': {
     'type': 'boolean',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegClosePath': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
   },
  },
  'SVGPathSegCurvetoCubicAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoCubicRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoCubicSmoothAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoCubicSmoothRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y2': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoQuadraticAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoQuadraticRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y1': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoQuadraticSmoothAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegCurvetoQuadraticSmoothRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoHorizontalAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoHorizontalRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoVerticalAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegLinetoVerticalRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPathSeg',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPathSeg',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPathSeg',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPathSeg',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPathSeg',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGPathSegMovetoAbs': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPathSegMovetoRel': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGPathSeg',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGPatternElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGUnitTypes',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGUnitTypes',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'patternContentUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'patternTransform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'patternUnits': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGPoint': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'matrixTransform': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'matrix',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
   },
  },
  'SVGPointList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPoint',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPoint',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPoint',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGPoint',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGPolygonElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPoints',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPoints',
   ],
   'properties': {
    'animatedPoints': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'points': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGPolylineElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPoints',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGAnimatedPoints',
   ],
   'properties': {
    'animatedPoints': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'points': {
     'type': 'object',
     '$ref': '#descriptions/SVGPointList',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGPreserveAspectRatio': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'align': {
     'type': 'number',
    },
    'meetOrSlice': {
     'type': 'number',
    },
    'SVG_MEETORSLICE_MEET': {
     'type': 'number',
    },
    'SVG_MEETORSLICE_SLICE': {
     'type': 'number',
    },
    'SVG_MEETORSLICE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_NONE': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_UNKNOWN': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMAXYMAX': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMAXYMID': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMAXYMIN': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMIDYMAX': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMIDYMID': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMIDYMIN': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMINYMAX': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMINYMID': {
     'type': 'number',
    },
    'SVG_PRESERVEASPECTRATIO_XMINYMIN': {
     'type': 'number',
    },
   },
  },
  'SVGRadialGradientElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGGradientElement',
   'properties': {
    'cx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'cy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'fx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'fy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'r': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
   },
  },
  'SVGRect': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'height': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
   },
  },
  'SVGRectElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'rx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'ry': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGRenderingIntent': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'RENDERING_INTENT_ABSOLUTE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_AUTO': {
     'type': 'number',
    },
    'RENDERING_INTENT_PERCEPTUAL': {
     'type': 'number',
    },
    'RENDERING_INTENT_RELATIVE_COLORIMETRIC': {
     'type': 'number',
    },
    'RENDERING_INTENT_SATURATION': {
     'type': 'number',
    },
    'RENDERING_INTENT_UNKNOWN': {
     'type': 'number',
    },
   },
  },
  'SVGSVGElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGLocatable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGZoomAndPan',
    '#descriptions/DocumentEvent',
    '#descriptions/ViewCSS',
    '#descriptions/DocumentCSS',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGLocatable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGZoomAndPan',
    '#descriptions/DocumentEvent',
    '#descriptions/ViewCSS',
    '#descriptions/DocumentCSS',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'contentScriptType': {
     'type': 'string',
    },
    'contentStyleType': {
     'type': 'string',
    },
    'currentScale': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'currentTranslate': {
     'type': 'object',
     '$ref': '#descriptions/SVGPoint',
    },
    'currentView': {
     'type': 'object',
     '$ref': '#descriptions/SVGViewSpec',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'farthestViewportElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'nearestViewportElement': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'pixelUnitToMillimeterX': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'pixelUnitToMillimeterY': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'screenPixelToMillimeterX': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'screenPixelToMillimeterY': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'SVG_ZOOMANDPAN_DISABLE': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_MAGNIFY': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_UNKNOWN': {
     'type': 'number',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'useCurrentView': {
     'type': 'boolean',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'viewport': {
     'type': 'object',
     '$ref': '#descriptions/SVGRect',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'zoomAndPan': {
     'type': 'number',
    },
    'animationsPaused': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'checkEnclosure': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'element',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
      {
       'name': 'rect',
       'type': 'object',
       '$ref': '#descriptions/SVGRect',
      },
     ],
    },
    'checkIntersection': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'element',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
      {
       'name': 'rect',
       'type': 'object',
       '$ref': '#descriptions/SVGRect',
      },
     ],
    },
    'createSVGAngle': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGAngle',
     },
     'parameter' : [
     ],
    },
    'createSVGLength': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGLength',
     },
     'parameter' : [
     ],
    },
    'createSVGMatrix': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'createSVGNumber': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGNumber',
     },
     'parameter' : [
     ],
    },
    'createSVGPoint': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
     ],
    },
    'createSVGRect': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGRect',
     },
     'parameter' : [
     ],
    },
    'createSVGTransform': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
     ],
    },
    'createSVGTransformFromMatrix': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'matrix',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
    'deselectAll': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'forceRedraw': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getBBox': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGRect',
     },
     'parameter' : [
     ],
    },
    'getCTM': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'getCurrentTime': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'getElementById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element',
     },
     'parameter' : [
      {
       'name': 'elementId',
       'type': 'string',
      },
     ],
    },
    'getEnclosureList': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'rect',
       'type': 'object',
       '$ref': '#descriptions/SVGRect',
      },
      {
       'name': 'referenceElement',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
     ],
    },
    'getIntersectionList': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'rect',
       'type': 'object',
       '$ref': '#descriptions/SVGRect',
      },
      {
       'name': 'referenceElement',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
     ],
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getScreenCTM': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
     ],
    },
    'getTransformToElement': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGMatrix',
     },
     'parameter' : [
      {
       'name': 'element',
       'type': 'object',
       '$ref': '#descriptions/SVGElement',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
    'pauseAnimations': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'setCurrentTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'seconds',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'suspendRedraw': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'maxWaitMilliseconds',
       'type': 'number',
      },
     ],
    },
    'unpauseAnimations': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'unsuspendRedraw': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'suspendHandleID',
       'type': 'number',
      },
     ],
    },
    'unsuspendRedrawAll': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'SVGScriptElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGExternalResourcesRequired',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'type': {
     'type': 'string',
    },
   },
  },
  'SVGSetElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGAnimationElement',
   'properties': {
   },
  },
  'SVGStopElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGStylable',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'offset': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumber',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGStringList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'string',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'string',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'string',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'string',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGStylable': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGStyleElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGLangSpace',
   ],
   'properties': {
    'media': {
     'type': 'string',
    },
    'title': {
     'type': 'string',
    },
    'type': {
     'type': 'string',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
   },
  },
  'SVGSwitchElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGSymbolElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGFitToViewBox',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGTRefElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextPositioningElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGURIReference',
   ],
   'properties': {
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
   },
  },
  'SVGTSpanElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextPositioningElement',
   'properties': {
   },
  },
  'SVGTests': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGTextContentElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'lengthAdjust': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'LENGTHADJUST_SPACING': {
     'type': 'number',
    },
    'LENGTHADJUST_SPACINGANDGLYPHS': {
     'type': 'number',
    },
    'LENGTHADJUST_UNKNOWN': {
     'type': 'number',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'textLength': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getCharNumAtPosition': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'point',
       'type': 'object',
       '$ref': '#descriptions/SVGPoint',
      },
     ],
    },
    'getComputedTextLength': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
     ],
    },
    'getEndPositionOfChar': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
     ],
    },
    'getExtentOfChar': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGRect',
     },
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
     ],
    },
    'getNumberOfChars': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
     ],
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getRotationOfChar': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
     ],
    },
    'getStartPositionOfChar': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGPoint',
     },
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
     ],
    },
    'getSubStringLength': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/float',
     },
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
      {
       'name': 'nchars',
       'type': 'number',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
    'selectSubString': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'charnum',
       'type': 'number',
      },
      {
       'name': 'nchars',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGTextElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextPositioningElement',
   'implements' : [
    '#descriptions/SVGTransformable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
   },
  },
  'SVGTextPathElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextContentElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGURIReference',
   ],
   'properties': {
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'method': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'spacing': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedEnumeration',
    },
    'startOffset': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'TEXTPATH_METHODTYPE_ALIGN': {
     'type': 'number',
    },
    'TEXTPATH_METHODTYPE_STRETCH': {
     'type': 'number',
    },
    'TEXTPATH_METHODTYPE_UNKNOWN': {
     'type': 'number',
    },
    'TEXTPATH_SPACINGTYPE_AUTO': {
     'type': 'number',
    },
    'TEXTPATH_SPACINGTYPE_EXACT': {
     'type': 'number',
    },
    'TEXTPATH_SPACINGTYPE_UNKNOWN': {
     'type': 'number',
    },
   },
  },
  'SVGTextPositioningElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGTextContentElement',
   'properties': {
    'dx': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLengthList',
    },
    'dy': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLengthList',
    },
    'rotate': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedNumberList',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLengthList',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLengthList',
    },
   },
  },
  'SVGTitleElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGStylable',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGStylable',
   ],
   'properties': {
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGTransform': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'angle': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'matrix': {
     'type': 'object',
     '$ref': '#descriptions/SVGMatrix',
    },
    'SVG_TRANSFORM_MATRIX': {
     'type': 'number',
    },
    'SVG_TRANSFORM_ROTATE': {
     'type': 'number',
    },
    'SVG_TRANSFORM_SCALE': {
     'type': 'number',
    },
    'SVG_TRANSFORM_SKEWX': {
     'type': 'number',
    },
    'SVG_TRANSFORM_SKEWY': {
     'type': 'number',
    },
    'SVG_TRANSFORM_TRANSLATE': {
     'type': 'number',
    },
    'SVG_TRANSFORM_UNKNOWN': {
     'type': 'number',
    },
    'type': {
     'type': 'number',
    },
    'setMatrix': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'matrix',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
    'setRotate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'cx',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'cy',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'setScale': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'sx',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'sy',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'setSkewX': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'setSkewY': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'angle',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'setTranslate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'tx',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'ty',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
   },
  },
  'SVGTransformList': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'numberOfItems': {
     'type': 'number',
    },
    'appendItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGTransform',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'consolidate': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
     ],
    },
    'createSVGTransformFromMatrix': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'matrix',
       'type': 'object',
       '$ref': '#descriptions/SVGMatrix',
      },
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'initialize': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGTransform',
      },
     ],
    },
    'insertItemBefore': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGTransform',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'replaceItem': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/SVGTransform',
     },
     'parameter' : [
      {
       'name': 'newItem',
       'type': 'object',
       '$ref': '#descriptions/SVGTransform',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'SVGTransformable': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGLocatable',
   'properties': {
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
   },
  },
  'SVGURIReference': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
   },
  },
  'SVGUnitTypes': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'SVG_UNIT_TYPE_OBJECTBOUNDINGBOX': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_UNKNOWN': {
     'type': 'number',
    },
    'SVG_UNIT_TYPE_USERSPACEONUSE': {
     'type': 'number',
    },
   },
  },
  'SVGUseElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
    '#descriptions/SVGURIReference',
    '#descriptions/SVGTests',
    '#descriptions/SVGLangSpace',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGStylable',
    '#descriptions/SVGTransformable',
   ],
   'properties': {
    'animatedInstanceRoot': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'className': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'height': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'href': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedString',
    },
    'instanceRoot': {
     'type': 'object',
     '$ref': '#descriptions/SVGElementInstance',
    },
    'requiredExtensions': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'requiredFeatures': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'style': {
     'type': 'object',
     '$ref': '#descriptions/CSSStyleDeclaration',
    },
    'systemLanguage': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedTransformList',
    },
    'width': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'x': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'xmllang': {
     'type': 'string',
    },
    'xmlspace': {
     'type': 'string',
    },
    'y': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedLength',
    },
    'getPresentationAttribute': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/CSSValue',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'hasExtension': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'extension',
       'type': 'string',
      },
     ],
    },
   },
  },
  'SVGVKernElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'properties': {
   },
  },
  'SVGViewElement': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGElement',
   'implements' : [
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGZoomAndPan',
    '#descriptions/SVGExternalResourcesRequired',
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGZoomAndPan',
   ],
   'properties': {
    'externalResourcesRequired': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedBoolean',
    },
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'SVG_ZOOMANDPAN_DISABLE': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_MAGNIFY': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_UNKNOWN': {
     'type': 'number',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'viewTarget': {
     'type': 'object',
     '$ref': '#descriptions/SVGStringList',
    },
    'zoomAndPan': {
     'type': 'number',
    },
   },
  },
  'SVGViewSpec': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/SVGZoomAndPan',
   'implements' : [
    '#descriptions/SVGFitToViewBox',
    '#descriptions/SVGFitToViewBox',
   ],
   'properties': {
    'preserveAspectRatio': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedPreserveAspectRatio',
    },
    'preserveAspectRatioString': {
     'type': 'string',
    },
    'transform': {
     'type': 'object',
     '$ref': '#descriptions/SVGTransformList',
    },
    'transformString': {
     'type': 'string',
    },
    'viewBox': {
     'type': 'object',
     '$ref': '#descriptions/SVGAnimatedRect',
    },
    'viewBoxString': {
     'type': 'string',
    },
    'viewTarget': {
     'type': 'object',
     '$ref': '#descriptions/SVGElement',
    },
    'viewTargetString': {
     'type': 'string',
    },
   },
  },
  'SVGZoomAndPan': {
   'type': 'object',
   'library': 'SVG',
   'properties': {
    'SVG_ZOOMANDPAN_DISABLE': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_MAGNIFY': {
     'type': 'number',
    },
    'SVG_ZOOMANDPAN_UNKNOWN': {
     'type': 'number',
    },
    'zoomAndPan': {
     'type': 'number',
    },
   },
  },
  'SVGZoomEvent': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/UIEvent',
   'properties': {
    'newScale': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'newTranslate': {
     'type': 'object',
     '$ref': '#descriptions/SVGPoint',
    },
    'previousScale': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'previousTranslate': {
     'type': 'object',
     '$ref': '#descriptions/SVGPoint',
    },
    'zoomRectScreen': {
     'type': 'object',
     '$ref': '#descriptions/SVGRect',
    },
   },
  },
  'TimeEvent': {
   'type': 'object',
   'library': 'SVG',
   'extends': '#descriptions/Event',
   'properties': {
    'detail': {
     'type': 'number',
    },
    'view': {
     'type': 'object',
     '$ref': '#descriptions/AbstractView',
    },
    'initTimeEvent': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'typeArg',
       'type': 'string',
      },
      {
       'name': 'viewArg',
       'type': 'object',
       '$ref': '#descriptions/AbstractView',
      },
      {
       'name': 'detailArg',
       'type': 'number',
      },
     ],
    },
   },
  },
  'CSSHostRule': {
   'type': 'object',
   'library': 'Shadow DOM',
   'extends': '#descriptions/CSSRule',
   'properties': {
    'cssRules': {
     'type': 'object',
     '$ref': '#descriptions/CSSRuleList',
    },
    'deleteRule': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'insertRule': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'rule',
       'type': 'string',
      },
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
   },
  },
  'HTMLContentElement': {
   'type': 'object',
   'library': 'Shadow DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'resetStyleInheritance': {
     'type': 'boolean',
    },
    'select': {
     'type': 'string',
    },
    'getDistributedNodes': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
     ],
    },
   },
  },
  'HTMLShadowElement': {
   'type': 'object',
   'library': 'Shadow DOM',
   'extends': '#descriptions/HTMLElement',
   'properties': {
    'olderShadowRoot': {
     'type': 'object',
     '$ref': '#descriptions/ShadowRoot?',
    },
    'resetStyleInheritance': {
     'type': 'boolean',
    },
   },
  },
  'ShadowRoot': {
   'type': 'object',
   'library': 'Shadow DOM',
   'extends': '#descriptions/DocumentFragment',
   'properties': {
    'activeElement': {
     'type': 'object',
     '$ref': '#descriptions/Element?',
    },
    'applyAuthorStyles': {
     'type': 'object',
     '$ref': '#descriptions/bool',
    },
    'innerHTML': {
     'type': 'string',
    },
    'resetStyleInheritance': {
     'type': 'object',
     '$ref': '#descriptions/bool',
    },
    'styleSheets': {
     'type': 'object',
     '$ref': '#descriptions/StyleSheetList',
    },
    'elementFromPoint': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Element?',
     },
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
     ],
    },
    'getElementById': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/HTMLElement',
     },
     'parameter' : [
      {
       'name': 'elementId',
       'type': 'string',
      },
     ],
    },
    'getElementsByClassName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'tagName',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagName': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'className',
       'type': 'string',
      },
     ],
    },
    'getElementsByTagNameNS': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/NodeList',
     },
     'parameter' : [
      {
       'name': 'namespace',
       'type': 'string',
      },
      {
       'name': 'localName',
       'type': 'string',
      },
     ],
    },
    'getSelection': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Selection?',
     },
     'parameter' : [
     ],
    },
   },
  },
  'ArrayBuffer': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/Transferable',
   ],
   'properties': {
    'byteLength': {
     'type': 'number',
    },
    'isView': {
     'type': 'function',
     'static': true,
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
    'slice': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/ArrayBuffer',
     },
     'parameter' : [
      {
       'name': 'begin',
       'type': 'number',
      },
      {
       'name': 'end',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
   ],
  },
  'DataView': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'getFloat32': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/unrestricted float',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getFloat64': {
     'type': 'function',
     'returns': {
      'type': 'unrestricted double',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getInt16': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getInt32': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getInt8': {
     'type': 'function',
     'returns': {
      'type': 'byte',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
     ],
    },
    'getUint16': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getUint32': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'getUint8': {
     'type': 'function',
     'returns': {
      'type': 'octet',
     },
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
     ],
    },
    'setFloat32': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'object',
       '$ref': '#descriptions/unrestricted float',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setFloat64': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'unrestricted double',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setInt16': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setInt32': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setInt8': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'byte',
      },
     ],
    },
    'setUint16': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setUint32': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'number',
      },
      {
       'name': 'littleEndian',
       'optional': true,
       'type': 'boolean',
      },
     ],
    },
    'setUint8': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'byteOffset',
       'type': 'number',
      },
      {
       'name': 'value',
       'type': 'octet',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'byteLength',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Float32Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/unrestricted float',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Float32Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Float32Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/unrestricted float[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Float64Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'unrestricted double',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Float64Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Float64Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/unrestricted double[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Int16Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Int16Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Int16Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/short[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Int32Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Int32Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Int32Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/long[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Int8Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'byte',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Int8Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Int8Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/byte[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Uint16Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Uint16Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint16Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/unsigned short[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Uint32Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Uint32Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint32Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/unsigned long[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Uint8Array': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'octet',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Uint8Array',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint8Array',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/octet[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'Uint8ClampedArray': {
   'type': 'object',
   'library': 'Typed Arrays',
   'implements' : [
    '#descriptions/ArrayBufferView',
   ],
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/ArrayBuffer',
    },
    'byteLength': {
     'type': 'number',
    },
    'byteOffset': {
     'type': 'number',
    },
    'BYTES_PER_ELEMENT': {
     'type': 'number',
    },
    'length': {
     'type': 'number',
    },
    'get': {
     'type': 'function',
     'returns': {
      'type': 'octet',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'set': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index_array',
       'type': 'object',
      },
      {
       'name': 'value_offset',
       'optional': true,
       'type': 'object',
      },
     ],
    },
    'subarray': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Uint8ClampedArray',
     },
     'parameter' : [
      {
       'name': 'start',
       'type': 'number',
      },
      {
       'name': 'end',
       'type': 'number',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'length',
       'type': 'number',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint8ClampedArray',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/octet[]',
      },
     ],
    },
    {
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/ArrayBuffer',
      },
      {
       'name': 'byteOffset',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'length',
       'optional': true,
       'type': 'number',
      },
     ],
    },
   ],
  },
  'AnalyserNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'fftSize': {
     'type': 'number',
    },
    'frequencyBinCount': {
     'type': 'number',
    },
    'maxDecibels': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'minDecibels': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'smoothingTimeConstant': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'getByteFrequencyData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint8Array',
      },
     ],
    },
    'getByteTimeDomainData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Uint8Array',
      },
     ],
    },
    'getFloatFrequencyData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'array',
       'type': 'object',
       '$ref': '#descriptions/Float32Array',
      },
     ],
    },
   },
  },
  'AudioBuffer': {
   'type': 'object',
   'library': 'Web Audio',
   'properties': {
    'duration': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'length': {
     'type': 'number',
    },
    'numberOfChannels': {
     'type': 'number',
    },
    'sampleRate': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'getChannelData': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Float32Array',
     },
     'parameter' : [
      {
       'name': 'channel',
       'type': 'number',
      },
     ],
    },
   },
  },
  'AudioBufferSourceNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/AudioBuffer?',
    },
    'loop': {
     'type': 'boolean',
    },
    'loopEnd': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'loopStart': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'onended': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'playbackRate': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'start': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'when',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'offset',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'duration',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'stop': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'when',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
   },
  },
  'AudioDestinationNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'maxChannelCount': {
     'type': 'number',
    },
   },
  },
  'AudioListener': {
   'type': 'object',
   'library': 'Web Audio',
   'properties': {
    'dopplerFactor': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'speedOfSound': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
    'setOrientation': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'xUp',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'yUp',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'zUp',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'setPosition': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'setVelocity': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
   },
  },
  'AudioParam': {
   'type': 'object',
   'library': 'Web Audio',
   'properties': {
    'defaultValue': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'value': {
     'type': 'object',
     '$ref': '#descriptions/float',
    },
    'cancelScheduledValues': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'startTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'exponentialRampToValueAtTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'endTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'linearRampToValueAtTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'endTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'setTargetAtTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'startTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'timeConstant',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'setValueAtTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
       '$ref': '#descriptions/float',
      },
      {
       'name': 'startTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
    'setValueCurveAtTime': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'values',
       'type': 'object',
       '$ref': '#descriptions/Float32Array',
      },
      {
       'name': 'startTime',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
      {
       'name': 'duration',
       'type': 'object',
       '$ref': '#descriptions/double',
      },
     ],
    },
   },
  },
  'AudioProcessingEvent': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/Event',
   'properties': {
    'inputBuffer': {
     'type': 'object',
     '$ref': '#descriptions/AudioBuffer',
    },
    'outputBuffer': {
     'type': 'object',
     '$ref': '#descriptions/AudioBuffer',
    },
    'playbackTime': {
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   },
  },
  'ChannelMergerNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
   },
  },
  'ChannelSplitterNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
   },
  },
  'ConvolverNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'buffer': {
     'type': 'object',
     '$ref': '#descriptions/AudioBuffer?',
    },
    'normalize': {
     'type': 'boolean',
    },
   },
  },
  'DelayNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'delayTime': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
   },
  },
  'DynamicsCompressorNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'attack': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'knee': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'ratio': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'reduction': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'release': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
    'threshold': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
   },
  },
  'GainNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'gain': {
     'type': 'object',
     '$ref': '#descriptions/AudioParam',
    },
   },
  },
  'MediaElementAudioSourceNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
   },
  },
  'MediaStreamAudioDestinationNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'stream': {
     'type': 'object',
     '$ref': '#descriptions/MediaStream',
    },
   },
  },
  'MediaStreamAudioSourceNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
   },
  },
  'OfflineAudioCompletionEvent': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/Event',
   'properties': {
    'renderedBuffer': {
     'type': 'object',
     '$ref': '#descriptions/AudioBuffer',
    },
   },
  },
  'PeriodicWave': {
   'type': 'object',
   'library': 'Web Audio',
   'properties': {
   },
  },
  'ScriptProcessorNode': {
   'type': 'object',
   'library': 'Web Audio',
   'extends': '#descriptions/AudioNode',
   'properties': {
    'bufferSize': {
     'type': 'number',
    },
    'onaudioprocess': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
   },
  },
  'BroadcastChannel': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'name': {
     'type': 'string',
    },
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'postMessage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'message',
       'type': 'object',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'channel',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'CloseEvent': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/Event',
   'properties': {
    'code': {
     'type': 'number',
    },
    'reason': {
     'type': 'string',
    },
    'wasClean': {
     'type': 'boolean',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/CloseEventInit',
      },
     ],
    },
   ],
  },
  'EventSource': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'CLOSED': {
     'type': 'number',
    },
    'CONNECTING': {
     'type': 'number',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onopen': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'OPEN': {
     'type': 'number',
    },
    'readyState': {
     'type': 'number',
    },
    'url': {
     'type': 'string',
    },
    'withCredentials': {
     'type': 'boolean',
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
      {
       'name': 'eventSourceInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/EventSourceInit',
      },
     ],
    },
   ],
  },
  'MessageChannel': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'properties': {
    'port1': {
     'type': 'object',
     '$ref': '#descriptions/MessagePort',
    },
    'port2': {
     'type': 'object',
     '$ref': '#descriptions/MessagePort',
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'MessageEvent': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/Event',
   'properties': {
    'data': {
     'type': 'object',
    },
    'lastEventId': {
     'type': 'string',
    },
    'origin': {
     'type': 'string',
    },
    'ports': {
     'type': 'object',
     '$ref': '#descriptions/MessagePort[]?',
    },
    'source': {
     'type': 'object',
     'oneOf' : [
      {
       'type': 'object',
       '$ref': '#descriptions/WindowProxy',
      },
      {
       'type': 'object',
       '$ref': '#descriptions/MessagePort',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/MessageEventInit',
      },
     ],
    },
   ],
  },
  'MessagePort': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'postMessage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'message',
       'type': 'object',
      },
      {
       'name': 'transfer',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/sequence<Transferable>',
      },
     ],
    },
    'start': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
  },
  'PortCollection': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'properties': {
    'add': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'port',
       'type': 'object',
       '$ref': '#descriptions/MessagePort',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'iterate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'callback',
       'type': 'object',
       '$ref': '#descriptions/PortCollectionCallback',
      },
     ],
    },
    'remove': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'port',
       'type': 'object',
       '$ref': '#descriptions/MessagePort',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
     ],
    },
   ],
  },
  'WebSocket': {
   'type': 'object',
   'library': 'Web Sockets and Messaging',
   'extends': '#descriptions/EventTarget',
   'properties': {
    'binaryType': {
     'type': 'object',
     '$ref': '#descriptions/BinaryType',
    },
    'bufferedAmount': {
     'type': 'number',
    },
    'CLOSED': {
     'type': 'number',
    },
    'CLOSING': {
     'type': 'number',
    },
    'CONNECTING': {
     'type': 'number',
    },
    'extensions': {
     'type': 'string',
    },
    'onclose': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onopen': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'OPEN': {
     'type': 'number',
    },
    'protocol': {
     'type': 'string',
    },
    'readyState': {
     'type': 'number',
    },
    'url': {
     'type': 'string',
    },
    'close': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'code',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'reason',
       'optional': true,
       'type': 'string',
      },
     ],
    },
    'send': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'data',
       'type': 'object',
      },
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'url',
       'type': 'string',
      },
      {
       'name': 'protocols',
       'optional': true,
       'type': 'object',
       'oneOf' : [
        {
         'type': 'string',
        },
        {
         'type': 'object',
         '$ref': '#descriptions/DOMString[]',
        },
       ],
      },
     ],
    },
   ],
  },
  'Storage': {
   'type': 'object',
   'library': 'Web Storage',
   'properties': {
    'length': {
     'type': 'number',
    },
    'clear': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'getItem': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'key',
       'type': 'string',
      },
     ],
    },
    'key': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'number',
      },
     ],
    },
    'removeItem': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'key',
       'type': 'string',
      },
     ],
    },
    'setItem': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'key',
       'type': 'string',
      },
      {
       'name': 'value',
       'type': 'string',
      },
     ],
    },
   },
  },
  'StorageEvent': {
   'type': 'object',
   'library': 'Web Storage',
   'extends': '#descriptions/Event',
   'properties': {
    'key': {
     'type': 'string',
    },
    'newValue': {
     'type': 'string',
    },
    'oldValue': {
     'type': 'string',
    },
    'storageArea': {
     'type': 'object',
     '$ref': '#descriptions/Storage?',
    },
    'url': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInitDict',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/StorageEventInit',
      },
     ],
    },
   ],
  },
  'SharedWorker': {
   'type': 'object',
   'library': 'Web Workers',
   'extends': '#descriptions/EventTarget',
   'implements' : [
    '#descriptions/AbstractWorker',
   ],
   'properties': {
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'port': {
     'type': 'object',
     '$ref': '#descriptions/MessagePort',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'scriptURL',
       'type': 'string',
      },
      {
       'name': 'name',
       'optional': true,
       'type': 'string',
      },
     ],
    },
   ],
  },
  'Worker': {
   'type': 'object',
   'library': 'Web Workers',
   'extends': '#descriptions/EventTarget',
   'implements' : [
    '#descriptions/AbstractWorker',
   ],
   'properties': {
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onmessage': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'postMessage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'message',
       'type': 'object',
      },
      {
       'name': 'transfer',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/sequence<Transferable>',
      },
     ],
    },
    'terminate': {
     'type': 'function',
     'parameter' : [
     ],
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'scriptURL',
       'type': 'string',
      },
     ],
    },
   ],
  },
  'WorkerGlobalScope': {
   'type': 'object',
   'library': 'Web Workers',
   'extends': '#descriptions/EventTarget',
   'implements' : [
    '#descriptions/ImageBitmapFactories',
    '#descriptions/WindowTimers',
    '#descriptions/WindowBase64',
   ],
   'properties': {
    'location': {
     'type': 'object',
     '$ref': '#descriptions/WorkerLocation',
    },
    'navigator': {
     'type': 'object',
     '$ref': '#descriptions/WorkerNavigator',
    },
    'onerror': {
     'type': 'object',
     '$ref': '#descriptions/OnErrorEventHandler',
    },
    'onlanguagechange': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'onoffline': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'ononline': {
     'type': 'object',
     '$ref': '#descriptions/EventHandler',
    },
    'self': {
     'type': 'object',
     '$ref': '#descriptions/WorkerGlobalScope',
    },
    'atob': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'atob',
       'type': 'string',
      },
     ],
    },
    'btoa': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'btoa',
       'type': 'string',
      },
     ],
    },
    'clearInterval': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'handle',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'clearTimeout': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'handle',
       'optional': true,
       'type': 'number',
      },
     ],
    },
    'close': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'createImageBitmap': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/Promise',
     },
     'parameter' : [
      {
       'name': 'image',
       'type': 'object',
       '$ref': '#descriptions/ImageBitmapSource',
      },
      {
       'name': 'sx',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'sy',
       'type': 'number',
      },
      {
       'name': 'sw',
       'type': 'number',
      },
      {
       'name': 'sh',
       'type': 'number',
      },
     ],
    },
    'importScripts': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'urls',
       'type': 'string',
      },
     ],
    },
    'setInterval': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'handler',
       'type': 'object',
      },
      {
       'name': 'timeout',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
    'setTimeout': {
     'type': 'function',
     'returns': {
      'type': 'number',
     },
     'parameter' : [
      {
       'name': 'handler',
       'type': 'object',
      },
      {
       'name': 'timeout',
       'optional': true,
       'type': 'number',
      },
      {
       'name': 'arguments',
       'type': 'object',
      },
     ],
    },
   },
  },
  'WorkerLocation': {
   'type': 'object',
   'library': 'Web Workers',
   'implements' : [
    '#descriptions/URLUtilsReadOnly',
   ],
   'properties': {
   },
  },
  'WorkerNavigator': {
   'type': 'object',
   'library': 'Web Workers',
   'implements' : [
    '#descriptions/NavigatorID',
    '#descriptions/NavigatorLanguage',
    '#descriptions/NavigatorOnLine',
   ],
   'properties': {
    'appCodeName': {
     'type': 'string',
    },
    'appName': {
     'type': 'string',
    },
    'appVersion': {
     'type': 'string',
    },
    'language': {
     'type': 'string',
    },
    'languages': {
     'type': 'object',
     '$ref': '#descriptions/DOMString[]',
    },
    'onLine': {
     'type': 'boolean',
    },
    'platform': {
     'type': 'string',
    },
    'product': {
     'type': 'string',
    },
    'userAgent': {
     'type': 'string',
    },
    'taintEnabled': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
   },
  },
  'WebGLActiveInfo': {
   'type': 'object',
   'library': 'WebGL',
   'properties': {
    'name': {
     'type': 'string',
    },
    'size': {
     'type': 'object',
     '$ref': '#descriptions/GLint',
    },
    'type': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
   },
  },
  'WebGLBuffer': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLContextEvent': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/Event',
   'properties': {
    'statusMessage': {
     'type': 'string',
    },
   },
   'constructors' : [
    {
     'parameter' : [
      {
       'name': 'type',
       'type': 'string',
      },
      {
       'name': 'eventInit',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/WebGLContextEventInit',
      },
     ],
    },
   ],
  },
  'WebGLFramebuffer': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLObject': {
   'type': 'object',
   'library': 'WebGL',
   'properties': {
   },
  },
  'WebGLProgram': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLRenderbuffer': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLRenderingContext': {
   'type': 'object',
   'library': 'WebGL',
   'implements' : [
    '#descriptions/WebGLRenderingContextBase',
   ],
   'properties': {
    'ACTIVE_ATTRIBUTES': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ACTIVE_TEXTURE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ACTIVE_UNIFORMS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ALIASED_LINE_WIDTH_RANGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ALIASED_POINT_SIZE_RANGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ALPHA_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ALWAYS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ARRAY_BUFFER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ARRAY_BUFFER_BINDING': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ATTACHED_SHADERS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BACK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_DST_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_DST_RGB': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_EQUATION': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_EQUATION_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_EQUATION_RGB': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_SRC_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLEND_SRC_RGB': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BLUE_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BOOL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BOOL_VEC2': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BOOL_VEC3': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BOOL_VEC4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BROWSER_DEFAULT_WEBGL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BUFFER_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BUFFER_USAGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'BYTE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'canvas': {
     'type': 'object',
     '$ref': '#descriptions/HTMLCanvasElement',
    },
    'CCW': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CLAMP_TO_EDGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COLOR_ATTACHMENT0': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COLOR_BUFFER_BIT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COLOR_CLEAR_VALUE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COLOR_WRITEMASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COMPILE_STATUS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'COMPRESSED_TEXTURE_FORMATS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CONSTANT_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CONSTANT_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CONTEXT_LOST_WEBGL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CULL_FACE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CULL_FACE_MODE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CURRENT_PROGRAM': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CURRENT_VERTEX_ATTRIB': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'CW': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DECR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DECR_WRAP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DELETE_STATUS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_ATTACHMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_BUFFER_BIT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_CLEAR_VALUE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_COMPONENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_COMPONENT16': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_FUNC': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_RANGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_STENCIL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_STENCIL_ATTACHMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_TEST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DEPTH_WRITEMASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DITHER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DONT_CARE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'drawingBufferHeight': {
     'type': 'object',
     '$ref': '#descriptions/GLsizei',
    },
    'drawingBufferWidth': {
     'type': 'object',
     '$ref': '#descriptions/GLsizei',
    },
    'DST_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DST_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'DYNAMIC_DRAW': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ELEMENT_ARRAY_BUFFER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ELEMENT_ARRAY_BUFFER_BINDING': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'EQUAL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FASTEST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_MAT2': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_MAT3': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_MAT4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_VEC2': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_VEC3': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FLOAT_VEC4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAGMENT_SHADER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_ATTACHMENT_OBJECT_NAME': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_BINDING': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_COMPLETE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_INCOMPLETE_ATTACHMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_INCOMPLETE_DIMENSIONS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRAMEBUFFER_UNSUPPORTED': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRONT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRONT_AND_BACK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FRONT_FACE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FUNC_ADD': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FUNC_REVERSE_SUBTRACT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'FUNC_SUBTRACT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'GENERATE_MIPMAP_HINT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'GEQUAL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'GREATER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'GREEN_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'HIGH_FLOAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'HIGH_INT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'IMPLEMENTATION_COLOR_READ_FORMAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'IMPLEMENTATION_COLOR_READ_TYPE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INCR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INCR_WRAP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INT_VEC2': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INT_VEC3': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INT_VEC4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INVALID_ENUM': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INVALID_FRAMEBUFFER_OPERATION': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INVALID_OPERATION': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INVALID_VALUE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'INVERT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'KEEP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LEQUAL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LESS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINE_LOOP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINE_STRIP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINE_WIDTH': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINEAR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINEAR_MIPMAP_LINEAR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINEAR_MIPMAP_NEAREST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINES': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LINK_STATUS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LOW_FLOAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LOW_INT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LUMINANCE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'LUMINANCE_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_COMBINED_TEXTURE_IMAGE_UNITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_CUBE_MAP_TEXTURE_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_FRAGMENT_UNIFORM_VECTORS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_RENDERBUFFER_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_TEXTURE_IMAGE_UNITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_TEXTURE_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_VARYING_VECTORS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_VERTEX_ATTRIBS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_VERTEX_TEXTURE_IMAGE_UNITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_VERTEX_UNIFORM_VECTORS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MAX_VIEWPORT_DIMS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MEDIUM_FLOAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MEDIUM_INT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'MIRRORED_REPEAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NEAREST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NEAREST_MIPMAP_LINEAR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NEAREST_MIPMAP_NEAREST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NEVER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NICEST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NO_ERROR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NONE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'NOTEQUAL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_CONSTANT_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_CONSTANT_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_DST_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_DST_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_SRC_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ONE_MINUS_SRC_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'OUT_OF_MEMORY': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'PACK_ALIGNMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'POINTS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'POLYGON_OFFSET_FACTOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'POLYGON_OFFSET_FILL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'POLYGON_OFFSET_UNITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RED_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_ALPHA_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_BINDING': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_BLUE_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_DEPTH_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_GREEN_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_HEIGHT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_INTERNAL_FORMAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_RED_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_STENCIL_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERBUFFER_WIDTH': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RENDERER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'REPEAT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'REPLACE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RGB': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RGB565': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RGB5_A1': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RGBA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'RGBA4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLE_ALPHA_TO_COVERAGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLE_BUFFERS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLE_COVERAGE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLE_COVERAGE_INVERT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLE_COVERAGE_VALUE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLER_2D': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLER_CUBE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SAMPLES': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SCISSOR_BOX': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SCISSOR_TEST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SHADER_TYPE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SHADING_LANGUAGE_VERSION': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SHORT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SRC_ALPHA': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SRC_ALPHA_SATURATE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SRC_COLOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STATIC_DRAW': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_ATTACHMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_FAIL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_FUNC': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_PASS_DEPTH_FAIL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_PASS_DEPTH_PASS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_REF': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_VALUE_MASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BACK_WRITEMASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_BUFFER_BIT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_CLEAR_VALUE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_FAIL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_FUNC': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_INDEX': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_INDEX8': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_PASS_DEPTH_FAIL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_PASS_DEPTH_PASS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_REF': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_TEST': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_VALUE_MASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STENCIL_WRITEMASK': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'STREAM_DRAW': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'SUBPIXEL_BITS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE0': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE1': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE10': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE11': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE12': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE13': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE14': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE15': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE16': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE17': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE18': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE19': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE2': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE20': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE21': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE22': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE23': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE24': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE25': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE26': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE27': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE28': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE29': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE3': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE30': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE31': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE5': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE6': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE7': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE8': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE9': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_2D': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_BINDING_2D': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_BINDING_CUBE_MAP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_NEGATIVE_X': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_NEGATIVE_Y': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_NEGATIVE_Z': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_POSITIVE_X': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_POSITIVE_Y': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_CUBE_MAP_POSITIVE_Z': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_MAG_FILTER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_MIN_FILTER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_WRAP_S': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TEXTURE_WRAP_T': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TRIANGLE_FAN': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TRIANGLE_STRIP': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'TRIANGLES': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNPACK_ALIGNMENT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNPACK_COLORSPACE_CONVERSION_WEBGL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNPACK_FLIP_Y_WEBGL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNPACK_PREMULTIPLY_ALPHA_WEBGL': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_BYTE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_INT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_SHORT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_SHORT_4_4_4_4': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_SHORT_5_5_5_1': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'UNSIGNED_SHORT_5_6_5': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VALIDATE_STATUS': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VENDOR': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERSION': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_BUFFER_BINDING': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_ENABLED': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_NORMALIZED': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_POINTER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_SIZE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_STRIDE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_ATTRIB_ARRAY_TYPE': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VERTEX_SHADER': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'VIEWPORT': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'ZERO': {
     'type': 'object',
     '$ref': '#descriptions/GLenum',
    },
    'activeTexture': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'texture',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'attachShader': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'bindAttribLocation': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'bindBuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLBuffer?',
      },
     ],
    },
    'bindFramebuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'framebuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLFramebuffer?',
      },
     ],
    },
    'bindRenderbuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'renderbuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLRenderbuffer?',
      },
     ],
    },
    'bindTexture': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'texture',
       'type': 'object',
       '$ref': '#descriptions/WebGLTexture?',
      },
     ],
    },
    'blendColor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'red',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'green',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'blue',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'alpha',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
     ],
    },
    'blendEquation': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'blendEquationSeparate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'modeRGB',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'modeAlpha',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'blendFunc': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'sfactor',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'dfactor',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'blendFuncSeparate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'srcRGB',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'dstRGB',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'srcAlpha',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'dstAlpha',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'bufferData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'size_data',
       'type': 'object',
      },
      {
       'name': 'usage',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'bufferSubData': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/GLintptr',
      },
      {
       'name': 'data',
       'type': 'object',
      },
     ],
    },
    'checkFramebufferStatus': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLenum',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'clear': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mask',
       'type': 'object',
       '$ref': '#descriptions/GLbitfield',
      },
     ],
    },
    'clearColor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'red',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'green',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'blue',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'alpha',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
     ],
    },
    'clearDepth': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'depth',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
     ],
    },
    'clearStencil': {
     'type': 'function',
     'parameter' : [
      {
       'name': 's',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'colorMask': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'red',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'green',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'blue',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'alpha',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
     ],
    },
    'compileShader': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'compressedTexImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'internalformat',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'border',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'data',
       'type': 'object',
       '$ref': '#descriptions/ArrayBufferView',
      },
     ],
    },
    'compressedTexSubImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'xoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'yoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'format',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'data',
       'type': 'object',
       '$ref': '#descriptions/ArrayBufferView',
      },
     ],
    },
    'copyTexImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'internalformat',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'border',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'copyTexSubImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'xoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'yoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
     ],
    },
    'createBuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLBuffer?',
     },
     'parameter' : [
     ],
    },
    'createFramebuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLFramebuffer?',
     },
     'parameter' : [
     ],
    },
    'createProgram': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLProgram?',
     },
     'parameter' : [
     ],
    },
    'createRenderbuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLRenderbuffer?',
     },
     'parameter' : [
     ],
    },
    'createShader': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLShader?',
     },
     'parameter' : [
      {
       'name': 'type',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'createTexture': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLTexture?',
     },
     'parameter' : [
     ],
    },
    'cullFace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'deleteBuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLBuffer?',
      },
     ],
    },
    'deleteFramebuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'framebuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLFramebuffer?',
      },
     ],
    },
    'deleteProgram': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'deleteRenderbuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'renderbuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLRenderbuffer?',
      },
     ],
    },
    'deleteShader': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'deleteTexture': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'texture',
       'type': 'object',
       '$ref': '#descriptions/WebGLTexture?',
      },
     ],
    },
    'depthFunc': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'func',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'depthMask': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'flag',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
     ],
    },
    'depthRange': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'zNear',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'zFar',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
     ],
    },
    'detachShader': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'disable': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cap',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'disableVertexAttribArray': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'drawArrays': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'first',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'count',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
     ],
    },
    'drawElements': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'count',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'type',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/GLintptr',
      },
     ],
    },
    'enable': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'cap',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'enableVertexAttribArray': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'finish': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'flush': {
     'type': 'function',
     'parameter' : [
     ],
    },
    'framebufferRenderbuffer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'attachment',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'renderbuffertarget',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'renderbuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLRenderbuffer?',
      },
     ],
    },
    'framebufferTexture2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'attachment',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'textarget',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'texture',
       'type': 'object',
       '$ref': '#descriptions/WebGLTexture?',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'frontFace': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'generateMipmap': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getActiveAttrib': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLActiveInfo?',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'getActiveUniform': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLActiveInfo?',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'getAttachedShaders': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/sequence<WebGLShader>?',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'getAttribLocation': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLint',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getBufferParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getContextAttributes': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLContextAttributes?',
     },
     'parameter' : [
     ],
    },
    'getError': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLenum',
     },
     'parameter' : [
     ],
    },
    'getExtension': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/object?',
     },
     'parameter' : [
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getFramebufferAttachmentParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'attachment',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getProgramInfoLog': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'getProgramParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getRenderbufferParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getShaderInfoLog': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'getShaderParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getShaderPrecisionFormat': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLShaderPrecisionFormat?',
     },
     'parameter' : [
      {
       'name': 'shadertype',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'precisiontype',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getShaderSource': {
     'type': 'function',
     'returns': {
      'type': 'string',
     },
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'getSupportedExtensions': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/sequence<DOMString>?',
     },
     'parameter' : [
     ],
    },
    'getTexParameter': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getUniform': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
     ],
    },
    'getUniformLocation': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/WebGLUniformLocation?',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
      {
       'name': 'name',
       'type': 'string',
      },
     ],
    },
    'getVertexAttrib': {
     'type': 'function',
     'returns': {
      'type': 'object',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'getVertexAttribOffset': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLsizeiptr',
     },
     'parameter' : [
      {
       'name': 'index',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'hint': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'mode',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'isBuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'buffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLBuffer?',
      },
     ],
    },
    'isContextLost': {
     'type': 'function',
     'returns': {
      'type': 'boolean',
     },
     'parameter' : [
     ],
    },
    'isEnabled': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'cap',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'isFramebuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'framebuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLFramebuffer?',
      },
     ],
    },
    'isProgram': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'isRenderbuffer': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'renderbuffer',
       'type': 'object',
       '$ref': '#descriptions/WebGLRenderbuffer?',
      },
     ],
    },
    'isShader': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
     ],
    },
    'isTexture': {
     'type': 'function',
     'returns': {
      'type': 'object',
      '$ref': '#descriptions/GLboolean',
     },
     'parameter' : [
      {
       'name': 'texture',
       'type': 'object',
       '$ref': '#descriptions/WebGLTexture?',
      },
     ],
    },
    'lineWidth': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'linkProgram': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'pixelStorei': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'param',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'polygonOffset': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'factor',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'units',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'readPixels': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'format',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'type',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pixels',
       'type': 'object',
       '$ref': '#descriptions/ArrayBufferView?',
      },
     ],
    },
    'renderbufferStorage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'internalformat',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
     ],
    },
    'sampleCoverage': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'value',
       'type': 'object',
       '$ref': '#descriptions/GLclampf',
      },
      {
       'name': 'invert',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
     ],
    },
    'scissor': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
     ],
    },
    'shaderSource': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'shader',
       'type': 'object',
       '$ref': '#descriptions/WebGLShader?',
      },
      {
       'name': 'source',
       'type': 'string',
      },
     ],
    },
    'stencilFunc': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'func',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'ref',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'mask',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'stencilFuncSeparate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'face',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'func',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'ref',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'mask',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'stencilMask': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'mask',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'stencilMaskSeparate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'face',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'mask',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
     ],
    },
    'stencilOp': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'fail',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'zfail',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'zpass',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'stencilOpSeparate': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'face',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'fail',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'zfail',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'zpass',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
     ],
    },
    'texImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'internalformat',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'width_format',
       'type': 'object',
      },
      {
       'name': 'height_type',
       'type': 'object',
      },
      {
       'name': 'border_pixels_image_canvas_video',
       'type': 'object',
      },
      {
       'name': 'format',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'type',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pixels',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/ArrayBufferView?',
      },
     ],
    },
    'texParameterf': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'param',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'texParameteri': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pname',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'param',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'texSubImage2D': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'target',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'level',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'xoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'yoffset',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width_format',
       'type': 'object',
      },
      {
       'name': 'height_type',
       'type': 'object',
      },
      {
       'name': 'format_pixels_image_canvas_video',
       'type': 'object',
      },
      {
       'name': 'type',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'pixels',
       'optional': true,
       'type': 'object',
       '$ref': '#descriptions/ArrayBufferView?',
      },
     ],
    },
    'uniform1f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'uniform1fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform1i': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'uniform1iv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform2f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'uniform2fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform2i': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'uniform2iv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform3f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'uniform3fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform3i': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'uniform3iv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform4f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'w',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'uniform4fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniform4i': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
       '$ref': '#descriptions/WebGLUniformLocation?',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'w',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
     ],
    },
    'uniform4iv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'v',
       'type': 'object',
      },
     ],
    },
    'uniformMatrix2fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'transpose',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
    'uniformMatrix3fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'transpose',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
    'uniformMatrix4fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'location',
       'type': 'object',
      },
      {
       'name': 'transpose',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'value',
       'type': 'object',
      },
     ],
    },
    'useProgram': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'validateProgram': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'program',
       'type': 'object',
       '$ref': '#descriptions/WebGLProgram?',
      },
     ],
    },
    'vertexAttrib1f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'vertexAttrib1fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'values',
       'type': 'object',
      },
     ],
    },
    'vertexAttrib2f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'vertexAttrib2fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'values',
       'type': 'object',
      },
     ],
    },
    'vertexAttrib3f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'vertexAttrib3fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'values',
       'type': 'object',
      },
     ],
    },
    'vertexAttrib4f': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'z',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
      {
       'name': 'w',
       'type': 'object',
       '$ref': '#descriptions/GLfloat',
      },
     ],
    },
    'vertexAttrib4fv': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'values',
       'type': 'object',
      },
     ],
    },
    'vertexAttribPointer': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'indx',
       'type': 'object',
       '$ref': '#descriptions/GLuint',
      },
      {
       'name': 'size',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'type',
       'type': 'object',
       '$ref': '#descriptions/GLenum',
      },
      {
       'name': 'normalized',
       'type': 'object',
       '$ref': '#descriptions/GLboolean',
      },
      {
       'name': 'stride',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'offset',
       'type': 'object',
       '$ref': '#descriptions/GLintptr',
      },
     ],
    },
    'viewport': {
     'type': 'function',
     'parameter' : [
      {
       'name': 'x',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'y',
       'type': 'object',
       '$ref': '#descriptions/GLint',
      },
      {
       'name': 'width',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
      {
       'name': 'height',
       'type': 'object',
       '$ref': '#descriptions/GLsizei',
      },
     ],
    },
   },
  },
  'WebGLShader': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLShaderPrecisionFormat': {
   'type': 'object',
   'library': 'WebGL',
   'properties': {
    'precision': {
     'type': 'object',
     '$ref': '#descriptions/GLint',
    },
    'rangeMax': {
     'type': 'object',
     '$ref': '#descriptions/GLint',
    },
    'rangeMin': {
     'type': 'object',
     '$ref': '#descriptions/GLint',
    },
   },
  },
  'WebGLTexture': {
   'type': 'object',
   'library': 'WebGL',
   'extends': '#descriptions/WebGLObject',
   'properties': {
   },
  },
  'WebGLUniformLocation': {
   'type': 'object',
   'library': 'WebGL',
   'properties': {
   },
  },
 },
 'globals': {
  'applicationCache': {
   'type': 'object',
   '$ref': '#descriptions/ApplicationCache',
  },
  'closed': {
   'type': 'boolean',
  },
  'document': {
   'type': 'object',
   '$ref': '#descriptions/Document',
  },
  'external': {
   'type': 'object',
   '$ref': '#descriptions/External',
  },
  'frameElement': {
   'type': 'object',
   '$ref': '#descriptions/Element?',
  },
  'frames': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy',
  },
  'history': {
   'type': 'object',
   '$ref': '#descriptions/History',
  },
  'indexedDB': {
   'type': 'object',
   '$ref': '#descriptions/IDBFactory',
  },
  'length': {
   'type': 'number',
  },
  'localStorage': {
   'type': 'object',
   '$ref': '#descriptions/Storage',
  },
  'location': {
   'type': 'object',
   '$ref': '#descriptions/Location',
  },
  'locationbar': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'menubar': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'name': {
   'type': 'string',
  },
  'navigator': {
   'type': 'object',
   '$ref': '#descriptions/Navigator',
  },
  'onabort': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onafterprint': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onautocomplete': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onautocompleteerror': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onbeforeprint': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onbeforeunload': {
   'type': 'object',
   '$ref': '#descriptions/OnBeforeUnloadEventHandler',
  },
  'onblur': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oncancel': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oncanplay': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oncanplaythrough': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onchange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onclick': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onclose': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oncontextmenu': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oncuechange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondblclick': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondrag': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragend': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragenter': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragexit': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragleave': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragover': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondragstart': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondrop': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ondurationchange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onemptied': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onended': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onerror': {
   'type': 'object',
   '$ref': '#descriptions/OnErrorEventHandler',
  },
  'onfocus': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onhashchange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oninput': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'oninvalid': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onkeydown': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onkeypress': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onkeyup': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onlanguagechange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onload': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onloadeddata': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onloadedmetadata': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onloadstart': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmessage': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmousedown': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmouseenter': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmouseleave': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmousemove': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmouseout': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmouseover': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmouseup': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onmousewheel': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onoffline': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ononline': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onpagehide': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onpageshow': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onpause': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onplay': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onplaying': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onpopstate': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onprogress': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onratechange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onreset': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onresize': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onscroll': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onseeked': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onseeking': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onselect': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onshow': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onsort': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onstalled': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onstorage': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onsubmit': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onsuspend': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ontimeupdate': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'ontoggle': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onunload': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onvolumechange': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'onwaiting': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'opener': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy?',
  },
  'parent': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy',
  },
  'personalbar': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'scrollbars': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'self': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy',
  },
  'sessionStorage': {
   'type': 'object',
   '$ref': '#descriptions/Storage',
  },
  'status': {
   'type': 'string',
  },
  'statusbar': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'toolbar': {
   'type': 'object',
   '$ref': '#descriptions/BarProp',
  },
  'top': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy',
  },
  'window': {
   'type': 'object',
   '$ref': '#descriptions/WindowProxy',
  },
  'alert': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'message',
     'optional': true,
     'type': 'string',
    },
   ],
  },
  'atob': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'atob',
     'type': 'string',
    },
   ],
  },
  'blur': {
   'type': 'function',
   'parameter' : [
   ],
  },
  'btoa': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'btoa',
     'type': 'string',
    },
   ],
  },
  'cancelAnimationFrame': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'handle',
     'type': 'number',
    },
   ],
  },
  'clearInterval': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'handle',
     'optional': true,
     'type': 'number',
    },
   ],
  },
  'clearTimeout': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'handle',
     'optional': true,
     'type': 'number',
    },
   ],
  },
  'close': {
   'type': 'function',
   'parameter' : [
   ],
  },
  'confirm': {
   'type': 'function',
   'returns': {
    'type': 'boolean',
   },
   'parameter' : [
    {
     'name': 'message',
     'optional': true,
     'type': 'string',
    },
   ],
  },
  'createImageBitmap': {
   'type': 'function',
   'returns': {
    'type': 'object',
    '$ref': '#descriptions/Promise',
   },
   'parameter' : [
    {
     'name': 'image',
     'type': 'object',
     '$ref': '#descriptions/ImageBitmapSource',
    },
    {
     'name': 'sx',
     'optional': true,
     'type': 'number',
    },
    {
     'name': 'sy',
     'type': 'number',
    },
    {
     'name': 'sw',
     'type': 'number',
    },
    {
     'name': 'sh',
     'type': 'number',
    },
   ],
  },
  'focus': {
   'type': 'function',
   'parameter' : [
   ],
  },
  'getComputedStyle': {
   'type': 'function',
   'returns': {
    'type': 'object',
    '$ref': '#descriptions/CSSStyleDeclaration',
   },
   'parameter' : [
    {
     'name': 'elt',
     'type': 'object',
     '$ref': '#descriptions/Element',
    },
    {
     'name': 'pseudoElt',
     'optional': true,
     'type': 'string',
    },
   ],
  },
  'getter': {
   'type': 'function',
   'returns': {
    'type': 'object',
    '$ref': '#descriptions/WindowProxy',
   },
   'parameter' : [
    {
     'name': 'index_name',
     'type': 'object',
    },
   ],
  },
  'open': {
   'type': 'function',
   'returns': {
    'type': 'object',
    '$ref': '#descriptions/WindowProxy',
   },
   'parameter' : [
    {
     'name': 'url',
     'optional': true,
     'type': 'string',
    },
    {
     'name': 'target',
     'optional': true,
     'type': 'string',
    },
    {
     'name': 'features',
     'optional': true,
     'type': 'string',
    },
    {
     'name': 'replace',
     'optional': true,
     'type': 'boolean',
    },
   ],
  },
  'postMessage': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'message',
     'type': 'object',
    },
    {
     'name': 'targetOrigin',
     'type': 'string',
    },
    {
     'name': 'transfer',
     'optional': true,
     'type': 'object',
     '$ref': '#descriptions/sequence<Transferable>',
    },
   ],
  },
  'print': {
   'type': 'function',
   'parameter' : [
   ],
  },
  'prompt': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'message',
     'optional': true,
     'type': 'string',
    },
    {
     'name': 'default',
     'optional': true,
     'type': 'string',
    },
   ],
  },
  'requestAnimationFrame': {
   'type': 'function',
   'returns': {
    'type': 'number',
   },
   'parameter' : [
    {
     'name': 'callback',
     'type': 'object',
     '$ref': '#descriptions/FrameRequestCallback',
    },
   ],
  },
  'setInterval': {
   'type': 'function',
   'returns': {
    'type': 'number',
   },
   'parameter' : [
    {
     'name': 'handler',
     'type': 'object',
    },
    {
     'name': 'timeout',
     'optional': true,
     'type': 'number',
    },
    {
     'name': 'arguments',
     'type': 'object',
    },
   ],
  },
  'setTimeout': {
   'type': 'function',
   'returns': {
    'type': 'number',
   },
   'parameter' : [
    {
     'name': 'handler',
     'type': 'object',
    },
    {
     'name': 'timeout',
     'optional': true,
     'type': 'number',
    },
    {
     'name': 'arguments',
     'type': 'object',
    },
   ],
  },
  'showModalDialog': {
   'type': 'function',
   'returns': {
    'type': 'object',
   },
   'parameter' : [
    {
     'name': 'url',
     'type': 'string',
    },
    {
     'name': 'argument',
     'optional': true,
     'type': 'object',
    },
   ],
  },
  'stop': {
   'type': 'function',
   'parameter' : [
   ],
  },
  'Infinity': {
   'type': 'number',
  },
  'NaN': {
   'type': 'number',
  },
  'undefined': {
   'type': 'object',
  },
  'decodeURI': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'encodedURI',
     'type': 'string',
    },
   ],
  },
  'decodeURIComponent': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'encodedURIComponent',
     'type': 'string',
    },
   ],
  },
  'encodeURI': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'uri',
     'type': 'string',
    },
   ],
  },
  'encodeURIComponent': {
   'type': 'function',
   'returns': {
    'type': 'string',
   },
   'parameter' : [
    {
     'name': 'uriComponent',
     'type': 'string',
    },
   ],
  },
  'eval': {
   'type': 'function',
   'returns': {
    'type': 'object',
   },
   'parameter' : [
    {
     'name': 'x',
     'type': 'string',
    },
   ],
  },
  'isFinite': {
   'type': 'function',
   'returns': {
    'type': 'boolean',
   },
   'parameter' : [
    {
     'name': 'n',
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   ],
  },
  'isNaN': {
   'type': 'function',
   'returns': {
    'type': 'boolean',
   },
   'parameter' : [
    {
     'name': 'n',
     'type': 'object',
     '$ref': '#descriptions/double',
    },
   ],
  },
  'parseFloat': {
   'type': 'function',
   'returns': {
    'type': 'object',
    '$ref': '#descriptions/double',
   },
   'parameter' : [
    {
     'name': 's',
     'type': 'string',
    },
   ],
  },
  'parseInt': {
   'type': 'function',
   'returns': {
    'type': 'number',
   },
   'parameter' : [
    {
     'name': 's',
     'type': 'string',
    },
    {
     'name': 'radix',
     'type': 'number',
    },
   ],
  },
  'onmessage': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
  'postMessage': {
   'type': 'function',
   'parameter' : [
    {
     'name': 'message',
     'type': 'object',
    },
    {
     'name': 'transfer',
     'optional': true,
     'type': 'object',
     '$ref': '#descriptions/sequence<Transferable>',
    },
   ],
  },
  'applicationCache': {
   'type': 'object',
   '$ref': '#descriptions/ApplicationCache',
  },
  'name': {
   'type': 'string',
  },
  'onconnect': {
   'type': 'object',
   '$ref': '#descriptions/EventHandler',
  },
 },
}
