跳到正文

ESA Pages 体验之旅(6):检查 ESA 的运行环境

ESA Pages 体验之旅 · 1 · 2 · 3 · 4 · 5 · 第 6 篇(当前) · 7 · 8 · 9

worker 成功生成,也能在本机 Node 中加载,上传 ESA 后却在初始化阶段报错。先是 navigator 不存在,继续检查又发现 Deno 对象存在,但 Deno.build.os 不可读。

两处访问都来自打包进去的兼容实现。它们按浏览器或 Deno 的特征选择分支,ESA 提供的对象却不完整。修复具体报错之前,需要先确认这些全局和模块在真实节点上提供了哪些能力。

最初接入 TableStore Node SDK 时,直接按浏览器入口处理会进入 lib/util-browser.js,依赖未准备的 Bower 模块 jsSHA 和 spark-md5。改用 neutral,并明确 mainFields: ['module', 'main'] 后,选回 Node 实现,又遇到裸 crypto、os、url 等模块无法解析。

应用为解决这些解析错误,引入 esbuild-plugins-node-modules-polyfill@1.8.3,给缺少的 Node 模块绑定兼容实现,随后才生成 worker。插件依赖 @jspm/core@2.1.0,Node API 的兼容代码由这个包提供。

SDK 构建先被依赖阻塞,加入 polyfill 后生成产物,随后才暴露宿主假设错误

插件使用 browser 条件解析这些实现。它自己做的选择,不会因为外层 platform: 'neutral' 自动变成 Node 版本;ESA CLI 也没有替应用引入这套 JSPM。

其中 process 兼容实现初始化 LANG 时读取 navigator.language。URL 兼容实现看到 Deno 对象存在,继续读取 Deno.build.os。在这次 ESA 入口中,两处假设分别失败:

ReferenceError: navigator is not defined
TypeError: Cannot read properties of undefined (reading 'os')

报错定位到了兼容层的环境判断,接下来要检查它实际调用的 API。只补一个全局名称,还无法满足后续成员和行为要求。完整构建与依赖对照见兼容层来源与错误记录弹窗。

从文档和探针确认 API

ESA 基于 V8 Isolate,提供 Web API 和部分 Node 兼容模块。RuntimeAPI 手册给出了接口范围,但文档没列出的能力还可能存在,列出的模块也未必拥有 Node 的全部成员。

探针分别记录全局名称、模块导入、具体成员和实际行为。四层检查对应不同的失败位置:

全局名称、模块导入、具体成员和已知结果,需要逐层检查

层次 例子 能回答什么
名称 typeof globalThis.Buffer 是否有这个全局
模块 导入 node:buffer 模块能否加载
成员 检查 Buffer.from、crypto.createHmac 需要的方法是否存在
行为 固定输入的编码或 HMAC 对照 结果是否符合应用所需语义

例如全局 Buffer 不存在,不能推出 node:buffer 不可用;模块导入成功,也不能推出 TCP 连接、文件读写或全部加密算法都可用。

模块探测采用固定白名单,逐项动态导入并捕获错误。如果把不支持的静态导入放在探针顶层,整个函数可能在初始化时失败,连其他观察结果都拿不到。行为检查使用固定向量,只测需要的操作,不在能力探针里接入生产数据库或用户数据。

远端探测结果

这组结果来自 2026-10-27 的隔离调试入口,范围限于表中所测模块、成员和行为:

检查 本次结果 对应用的影响
全局 Buffer、process 不存在 改为显式检查模块,不依赖全局注入
node:buffer、node:crypto 与所测编码、摘要、HMAC 通过 这些操作可以继续作为适配候选
node:process 可导入,但没有所测 cwd、exit 不能当作完整 Node 进程
Web URL 通过所测行为 可优先使用标准 URL 解析
node:url 导入失败 需要区分 Web URL 和旧式 Node URL 接口
node:fs、node:net 导入失败 不可直接使用所测文件与 TCP 驱动
Deno 对象 存在,build 不存在 仅判断 Deno 存在不足以选择实现

原始能力观察见远端能力快照弹窗。这份结果让适配有了依据,例如可以继续验证原生 crypto,而旧式 Node URL 接口需要另找实现。

本地执行器的差异

示例的 Nuxt 开发服务在 Node 中执行 API。产物预览虽然加载最终 worker,宿主仍是 Node。它们分别验证业务和产物,都不能代替真实 ESA。

CLI dev 另外提供本地函数执行器。CLI 控制程序本身在 Node 中运行,但用户函数不一定由这个 Node 进程执行。固定 CLI 1.0.13 源码可看到:macOS 两种架构和 Linux x86_64 使用 EdgeWorker2;Windows 启动真实 Deno 子进程,并加载 ESA API mock。

Node 中的 CLI 控制程序,将用户函数交给各平台可用的本地执行器

Windows 的 Deno Mock 由真实 Deno 子进程运行,再加载 ESA 模拟层。这解释了本地 dev 为什么可以通过某些 Deno 环境分支;线上 ESA 使用的仍是自己的边缘宿主。

目前分发的 EdgeWorker2 原生二进制没有 Windows 版本,Linux ELF 也不能直接由 Windows 原生执行。这是现有包能确认的客观条件。完整的选型动机没有公开材料支持,不应把兼容成本的推测写成厂商结论。

2026-10-28 在 Node 26.12.0、Deno 2.9.6 和 WSL Linux x86_64 的 EdgeWorker2 上补了相同检查:

检查 Node Windows Deno Mock Linux EdgeWorker2 本地 ESA 远端
navigator.language 可读 可读 ReferenceError ReferenceError
Deno 存在时读取 build.os 未进入分支 可读 可读 TypeError

Mac 分支只核读源码,没有实际运行 Mac。这个矩阵解释了漏检原因:本地模拟在具体全局与成员上不一致,即使采用 CLI dev 也不能保证复现全部线上行为。执行器与包装参数的完整记录见本地执行器对照弹窗。

日常开发继续保留 Nuxt 热更新,发布前验证最终包和真实入口。Nuxt 代理 ESA API 的双服务方式是另一个可选方案,目前没有实施。

扩展 runtime-compat 测试

最小探针回答了 SDK 当前需要的几项能力,但不足以描述更广泛的 JavaScript、Intl 或 Web API。为扩大观察范围,这次再引入 unjs/runtime-compat,固定提交 34e6b291fdbe38d5c761e0f342a4d879d89504dc,使用其测试数据与采集机制。

先给采集器放入 eval、Promise、URL、TextEncoder 等已知应通过的对照。如果采集器自己不能执行,数千条失败只说明采集链路有问题。之后再逐批运行,避免某一个不支持的模块让全批初始化失败。

第一次每批 128 项触发了定时器限制:单次最多 32 个 Web timer。调整为每批 24 项后,441 批取得 10,192 项结果;计划中的 10,584 项有 392 项不在选定暴露范围,另有 22 个网络相关用例明确排除。数据中还包含不适用于服务端的浏览器测试。

这些结果需要按用例解释。true 表示通过,false 记录未通过,null 则可能是错误或没有得到结果;大量 DOM 测试也不适用于服务端。检查 SDK 时,应筛出签名、编码等实际依赖的 API,再查看对应条件与返回,总通过数不能代表应用兼容率。

完整采集数据与口径弹窗保留批量条件和分类结果。新读者可以先用最小能力探针弹窗验证自己的依赖,再决定是否运行这组更大的测试。

保留能力记录和回归检查

能力记录至少需要模块名、所测成员、固定输入、预期结果、实际错误,以及 CLI、入口和日期。同一个模块升级后,重新执行相关行为检查,比只保存一张支持勾选表更有用。

本机还增加过两个独立进程,分别删除 navigator、令 Deno 缺席或仅为 {},加载最终应用 bundle。这能防止已知环境假设再次进入产物,却不能模拟整个 ESA。

静态规则可以限制已确认不支持的导入,例如让 fs 等宿主依赖只能经过平台适配层。最终包加载检查负责依赖完整性,已知故障回归负责防止相同环境假设重现,真实节点测试负责验证目标 API。三者覆盖的失败位置不同,发布时各自保留。

兼容层来源与构建阻塞对照

打开原文件 polyfill-necessity-control.json

记录浏览器入口缺依赖、neutral 入口裸模块未解析,以及加入显式 polyfill 后生成产物的对照。JSPM 来自应用引入的插件依赖,不属于 ESA CLI 默认注入。

真实 ESA 隔离入口的能力观察

打开原文件 capabilities-remote.json

快照记录测试日期与入口。全局存在、模块导入及行为向量分开解释,失败只限定到所测能力。

CLI 本地执行器与参数包装对照

打开原文件 capabilities-ew2-cli.json

Node 为 26.12.0,Deno 为 2.9.6,CLI 为 1.0.13。EdgeWorker2 实际运行环境是 WSL Linux x86_64;Mac 仅核读源码。Deno mock、EdgeWorker2 本地包装和远端 fetch 参数数量也有差异,配置应显式适配,检查时不输出凭据。

另一次本地构建把 cache.method 改写为 mockCache,未识别同名局部绑定,导致 ReferenceError。该结果属于 CLI 转换行为,不能登记为 Deno 本身不支持 Cache API。

runtime-compat 数据与采集条件

打开原文件 remote.json

固定采集版本,按每批 24 项执行。计划项、实际返回项、主动排除项和 null 结果分别统计;不从总通过数推导全平台兼容率。

远端分类结果
{
  "at": "2026-10-26T23:30:11.287Z",
  "sourceCommit": "34e6b291fdbe38d5c761e0f342a4d879d89504dc",
  "entry": "independent ESA production deployment, authenticated default debug domain",
  "collectorNodeVersion": "v26.12.0",
  "meta": {
    "probe": "unjs-esa-compat-v1",
    "upstreamCommit": "34e6b291fdbe38d5c761e0f342a4d879d89504dc",
    "collectorVersion": "10.16.1",
    "total": 10584,
    "groups": {
      "javascript": 1094,
      "api": 9431,
      "webassembly": 59
    },
    "excludedNetworkInvocation": [
      "api.EventSource",
      "api.EventSource.close",
      "api.EventSource.EventSource",
      "api.EventSource.EventSource.options_withCredentials_parameter",
      "api.EventSource.readyState",
      "api.EventSource.url",
      "api.EventSource.withCredentials",
      "api.ReadableStream",
      "api.ReadableStream.@@asyncIterator",
      "api.ReadableStream.cancel",
      "api.ReadableStream.getReader",
      "api.ReadableStream.locked",
      "api.ReadableStream.pipeThrough",
      "api.ReadableStream.pipeTo",
      "api.ReadableStream.tee",
      "api.ReadableStream.values",
      "api.ReadableStreamDefaultReader",
      "api.ReadableStreamDefaultReader.cancel",
      "api.ReadableStreamDefaultReader.closed",
      "api.ReadableStreamDefaultReader.read",
      "api.ReadableStreamDefaultReader.releaseLock",
      "api.Response.Response.accept_readablestream"
    ],
    "sampleIds": [
      "api.ANGLE_instanced_arrays",
      "api.ANGLE_instanced_arrays.drawArraysInstancedANGLE",
      "api.ANGLE_instanced_arrays.drawElementsInstancedANGLE",
      "api.ANGLE_instanced_arrays.vertexAttribDivisorANGLE"
    ],
    "globalsBeforeHarness": {
      "navigator": "undefined",
      "denoBuild": "undefined"
    }
  },
  "batches": [
    {
      "offset": 0,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 24,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 48,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 72,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 96,
      "selected": 24,
      "returned": 22
    },
    {
      "offset": 120,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 144,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 168,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 192,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 216,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 240,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 264,
      "selected": 24,
      "returned": 15
    },
    {
      "offset": 288,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 312,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 336,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 360,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 384,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 408,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 432,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 456,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 480,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 504,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 528,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 552,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 576,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 600,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 624,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 648,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 672,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 696,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 720,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 744,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 768,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 792,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 816,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 840,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 864,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 888,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 912,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 936,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 960,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 984,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1008,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1032,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1056,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1080,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1104,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1128,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1152,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 1176,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1200,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1224,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1248,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1272,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1296,
      "selected": 24,
      "returned": 8
    },
    {
      "offset": 1320,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1344,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1368,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 1392,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1416,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1440,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1464,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1488,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1512,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1536,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1560,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1584,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1608,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1632,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1656,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1680,
      "selected": 24,
      "returned": 18
    },
    {
      "offset": 1704,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1728,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1752,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 1776,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1800,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1824,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1848,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1872,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1896,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1920,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1944,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1968,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 1992,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2016,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2040,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2064,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2088,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2112,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2136,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2160,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2184,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2208,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2232,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 2256,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2280,
      "selected": 24,
      "returned": 19
    },
    {
      "offset": 2304,
      "selected": 24,
      "returned": 15
    },
    {
      "offset": 2328,
      "selected": 24,
      "returned": 14
    },
    {
      "offset": 2352,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 2376,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 2400,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2424,
      "selected": 24,
      "returned": 14
    },
    {
      "offset": 2448,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2472,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2496,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2520,
      "selected": 24,
      "returned": 22
    },
    {
      "offset": 2544,
      "selected": 24,
      "returned": 19
    },
    {
      "offset": 2568,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2592,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2616,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2640,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2664,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2688,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2712,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2736,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2760,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2784,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2808,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2832,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2856,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2880,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2904,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2928,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2952,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 2976,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3000,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3024,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3048,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3072,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3096,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3120,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3144,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3168,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3192,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3216,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3240,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3264,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3288,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3312,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3336,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3360,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3384,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3408,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3432,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3456,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3480,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3504,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3528,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3552,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3576,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3600,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3624,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3648,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3672,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3696,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3720,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3744,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3768,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3792,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3816,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3840,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3864,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3888,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3912,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3936,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3960,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 3984,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4008,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4032,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4056,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4080,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4104,
      "selected": 24,
      "returned": 6
    },
    {
      "offset": 4128,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 4152,
      "selected": 24,
      "returned": 18
    },
    {
      "offset": 4176,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4200,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 4224,
      "selected": 24,
      "returned": 0
    },
    {
      "offset": 4248,
      "selected": 24,
      "returned": 19
    },
    {
      "offset": 4272,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4296,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4320,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4344,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4368,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4392,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4416,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4440,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4464,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4488,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4512,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4536,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4560,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4584,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4608,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4632,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4656,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 4680,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4704,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4728,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4752,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4776,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4800,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4824,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4848,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4872,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4896,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4920,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4944,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4968,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 4992,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5016,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5040,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5064,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 5088,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5112,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5136,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5160,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5184,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5208,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5232,
      "selected": 24,
      "returned": 11
    },
    {
      "offset": 5256,
      "selected": 24,
      "returned": 0
    },
    {
      "offset": 5280,
      "selected": 24,
      "returned": 1
    },
    {
      "offset": 5304,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5328,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5352,
      "selected": 24,
      "returned": 17
    },
    {
      "offset": 5376,
      "selected": 24,
      "returned": 16
    },
    {
      "offset": 5400,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5424,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5448,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5472,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5496,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5520,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5544,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5568,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 5592,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5616,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5640,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5664,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5688,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5712,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 5736,
      "selected": 24,
      "returned": 21
    },
    {
      "offset": 5760,
      "selected": 24,
      "returned": 14
    },
    {
      "offset": 5784,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 5808,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5832,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5856,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5880,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5904,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 5928,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5952,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 5976,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6000,
      "selected": 24,
      "returned": 18
    },
    {
      "offset": 6024,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6048,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6072,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6096,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6120,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6144,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6168,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6192,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6216,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6240,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6264,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6288,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6312,
      "selected": 24,
      "returned": 22
    },
    {
      "offset": 6336,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6360,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6384,
      "selected": 24,
      "returned": 22
    },
    {
      "offset": 6408,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6432,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6456,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6480,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6504,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6528,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6552,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6576,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6600,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6624,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6648,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6672,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6696,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6720,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6744,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6768,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6792,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6816,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6840,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6864,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6888,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6912,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6936,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6960,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 6984,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7008,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7032,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7056,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7080,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7104,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7128,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7152,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7176,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7200,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7224,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7248,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7272,
      "selected": 24,
      "returned": 18
    },
    {
      "offset": 7296,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7320,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7344,
      "selected": 24,
      "returned": 17
    },
    {
      "offset": 7368,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 7392,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7416,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7440,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7464,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7488,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7512,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7536,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7560,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7584,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7608,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 7632,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7656,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7680,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7704,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7728,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7752,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7776,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7800,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7824,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7848,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7872,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7896,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7920,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7944,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7968,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 7992,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8016,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8040,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8064,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8088,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8112,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8136,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 8160,
      "selected": 24,
      "returned": 20
    },
    {
      "offset": 8184,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8208,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8232,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8256,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8280,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8304,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8328,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8352,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8376,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8400,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8424,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8448,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8472,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8496,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8520,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8544,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8568,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8592,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8616,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8640,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8664,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8688,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8712,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8736,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8760,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8784,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8808,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8832,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 8856,
      "selected": 24,
      "returned": 18
    },
    {
      "offset": 8880,
      "selected": 24,
      "returned": 10
    },
    {
      "offset": 8904,
      "selected": 24,
      "returned": 0
    },
    {
      "offset": 8928,
      "selected": 24,
      "returned": 5
    },
    {
      "offset": 8952,
      "selected": 24,
      "returned": 19
    },
    {
      "offset": 8976,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9000,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9024,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9048,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9072,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9096,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9120,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9144,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9168,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9192,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9216,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9240,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9264,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9288,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9312,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9336,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9360,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9384,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9408,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9432,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9456,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9480,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9504,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9528,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9552,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9576,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9600,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9624,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9648,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9672,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9696,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9720,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9744,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9768,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9792,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9816,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9840,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9864,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9888,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9912,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9936,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9960,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 9984,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10008,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10032,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10056,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10080,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10104,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10128,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10152,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10176,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10200,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10224,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10248,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10272,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10296,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10320,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10344,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10368,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10392,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10416,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10440,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10464,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10488,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10512,
      "selected": 24,
      "returned": 23
    },
    {
      "offset": 10536,
      "selected": 24,
      "returned": 24
    },
    {
      "offset": 10560,
      "selected": 24,
      "returned": 4
    }
  ],
  "failures": [],
  "results": [
    {
      "name": "api.ANGLE_instanced_arrays",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"ANGLE_instanced_arrays\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.ANGLE_instanced_arrays.drawArraysInstancedANGLE",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"ANGLE_instanced_arrays\"\n  );\n  return !!instance && \"drawArraysInstancedANGLE\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.ANGLE_instanced_arrays.drawElementsInstancedANGLE",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"ANGLE_instanced_arrays\"\n  );\n  return !!instance && \"drawElementsInstancedANGLE\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.ANGLE_instanced_arrays.vertexAttribDivisorANGLE",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"ANGLE_instanced_arrays\"\n  );\n  return !!instance && \"vertexAttribDivisorANGLE\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.AbortController",
      "info": {
        "code": "\"AbortController\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortController.AbortController",
      "info": {
        "code": "bcd.testConstructor('AbortController')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.AbortController.abort",
      "info": {
        "code": "\"AbortController\" in self && \"abort\" in AbortController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortController.abort.reason_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"AbortController\" in self)) {\n    return { result: false, message: \"AbortController is not defined\" };\n  }\n  var controller = new AbortController();\n  if (!(\"abort\" in controller)) {\n    return { result: false, message: \"AbortController.abort is undefined\" };\n  }\n  controller.abort(\"foo bar\");\n  return controller.signal.aborted && controller.signal.reason == \"foo bar\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortController.signal",
      "info": {
        "code": "\"AbortController\" in self && \"signal\" in AbortController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal",
      "info": {
        "code": "\"AbortSignal\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.abort_static",
      "info": {
        "code": "\"AbortSignal\" in self && \"abort\" in AbortSignal",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.abort_static.reason_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"AbortSignal\" in self)) {\n    return { result: false, message: \"AbortSignal is not defined\" };\n  }\n  if (!(\"abort\" in AbortSignal)) {\n    return { result: false, message: \"AbortSignal.abort is undefined\" };\n  }\n  var instance = AbortSignal.abort(\"Foo bar\");\n  return instance.reason === \"Foo bar\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.aborted",
      "info": {
        "code": "\"AbortSignal\" in self && \"aborted\" in AbortSignal.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.any_static",
      "info": {
        "code": "\"AbortSignal\" in self && \"any\" in AbortSignal",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.reason",
      "info": {
        "code": "\"AbortSignal\" in self && \"reason\" in AbortSignal.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.throwIfAborted",
      "info": {
        "code": "\"AbortSignal\" in self && \"throwIfAborted\" in AbortSignal.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbortSignal.timeout_static",
      "info": {
        "code": "\"AbortSignal\" in self && \"timeout\" in AbortSignal",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.AbsoluteOrientationSensor",
      "info": {
        "code": "\"AbsoluteOrientationSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbsoluteOrientationSensor.AbsoluteOrientationSensor",
      "info": {
        "code": "bcd.testConstructor('AbsoluteOrientationSensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AbsoluteOrientationSensor is not defined"
    },
    {
      "name": "api.AbstractRange",
      "info": {
        "code": "\"AbstractRange\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbstractRange.collapsed",
      "info": {
        "code": "\"AbstractRange\" in self && \"collapsed\" in AbstractRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbstractRange.endContainer",
      "info": {
        "code": "\"AbstractRange\" in self && \"endContainer\" in AbstractRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbstractRange.endOffset",
      "info": {
        "code": "\"AbstractRange\" in self && \"endOffset\" in AbstractRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbstractRange.startContainer",
      "info": {
        "code": "\"AbstractRange\" in self && \"startContainer\" in AbstractRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AbstractRange.startOffset",
      "info": {
        "code": "\"AbstractRange\" in self && \"startOffset\" in AbstractRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Accelerometer",
      "info": {
        "code": "\"Accelerometer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Accelerometer.Accelerometer",
      "info": {
        "code": "bcd.testConstructor('Accelerometer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Accelerometer is not defined"
    },
    {
      "name": "api.Accelerometer.x",
      "info": {
        "code": "\"Accelerometer\" in self && \"x\" in Accelerometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Accelerometer.y",
      "info": {
        "code": "\"Accelerometer\" in self && \"y\" in Accelerometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Accelerometer.z",
      "info": {
        "code": "\"Accelerometer\" in self && \"z\" in Accelerometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AmbientLightSensor",
      "info": {
        "code": "\"AmbientLightSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AmbientLightSensor.AmbientLightSensor",
      "info": {
        "code": "bcd.testConstructor('AmbientLightSensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AmbientLightSensor is not defined"
    },
    {
      "name": "api.AmbientLightSensor.illuminance",
      "info": {
        "code": "\"AmbientLightSensor\" in self && \"illuminance\" in AmbientLightSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnalyserNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.AnalyserNode",
      "info": {
        "code": "bcd.testConstructor('AnalyserNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AnalyserNode is not defined"
    },
    {
      "name": "api.AnalyserNode.fftSize",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"fftSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.frequencyBinCount",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"frequencyBinCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.getByteFrequencyData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"getByteFrequencyData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.getByteTimeDomainData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"getByteTimeDomainData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.getFloatFrequencyData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"getFloatFrequencyData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.getFloatTimeDomainData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"getFloatTimeDomainData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.maxDecibels",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"maxDecibels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.minDecibels",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"minDecibels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AnalyserNode.smoothingTimeConstant",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"smoothingTimeConstant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.Animation",
      "info": {
        "code": "\"Animation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.Animation",
      "info": {
        "code": "bcd.testConstructor('Animation')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Animation is not defined"
    },
    {
      "name": "api.Animation.cancel",
      "info": {
        "code": "\"Animation\" in self && \"cancel\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.commitStyles",
      "info": {
        "code": "\"Animation\" in self && \"commitStyles\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.currentTime",
      "info": {
        "code": "\"Animation\" in self && \"currentTime\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.effect",
      "info": {
        "code": "\"Animation\" in self && \"effect\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.finish",
      "info": {
        "code": "\"Animation\" in self && \"finish\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.finished",
      "info": {
        "code": "\"Animation\" in self && \"finished\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.id",
      "info": {
        "code": "\"Animation\" in self && \"id\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.overallProgress",
      "info": {
        "code": "\"Animation\" in self && \"overallProgress\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.pause",
      "info": {
        "code": "\"Animation\" in self && \"pause\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.pending",
      "info": {
        "code": "\"Animation\" in self && \"pending\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.persist",
      "info": {
        "code": "\"Animation\" in self && \"persist\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.play",
      "info": {
        "code": "\"Animation\" in self && \"play\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.playState",
      "info": {
        "code": "\"Animation\" in self && \"playState\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.playbackRate",
      "info": {
        "code": "\"Animation\" in self && \"playbackRate\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.ready",
      "info": {
        "code": "\"Animation\" in self && \"ready\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.replaceState",
      "info": {
        "code": "\"Animation\" in self && \"replaceState\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.reverse",
      "info": {
        "code": "\"Animation\" in self && \"reverse\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.startTime",
      "info": {
        "code": "\"Animation\" in self && \"startTime\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.timeline",
      "info": {
        "code": "\"Animation\" in self && \"timeline\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.trigger",
      "info": {
        "code": "\"Animation\" in self && \"trigger\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Animation.updatePlaybackRate",
      "info": {
        "code": "\"Animation\" in self && \"updatePlaybackRate\" in Animation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect",
      "info": {
        "code": "\"AnimationEffect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.after",
      "info": {
        "code": "\"AnimationEffect\" in self && \"after\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.before",
      "info": {
        "code": "\"AnimationEffect\" in self && \"before\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.getComputedTiming",
      "info": {
        "code": "\"AnimationEffect\" in self && \"getComputedTiming\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.getTiming",
      "info": {
        "code": "\"AnimationEffect\" in self && \"getTiming\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.nextSibling",
      "info": {
        "code": "\"AnimationEffect\" in self && \"nextSibling\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.parent",
      "info": {
        "code": "\"AnimationEffect\" in self && \"parent\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.previousSibling",
      "info": {
        "code": "\"AnimationEffect\" in self && \"previousSibling\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.remove",
      "info": {
        "code": "\"AnimationEffect\" in self && \"remove\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.replace",
      "info": {
        "code": "\"AnimationEffect\" in self && \"replace\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEffect.updateTiming",
      "info": {
        "code": "\"AnimationEffect\" in self && \"updateTiming\" in AnimationEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new AnimationEvent(\"animationend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AnimationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AnimationEvent.AnimationEvent",
      "info": {
        "code": "bcd.testConstructor('AnimationEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AnimationEvent is not defined"
    },
    {
      "name": "api.AnimationEvent.animationName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new AnimationEvent(\"animationend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AnimationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"animationName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AnimationEvent.elapsedTime",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new AnimationEvent(\"animationend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AnimationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"elapsedTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AnimationEvent.initAnimationEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new AnimationEvent(\"animationend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AnimationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initAnimationEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AnimationEvent.pseudoElement",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new AnimationEvent(\"animationend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AnimationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"pseudoElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AnimationNodeList",
      "info": {
        "code": "\"AnimationNodeList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationNodeList.item",
      "info": {
        "code": "\"AnimationNodeList\" in self && \"item\" in AnimationNodeList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationNodeList.length",
      "info": {
        "code": "\"AnimationNodeList\" in self && \"length\" in AnimationNodeList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationPlaybackEvent",
      "info": {
        "code": "\"AnimationPlaybackEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationPlaybackEvent.AnimationPlaybackEvent",
      "info": {
        "code": "bcd.testConstructor('AnimationPlaybackEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AnimationPlaybackEvent is not defined"
    },
    {
      "name": "api.AnimationPlaybackEvent.currentTime",
      "info": {
        "code": "\"AnimationPlaybackEvent\" in self && \"currentTime\" in AnimationPlaybackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationPlaybackEvent.timelineTime",
      "info": {
        "code": "\"AnimationPlaybackEvent\" in self && \"timelineTime\" in AnimationPlaybackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTimeline",
      "info": {
        "code": "\"AnimationTimeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTimeline.currentTime",
      "info": {
        "code": "\"AnimationTimeline\" in self && \"currentTime\" in AnimationTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTimeline.duration",
      "info": {
        "code": "\"AnimationTimeline\" in self && \"duration\" in AnimationTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTimeline.play",
      "info": {
        "code": "\"AnimationTimeline\" in self && \"play\" in AnimationTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger",
      "info": {
        "code": "\"AnimationTrigger\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.AnimationTrigger",
      "info": {
        "code": "bcd.testConstructor('AnimationTrigger')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AnimationTrigger is not defined"
    },
    {
      "name": "api.AnimationTrigger.behavior",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"behavior\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.exitRangeEnd",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"exitRangeEnd\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.exitRangeStart",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"exitRangeStart\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.rangeEnd",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"rangeEnd\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.rangeStart",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"rangeStart\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AnimationTrigger.timeline",
      "info": {
        "code": "\"AnimationTrigger\" in self && \"timeline\" in AnimationTrigger.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Attr",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.localName",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"localName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.name",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.namespaceURI",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"namespaceURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.ownerElement",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"ownerElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.prefix",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"prefix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.specified",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"specified\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attr.value",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.setAttribute(\"data-foo\", \"bar\");\n  var instance;\n  if (\"getAttributeNode\" in el) {\n    instance = el.getAttributeNode(\"data-foo\");\n  } else if (\"attributes\" in el) {\n    instance = el.attributes.item(0);\n  }\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Attribution",
      "info": {
        "code": "\"Attribution\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Attribution.aggregationServices",
      "info": {
        "code": "\"Attribution\" in self && \"aggregationServices\" in Attribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Attribution.measureConversion",
      "info": {
        "code": "\"Attribution\" in self && \"measureConversion\" in Attribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Attribution.saveImpression",
      "info": {
        "code": "\"Attribution\" in self && \"saveImpression\" in Attribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices",
      "info": {
        "code": "\"AttributionAggregationServices\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"AttributionAggregationServices\" in self && !!(AttributionAggregationServices.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.entries",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"entries\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.forEach",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"forEach\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.get",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"get\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.has",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"has\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.keys",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"keys\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.size",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"size\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AttributionAggregationServices.values",
      "info": {
        "code": "\"AttributionAggregationServices\" in self && \"values\" in AttributionAggregationServices.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioBuffer",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.AudioBuffer",
      "info": {
        "code": "bcd.testConstructor('AudioBuffer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioBuffer is not defined"
    },
    {
      "name": "api.AudioBuffer.copyFromChannel",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"copyFromChannel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.copyToChannel",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"copyToChannel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.duration",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"duration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.getChannelData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"getChannelData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.length",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.numberOfChannels",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"numberOfChannels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBuffer.sampleRate",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  return !!instance && \"sampleRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.AudioBufferSourceNode",
      "info": {
        "code": "bcd.testConstructor('AudioBufferSourceNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioBufferSourceNode is not defined"
    },
    {
      "name": "api.AudioBufferSourceNode.buffer",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"buffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.detune",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"detune\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.loop",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"loop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.loopEnd",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"loopEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.loopStart",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"loopStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.playbackRate",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"playbackRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioBufferSourceNode.start",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioContext",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return \"AudioContext\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.AudioContext",
      "info": {
        "code": "bcd.testConstructor('AudioContext')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioContext is not defined"
    },
    {
      "name": "api.AudioContext.AudioContext.options_latencyHint_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return bcd.testOptionParam(\n    window.AudioContext || window.webkitAudioContext,\n    \"constructor\",\n    \"latencyHint\",\n    \"playback\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.AudioContext.AudioContext.options_sampleRate_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return bcd.testOptionParam(\n    window.AudioContext || window.webkitAudioContext,\n    \"constructor\",\n    \"sampleRate\",\n    \"44100\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.AudioContext.AudioContext.options_sinkId_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return bcd.testOptionParam(\n    window.AudioContext || window.webkitAudioContext,\n    \"constructor\",\n    \"sinkId\",\n    \"\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.AudioContext.baseLatency",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"baseLatency\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.close",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.createMediaElementSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createMediaElementSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.createMediaStreamDestination",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createMediaStreamDestination\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.createMediaStreamSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createMediaStreamSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.createMediaStreamTrackSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createMediaStreamTrackSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.getOutputTimestamp",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"getOutputTimestamp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.outputLatency",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"outputLatency\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.resume",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"resume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.setSinkId",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"setSinkId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.sinkId",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"sinkId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioContext.suspend",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"suspend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData",
      "info": {
        "code": "\"AudioData\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.AudioData",
      "info": {
        "code": "bcd.testConstructor('AudioData')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioData is not defined"
    },
    {
      "name": "api.AudioData.allocationSize",
      "info": {
        "code": "\"AudioData\" in self && \"allocationSize\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.clone",
      "info": {
        "code": "\"AudioData\" in self && \"clone\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.close",
      "info": {
        "code": "\"AudioData\" in self && \"close\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.copyTo",
      "info": {
        "code": "\"AudioData\" in self && \"copyTo\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.duration",
      "info": {
        "code": "\"AudioData\" in self && \"duration\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.format",
      "info": {
        "code": "\"AudioData\" in self && \"format\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.numberOfChannels",
      "info": {
        "code": "\"AudioData\" in self && \"numberOfChannels\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.numberOfFrames",
      "info": {
        "code": "\"AudioData\" in self && \"numberOfFrames\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.sampleRate",
      "info": {
        "code": "\"AudioData\" in self && \"sampleRate\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioData.timestamp",
      "info": {
        "code": "\"AudioData\" in self && \"timestamp\" in AudioData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder",
      "info": {
        "code": "\"AudioDecoder\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.AudioDecoder",
      "info": {
        "code": "bcd.testConstructor('AudioDecoder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioDecoder is not defined"
    },
    {
      "name": "api.AudioDecoder.close",
      "info": {
        "code": "\"AudioDecoder\" in self && \"close\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.configure",
      "info": {
        "code": "\"AudioDecoder\" in self && \"configure\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.decode",
      "info": {
        "code": "\"AudioDecoder\" in self && \"decode\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.decodeQueueSize",
      "info": {
        "code": "\"AudioDecoder\" in self && \"decodeQueueSize\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.flush",
      "info": {
        "code": "\"AudioDecoder\" in self && \"flush\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.isConfigSupported_static",
      "info": {
        "code": "\"AudioDecoder\" in self && \"isConfigSupported\" in AudioDecoder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.reset",
      "info": {
        "code": "\"AudioDecoder\" in self && \"reset\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDecoder.state",
      "info": {
        "code": "\"AudioDecoder\" in self && \"state\" in AudioDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioDestinationNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.destination;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioDestinationNode.maxChannelCount",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.destination;\n  return !!instance && \"maxChannelCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioEncoder",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.AudioEncoder",
      "info": {
        "code": "bcd.testConstructor('AudioEncoder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.close",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.configure",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"configure\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.configure.bitrateMode",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return bcd.testOptionParam(instance, \"configure\", \"bitrateMode\", \"constant\", {\n    bitrate: 320000,\n    codec: \"mp3\",\n    numberOfChannels: 2,\n    sampleRate: 44100\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.configure.opus",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return bcd.testOptionParam(\n    instance,\n    \"configure\",\n    \"opus\",\n    {},\n    { bitrate: 320000, codec: \"mp3\", numberOfChannels: 2, sampleRate: 44100 }\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.configure.opus.opus_application",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  function configure(opus) {\n    instance.configure({\n      bitrate: 320000,\n      codec: \"mp3\",\n      numberOfChannels: 2,\n      sampleRate: 44100,\n      opus: opus\n    });\n  }\n  return bcd.testOptionParam(configure, null, \"application\", \"voip\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.configure.opus.opus_signal",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  function configure(opus) {\n    instance.configure({\n      bitrate: 320000,\n      codec: \"mp3\",\n      numberOfChannels: 2,\n      sampleRate: 44100,\n      opus: opus\n    });\n  }\n  return bcd.testOptionParam(configure, null, \"signal\", \"voice\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.encode",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"encode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.encodeQueueSize",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"encodeQueueSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.flush",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"flush\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.isConfigSupported_static",
      "info": {
        "code": "\"AudioEncoder\" in self && \"isConfigSupported\" in AudioEncoder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioEncoder.reset",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"reset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioEncoder.state",
      "info": {
        "code": "(function () {\n  if (!(\"AudioEncoder\" in self)) {\n    return { result: false, message: \"AudioEncoder is not defined\" };\n  }\n  var instance = new AudioEncoder({\n    output: function () {},\n    error: function () {}\n  });\n  return !!instance && \"state\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AudioEncoder is not defined"
    },
    {
      "name": "api.AudioListener",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.dopplerFactor",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"dopplerFactor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.forwardX",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"forwardX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.forwardY",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"forwardY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.forwardZ",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"forwardZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.positionX",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"positionX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.positionY",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"positionY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.positionZ",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"positionZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.setOrientation",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"setOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.setPosition",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"setPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.speedOfSound",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"speedOfSound\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.upX",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"upX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.upY",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"upY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioListener.upZ",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var instance = reusableInstances.audioContext.listener;\n  return !!instance && \"upZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.channelCount",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"channelCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.channelCountMode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"channelCountMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.channelInterpretation",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"channelInterpretation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.connect",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"connect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.context",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"context\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.disconnect",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"disconnect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.disconnect.destination_parameter",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser(); // XXX testOptionParam doesn't work here\n  return {\n    result: null,\n    message: \"Detection methods are unsupported for this method\"\n  };\n\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var node2 = reusableInstances.audioContext.createAnalyser();\n  if (!node2) {\n    return { result: false, message: \"node2 is falsy\" };\n  }\n  instance.connect(node2);\n  return bcd.testOptionParam(instance, \"disconnect\", null, node2);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.disconnect.input_parameter",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser(); // XXX testOptionParam doesn't work here\n  return {\n    result: null,\n    message: \"Detection methods are unsupported for this method\"\n  };\n\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var node2 = reusableInstances.audioContext.createAnalyser();\n  if (!node2) {\n    return { result: false, message: \"node2 is falsy\" };\n  }\n  instance.connect(node2);\n  function disconnect(input) {\n    instance.disconnect(node2, 0, input);\n  }\n  return bcd.testOptionParam(disconnect, null, null, 0);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.disconnect.output_parameter",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser(); // XXX testOptionParam doesn't work here\n  return {\n    result: null,\n    message: \"Detection methods are unsupported for this method\"\n  };\n\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var node2 = reusableInstances.audioContext.createAnalyser();\n  if (!node2) {\n    return { result: false, message: \"node2 is falsy\" };\n  }\n  instance.connect(node2);\n  function disconnect(output) {\n    instance.disconnect(node2, output);\n  }\n  return bcd.testOptionParam(disconnect, null, null, 0);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.numberOfInputs",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"numberOfInputs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioNode.numberOfOutputs",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createAnalyser\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createAnalyser is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createAnalyser();\n  return !!instance && \"numberOfOutputs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.automationRate",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"automationRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.cancelAndHoldAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"cancelAndHoldAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.cancelScheduledValues",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"cancelScheduledValues\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.defaultValue",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"defaultValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.exponentialRampToValueAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"exponentialRampToValueAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.linearRampToValueAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"linearRampToValueAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.maxValue",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"maxValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.minValue",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"minValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.setTargetAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"setTargetAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.setValueAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"setValueAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.setValueCurveAtTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"setValueCurveAtTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParam.value",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var biquadFilterNode = reusableInstances.audioContext.createBiquadFilter();\n  if (!biquadFilterNode) {\n    return { result: false, message: \"biquadFilterNode is falsy\" };\n  }\n  var instance = biquadFilterNode.gain;\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioParamMap",
      "info": {
        "code": "\"AudioParamMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"AudioParamMap\" in self && !!(AudioParamMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.entries",
      "info": {
        "code": "\"AudioParamMap\" in self && \"entries\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.forEach",
      "info": {
        "code": "\"AudioParamMap\" in self && \"forEach\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.get",
      "info": {
        "code": "\"AudioParamMap\" in self && \"get\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.has",
      "info": {
        "code": "\"AudioParamMap\" in self && \"has\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.keys",
      "info": {
        "code": "\"AudioParamMap\" in self && \"keys\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.size",
      "info": {
        "code": "\"AudioParamMap\" in self && \"size\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioParamMap.values",
      "info": {
        "code": "\"AudioParamMap\" in self && \"values\" in AudioParamMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioProcessingEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  var inputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  var outputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  try {\n    instance = new AudioProcessingEvent(\"audioprocess\", {\n      inputBuffer: inputBuffer,\n      outputBuffer: outputBuffer,\n      playbackTime: 0\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AudioProcessingEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: AudioBuffer is not defined"
    },
    {
      "name": "api.AudioProcessingEvent.AudioProcessingEvent",
      "info": {
        "code": "bcd.testConstructor('AudioProcessingEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioProcessingEvent is not defined"
    },
    {
      "name": "api.AudioProcessingEvent.inputBuffer",
      "info": {
        "code": "(function () {\n  var instance;\n  var inputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  var outputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  try {\n    instance = new AudioProcessingEvent(\"audioprocess\", {\n      inputBuffer: inputBuffer,\n      outputBuffer: outputBuffer,\n      playbackTime: 0\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AudioProcessingEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"inputBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: AudioBuffer is not defined"
    },
    {
      "name": "api.AudioProcessingEvent.outputBuffer",
      "info": {
        "code": "(function () {\n  var instance;\n  var inputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  var outputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  try {\n    instance = new AudioProcessingEvent(\"audioprocess\", {\n      inputBuffer: inputBuffer,\n      outputBuffer: outputBuffer,\n      playbackTime: 0\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AudioProcessingEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"outputBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: AudioBuffer is not defined"
    },
    {
      "name": "api.AudioProcessingEvent.playbackTime",
      "info": {
        "code": "(function () {\n  var instance;\n  var inputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  var outputBuffer = new AudioBuffer({ length: 1, sampleRate: 30000 });\n  try {\n    instance = new AudioProcessingEvent(\"audioprocess\", {\n      inputBuffer: inputBuffer,\n      outputBuffer: outputBuffer,\n      playbackTime: 0\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"AudioProcessingEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"playbackTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: AudioBuffer is not defined"
    },
    {
      "name": "api.AudioScheduledSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return \"AudioScheduledSourceNode\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioScheduledSourceNode.start",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioScheduledSourceNode.stop",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBufferSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBufferSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBufferSource();\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioSession",
      "info": {
        "code": "\"AudioSession\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioSession.state",
      "info": {
        "code": "\"AudioSession\" in self && \"state\" in AudioSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioSession.type",
      "info": {
        "code": "\"AudioSession\" in self && \"type\" in AudioSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioSinkInfo",
      "info": {
        "code": "\"AudioSinkInfo\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioSinkInfo.type",
      "info": {
        "code": "\"AudioSinkInfo\" in self && \"type\" in AudioSinkInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioTrack",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.enabled",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"enabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.id",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.kind",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"kind\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.label",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.language",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"language\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrack.sourceBuffer",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var audioTracks = el.audioTracks;\n  if (!audioTracks) {\n    return { result: false, message: \"audioTracks is falsy\" };\n  }\n  var instance = audioTracks[0];\n  return !!instance && \"sourceBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrackList",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var instance = el.audioTracks;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrackList.getTrackById",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var instance = el.audioTracks;\n  return !!instance && \"getTrackById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioTrackList.length",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-audio-blip\");\n  var instance = el.audioTracks;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.AudioWorklet",
      "info": {
        "code": "\"AudioWorklet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioWorklet.port",
      "info": {
        "code": "\"AudioWorklet\" in self && \"port\" in AudioWorklet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AudioWorkletNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!reusableInstances.audioContext.audioWorklet) {\n    return { result: false, message: \"Audio worklets are not available\" };\n  }\n  var promise = reusableInstances.audioContext.audioWorklet\n    .addModule(\n      \"/resources/custom-tests/api/AudioWorkletNode/WhiteNoiseProcessor.js\"\n    )\n    .then(function () {\n      return new AudioWorkletNode(\n        reusableInstances.audioContext,\n        \"white-noise-processor\"\n      );\n    });\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioWorkletNode.AudioWorkletNode",
      "info": {
        "code": "bcd.testConstructor('AudioWorkletNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: AudioWorkletNode is not defined"
    },
    {
      "name": "api.AudioWorkletNode.parameters",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!reusableInstances.audioContext.audioWorklet) {\n    return { result: false, message: \"Audio worklets are not available\" };\n  }\n  var promise = reusableInstances.audioContext.audioWorklet\n    .addModule(\n      \"/resources/custom-tests/api/AudioWorkletNode/WhiteNoiseProcessor.js\"\n    )\n    .then(function () {\n      return new AudioWorkletNode(\n        reusableInstances.audioContext,\n        \"white-noise-processor\"\n      );\n    });\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"parameters\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AudioWorkletNode.port",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!reusableInstances.audioContext.audioWorklet) {\n    return { result: false, message: \"Audio worklets are not available\" };\n  }\n  var promise = reusableInstances.audioContext.audioWorklet\n    .addModule(\n      \"/resources/custom-tests/api/AudioWorkletNode/WhiteNoiseProcessor.js\"\n    )\n    .then(function () {\n      return new AudioWorkletNode(\n        reusableInstances.audioContext,\n        \"white-noise-processor\"\n      );\n    });\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"port\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.AuthenticatorAssertionResponse",
      "info": {
        "code": "\"AuthenticatorAssertionResponse\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAssertionResponse.authenticatorData",
      "info": {
        "code": "\"AuthenticatorAssertionResponse\" in self && \"authenticatorData\" in AuthenticatorAssertionResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAssertionResponse.signature",
      "info": {
        "code": "\"AuthenticatorAssertionResponse\" in self && \"signature\" in AuthenticatorAssertionResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAssertionResponse.userHandle",
      "info": {
        "code": "\"AuthenticatorAssertionResponse\" in self && \"userHandle\" in AuthenticatorAssertionResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse.attestationObject",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self && \"attestationObject\" in AuthenticatorAttestationResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse.getAuthenticatorData",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self && \"getAuthenticatorData\" in AuthenticatorAttestationResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse.getPublicKey",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self && \"getPublicKey\" in AuthenticatorAttestationResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse.getPublicKeyAlgorithm",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self && \"getPublicKeyAlgorithm\" in AuthenticatorAttestationResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorAttestationResponse.getTransports",
      "info": {
        "code": "\"AuthenticatorAttestationResponse\" in self && \"getTransports\" in AuthenticatorAttestationResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorResponse",
      "info": {
        "code": "\"AuthenticatorResponse\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.AuthenticatorResponse.clientDataJSON",
      "info": {
        "code": "\"AuthenticatorResponse\" in self && \"clientDataJSON\" in AuthenticatorResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchManager",
      "info": {
        "code": "\"BackgroundFetchManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchManager.fetch",
      "info": {
        "code": "\"BackgroundFetchManager\" in self && \"fetch\" in BackgroundFetchManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchManager.get",
      "info": {
        "code": "\"BackgroundFetchManager\" in self && \"get\" in BackgroundFetchManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchManager.getIds",
      "info": {
        "code": "\"BackgroundFetchManager\" in self && \"getIds\" in BackgroundFetchManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRecord",
      "info": {
        "code": "\"BackgroundFetchRecord\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRecord.request",
      "info": {
        "code": "\"BackgroundFetchRecord\" in self && \"request\" in BackgroundFetchRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRecord.responseReady",
      "info": {
        "code": "\"BackgroundFetchRecord\" in self && \"responseReady\" in BackgroundFetchRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.abort",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"abort\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.downloadTotal",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"downloadTotal\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.downloaded",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"downloaded\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.failureReason",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"failureReason\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.id",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"id\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.match",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"match\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.matchAll",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"matchAll\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.recordsAvailable",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"recordsAvailable\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.result",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"result\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.uploadTotal",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"uploadTotal\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BackgroundFetchRegistration.uploaded",
      "info": {
        "code": "\"BackgroundFetchRegistration\" in self && \"uploaded\" in BackgroundFetchRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BarProp",
      "info": {
        "code": "(function () {\n  var instance = window.toolbar;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.BarProp.visible",
      "info": {
        "code": "(function () {\n  var instance = window.toolbar;\n  return !!instance && \"visible\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.BarcodeDetector",
      "info": {
        "code": "\"BarcodeDetector\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BarcodeDetector.BarcodeDetector",
      "info": {
        "code": "bcd.testConstructor('BarcodeDetector')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BarcodeDetector is not defined"
    },
    {
      "name": "api.BarcodeDetector.detect",
      "info": {
        "code": "\"BarcodeDetector\" in self && \"detect\" in BarcodeDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BarcodeDetector.getSupportedFormats_static",
      "info": {
        "code": "\"BarcodeDetector\" in self && \"getSupportedFormats\" in BarcodeDetector",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return \"BaseAudioContext\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.audioWorklet",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"audioWorklet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createAnalyser",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createAnalyser\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createBiquadFilter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createBiquadFilter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createBufferSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createBufferSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createChannelMerger",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createChannelMerger\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createChannelSplitter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createChannelSplitter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createConstantSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createConstantSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createConvolver",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createConvolver\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createDelay",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createDelay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createDynamicsCompressor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createDynamicsCompressor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createGain",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createGain\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createIIRFilter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createIIRFilter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createOscillator",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createOscillator\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createPanner",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createPanner\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createPeriodicWave",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createPeriodicWave\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createPeriodicWave.constraints_disableNormalization_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  if (!(instance && instance.createPeriodicWave)) {\n    return {\n      result: false,\n      message: \"instance.createPeriodicWave is not defined\"\n    };\n  }\n  function create(constraints) {\n    var real = new Float32Array(2);\n    var imag = new Float32Array(2);\n\n    real[0] = 0;\n    real[1] = 1;\n    imag[0] = 0;\n    imag[1] = 0;\n\n    instance.createPeriodicWave(real, imag, constraints);\n  }\n  return bcd.testOptionParam(create, null, \"disableNormalization\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "instance.createPeriodicWave is not defined"
    },
    {
      "name": "api.BaseAudioContext.createScriptProcessor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createScriptProcessor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createStereoPanner",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createStereoPanner\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.createWaveShaper",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"createWaveShaper\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.currentTime",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"currentTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.decodeAudioData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"decodeAudioData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.decodeAudioData.returns_promise",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  var ctx = reusableInstances.audioContext;\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  if (!(instance && instance.decodeAudioData)) {\n    return {\n      result: false,\n      message: \"instance.decodeAudioData is not defined\"\n    };\n  }\n  var value = instance.decodeAudioData(new ArrayBuffer());\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ctx is falsy"
    },
    {
      "name": "api.BaseAudioContext.destination",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"destination\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.listener",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"listener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.renderQuantumSize",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"renderQuantumSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.sampleRate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"sampleRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BaseAudioContext.state",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.audioContext;\n  return !!instance && \"state\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Baseline",
      "info": {
        "code": "\"Baseline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Baseline.name",
      "info": {
        "code": "\"Baseline\" in self && \"name\" in Baseline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Baseline.value",
      "info": {
        "code": "\"Baseline\" in self && \"value\" in Baseline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BatteryManager",
      "info": {
        "code": "(function () {\n  if (!(\"getBattery\" in navigator)) {\n    return { result: false, message: \"navigator.getBattery() is not defined\" };\n  }\n  var promise = navigator.getBattery();\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BatteryManager.charging",
      "info": {
        "code": "(function () {\n  if (!(\"getBattery\" in navigator)) {\n    return { result: false, message: \"navigator.getBattery() is not defined\" };\n  }\n  var promise = navigator.getBattery();\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"charging\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BatteryManager.chargingTime",
      "info": {
        "code": "(function () {\n  if (!(\"getBattery\" in navigator)) {\n    return { result: false, message: \"navigator.getBattery() is not defined\" };\n  }\n  var promise = navigator.getBattery();\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"chargingTime\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BatteryManager.dischargingTime",
      "info": {
        "code": "(function () {\n  if (!(\"getBattery\" in navigator)) {\n    return { result: false, message: \"navigator.getBattery() is not defined\" };\n  }\n  var promise = navigator.getBattery();\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"dischargingTime\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BatteryManager.level",
      "info": {
        "code": "(function () {\n  if (!(\"getBattery\" in navigator)) {\n    return { result: false, message: \"navigator.getBattery() is not defined\" };\n  }\n  var promise = navigator.getBattery();\n  promise.then(function () {});\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"level\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BeforeInstallPromptEvent",
      "info": {
        "code": "(function () {\n  try {\n    var instance = new BeforeInstallPromptEvent(\"\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: BeforeInstallPromptEvent is not defined"
    },
    {
      "name": "api.BeforeInstallPromptEvent.BeforeInstallPromptEvent",
      "info": {
        "code": "bcd.testConstructor('BeforeInstallPromptEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BeforeInstallPromptEvent is not defined"
    },
    {
      "name": "api.BeforeInstallPromptEvent.platforms",
      "info": {
        "code": "(function () {\n  try {\n    var instance = new BeforeInstallPromptEvent(\"\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"platforms\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: BeforeInstallPromptEvent is not defined"
    },
    {
      "name": "api.BeforeInstallPromptEvent.prompt",
      "info": {
        "code": "(function () {\n  try {\n    var instance = new BeforeInstallPromptEvent(\"\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"prompt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: BeforeInstallPromptEvent is not defined"
    },
    {
      "name": "api.BeforeInstallPromptEvent.userChoice",
      "info": {
        "code": "(function () {\n  try {\n    var instance = new BeforeInstallPromptEvent(\"\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"userChoice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: BeforeInstallPromptEvent is not defined"
    },
    {
      "name": "api.BeforeUnloadEvent",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"BeforeUnloadEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.BeforeUnloadEvent.returnValue",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"BeforeUnloadEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"returnValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.BiquadFilterNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.BiquadFilterNode",
      "info": {
        "code": "bcd.testConstructor('BiquadFilterNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BiquadFilterNode is not defined"
    },
    {
      "name": "api.BiquadFilterNode.Q",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"Q\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.detune",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"detune\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.frequency",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"frequency\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.gain",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"gain\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.getFrequencyResponse",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"getFrequencyResponse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.BiquadFilterNode.type",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createBiquadFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createBiquadFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createBiquadFilter();\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.Blob",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.Blob",
      "info": {
        "code": "bcd.testConstructor('Blob')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.Blob.arrayBuffer",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"arrayBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.bytes",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"bytes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Blob.size",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.slice",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"slice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.stream",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"stream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.text",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Blob.type",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Blob();\n  } catch (e) {\n    instance = new BlobBuilder();\n  }\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.BlobEvent",
      "info": {
        "code": "\"BlobEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BlobEvent.BlobEvent",
      "info": {
        "code": "bcd.testConstructor('BlobEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BlobEvent is not defined"
    },
    {
      "name": "api.BlobEvent.data",
      "info": {
        "code": "\"BlobEvent\" in self && \"data\" in BlobEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BlobEvent.timecode",
      "info": {
        "code": "\"BlobEvent\" in self && \"timecode\" in BlobEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Bluetooth",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Bluetooth.getAvailability",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance && \"getAvailability\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Bluetooth.getDevices",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance && \"getDevices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Bluetooth.referringDevice",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance && \"referringDevice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Bluetooth.requestDevice",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance && \"requestDevice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Bluetooth.requestLEScan",
      "info": {
        "code": "(function () {\n  var instance = navigator.bluetooth;\n  return !!instance && \"requestLEScan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.BluetoothAdvertisingEvent",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.BluetoothAdvertisingEvent",
      "info": {
        "code": "bcd.testConstructor('BluetoothAdvertisingEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BluetoothAdvertisingEvent is not defined"
    },
    {
      "name": "api.BluetoothAdvertisingEvent.appearance",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"appearance\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.device",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"device\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.manufacturerData",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"manufacturerData\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.name",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"name\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.rssi",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"rssi\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.serviceData",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"serviceData\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.txPower",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"txPower\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothAdvertisingEvent.uuids",
      "info": {
        "code": "\"BluetoothAdvertisingEvent\" in self && \"uuids\" in BluetoothAdvertisingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.authenticatedSignedWrites",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"authenticatedSignedWrites\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.broadcast",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"broadcast\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.indicate",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"indicate\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.notify",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"notify\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.read",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"read\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.reliableWrite",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"reliableWrite\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.writableAuxiliaries",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"writableAuxiliaries\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.write",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"write\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothCharacteristicProperties.writeWithoutResponse",
      "info": {
        "code": "\"BluetoothCharacteristicProperties\" in self && \"writeWithoutResponse\" in BluetoothCharacteristicProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDataFilter",
      "info": {
        "code": "\"BluetoothDataFilter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDataFilter.BluetoothDataFilter",
      "info": {
        "code": "bcd.testConstructor('BluetoothDataFilter')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BluetoothDataFilter is not defined"
    },
    {
      "name": "api.BluetoothDataFilter.dataPrefix",
      "info": {
        "code": "\"BluetoothDataFilter\" in self && \"dataPrefix\" in BluetoothDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDataFilter.mask",
      "info": {
        "code": "\"BluetoothDataFilter\" in self && \"mask\" in BluetoothDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice",
      "info": {
        "code": "\"BluetoothDevice\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.forget",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"forget\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.gatt",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"gatt\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.id",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"id\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.name",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"name\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.watchAdvertisements",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"watchAdvertisements\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothDevice.watchingAdvertisements",
      "info": {
        "code": "\"BluetoothDevice\" in self && \"watchingAdvertisements\" in BluetoothDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan",
      "info": {
        "code": "\"BluetoothLEScan\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan.acceptAllAdvertisements",
      "info": {
        "code": "\"BluetoothLEScan\" in self && \"acceptAllAdvertisements\" in BluetoothLEScan.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan.active",
      "info": {
        "code": "\"BluetoothLEScan\" in self && \"active\" in BluetoothLEScan.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan.filters",
      "info": {
        "code": "\"BluetoothLEScan\" in self && \"filters\" in BluetoothLEScan.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan.keepRepeatedDevices",
      "info": {
        "code": "\"BluetoothLEScan\" in self && \"keepRepeatedDevices\" in BluetoothLEScan.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScan.stop",
      "info": {
        "code": "\"BluetoothLEScan\" in self && \"stop\" in BluetoothLEScan.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter.BluetoothLEScanFilter",
      "info": {
        "code": "bcd.testConstructor('BluetoothLEScanFilter')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BluetoothLEScanFilter is not defined"
    },
    {
      "name": "api.BluetoothLEScanFilter.manufacturerData",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self && \"manufacturerData\" in BluetoothLEScanFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter.name",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self && \"name\" in BluetoothLEScanFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter.namePrefix",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self && \"namePrefix\" in BluetoothLEScanFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter.serviceData",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self && \"serviceData\" in BluetoothLEScanFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanFilter.services",
      "info": {
        "code": "\"BluetoothLEScanFilter\" in self && \"services\" in BluetoothLEScanFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanPermissionResult",
      "info": {
        "code": "\"BluetoothLEScanPermissionResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothLEScanPermissionResult.scans",
      "info": {
        "code": "\"BluetoothLEScanPermissionResult\" in self && \"scans\" in BluetoothLEScanPermissionResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"BluetoothManufacturerDataFilter\" in self && !!(BluetoothManufacturerDataFilter.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.BluetoothManufacturerDataFilter",
      "info": {
        "code": "bcd.testConstructor('BluetoothManufacturerDataFilter')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BluetoothManufacturerDataFilter is not defined"
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.entries",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"entries\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.forEach",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"forEach\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.get",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"get\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.has",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"has\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.keys",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"keys\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.size",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"size\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataFilter.values",
      "info": {
        "code": "\"BluetoothManufacturerDataFilter\" in self && \"values\" in BluetoothManufacturerDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"BluetoothManufacturerDataMap\" in self && !!(BluetoothManufacturerDataMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.entries",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"entries\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.forEach",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"forEach\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.get",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"get\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.has",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"has\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.keys",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"keys\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.size",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"size\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothManufacturerDataMap.values",
      "info": {
        "code": "\"BluetoothManufacturerDataMap\" in self && \"values\" in BluetoothManufacturerDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothPermissionResult",
      "info": {
        "code": "\"BluetoothPermissionResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothPermissionResult.devices",
      "info": {
        "code": "\"BluetoothPermissionResult\" in self && \"devices\" in BluetoothPermissionResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.getDescriptor",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"getDescriptor\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.getDescriptors",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"getDescriptors\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.properties",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"properties\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.readValue",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"readValue\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.service",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"service\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.startNotifications",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"startNotifications\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.stopNotifications",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"stopNotifications\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.uuid",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"uuid\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.value",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"value\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.writeValue",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"writeValue\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.writeValueWithResponse",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"writeValueWithResponse\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse",
      "info": {
        "code": "\"BluetoothRemoteGATTCharacteristic\" in self && \"writeValueWithoutResponse\" in BluetoothRemoteGATTCharacteristic.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor.characteristic",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self && \"characteristic\" in BluetoothRemoteGATTDescriptor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor.readValue",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self && \"readValue\" in BluetoothRemoteGATTDescriptor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor.uuid",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self && \"uuid\" in BluetoothRemoteGATTDescriptor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor.value",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self && \"value\" in BluetoothRemoteGATTDescriptor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTDescriptor.writeValue",
      "info": {
        "code": "\"BluetoothRemoteGATTDescriptor\" in self && \"writeValue\" in BluetoothRemoteGATTDescriptor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.connect",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"connect\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.connected",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"connected\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.device",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"device\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.disconnect",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"disconnect\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.getPrimaryService",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"getPrimaryService\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTServer.getPrimaryServices",
      "info": {
        "code": "\"BluetoothRemoteGATTServer\" in self && \"getPrimaryServices\" in BluetoothRemoteGATTServer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.device",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"device\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.getCharacteristic",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"getCharacteristic\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.getCharacteristics",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"getCharacteristics\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.getIncludedService",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"getIncludedService\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.getIncludedServices",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"getIncludedServices\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.isPrimary",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"isPrimary\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothRemoteGATTService.uuid",
      "info": {
        "code": "\"BluetoothRemoteGATTService\" in self && \"uuid\" in BluetoothRemoteGATTService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"BluetoothServiceDataFilter\" in self && !!(BluetoothServiceDataFilter.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.BluetoothServiceDataFilter",
      "info": {
        "code": "bcd.testConstructor('BluetoothServiceDataFilter')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BluetoothServiceDataFilter is not defined"
    },
    {
      "name": "api.BluetoothServiceDataFilter.entries",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"entries\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.forEach",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"forEach\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.get",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"get\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.has",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"has\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.keys",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"keys\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.size",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"size\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataFilter.values",
      "info": {
        "code": "\"BluetoothServiceDataFilter\" in self && \"values\" in BluetoothServiceDataFilter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"BluetoothServiceDataMap\" in self && !!(BluetoothServiceDataMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.entries",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"entries\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.forEach",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"forEach\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.get",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"get\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.has",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"has\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.keys",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"keys\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.size",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"size\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothServiceDataMap.values",
      "info": {
        "code": "\"BluetoothServiceDataMap\" in self && \"values\" in BluetoothServiceDataMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothUUID",
      "info": {
        "code": "\"BluetoothUUID\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothUUID.canonicalUUID_static",
      "info": {
        "code": "\"BluetoothUUID\" in self && \"canonicalUUID\" in BluetoothUUID",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothUUID.getCharacteristic_static",
      "info": {
        "code": "\"BluetoothUUID\" in self && \"getCharacteristic\" in BluetoothUUID",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothUUID.getDescriptor_static",
      "info": {
        "code": "\"BluetoothUUID\" in self && \"getDescriptor\" in BluetoothUUID",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BluetoothUUID.getService_static",
      "info": {
        "code": "\"BluetoothUUID\" in self && \"getService\" in BluetoothUUID",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BroadcastChannel",
      "info": {
        "code": "\"BroadcastChannel\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BroadcastChannel.BroadcastChannel",
      "info": {
        "code": "bcd.testConstructor('BroadcastChannel')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BroadcastChannel is not defined"
    },
    {
      "name": "api.BroadcastChannel.close",
      "info": {
        "code": "\"BroadcastChannel\" in self && \"close\" in BroadcastChannel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BroadcastChannel.name",
      "info": {
        "code": "\"BroadcastChannel\" in self && \"name\" in BroadcastChannel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BroadcastChannel.postMessage",
      "info": {
        "code": "\"BroadcastChannel\" in self && \"postMessage\" in BroadcastChannel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BrowserCaptureMediaStreamTrack",
      "info": {
        "code": "\"BrowserCaptureMediaStreamTrack\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BrowserCaptureMediaStreamTrack.clone",
      "info": {
        "code": "\"BrowserCaptureMediaStreamTrack\" in self && \"clone\" in BrowserCaptureMediaStreamTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BrowserCaptureMediaStreamTrack.cropTo",
      "info": {
        "code": "\"BrowserCaptureMediaStreamTrack\" in self && \"cropTo\" in BrowserCaptureMediaStreamTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BrowserCaptureMediaStreamTrack.restrictTo",
      "info": {
        "code": "\"BrowserCaptureMediaStreamTrack\" in self && \"restrictTo\" in BrowserCaptureMediaStreamTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BufferedChangeEvent",
      "info": {
        "code": "\"BufferedChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BufferedChangeEvent.BufferedChangeEvent",
      "info": {
        "code": "bcd.testConstructor('BufferedChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: BufferedChangeEvent is not defined"
    },
    {
      "name": "api.BufferedChangeEvent.addedRanges",
      "info": {
        "code": "\"BufferedChangeEvent\" in self && \"addedRanges\" in BufferedChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.BufferedChangeEvent.removedRanges",
      "info": {
        "code": "\"BufferedChangeEvent\" in self && \"removedRanges\" in BufferedChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ByteLengthQueuingStrategy",
      "info": {
        "code": "(function () {\n  if (!(\"ByteLengthQueuingStrategy\" in self)) {\n    return {\n      result: false,\n      message: \"ByteLengthQueuingStrategy is not defined\"\n    };\n  }\n  var instance = new ByteLengthQueuingStrategy({ highWaterMark: 1 });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ByteLengthQueuingStrategy.ByteLengthQueuingStrategy",
      "info": {
        "code": "bcd.testConstructor('ByteLengthQueuingStrategy')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'ByteLengthQueuingStrategy': 1 argument required, but only 0 present."
    },
    {
      "name": "api.ByteLengthQueuingStrategy.highWaterMark",
      "info": {
        "code": "(function () {\n  if (!(\"ByteLengthQueuingStrategy\" in self)) {\n    return {\n      result: false,\n      message: \"ByteLengthQueuingStrategy is not defined\"\n    };\n  }\n  var instance = new ByteLengthQueuingStrategy({ highWaterMark: 1 });\n  return !!instance && \"highWaterMark\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ByteLengthQueuingStrategy.size",
      "info": {
        "code": "(function () {\n  if (!(\"ByteLengthQueuingStrategy\" in self)) {\n    return {\n      result: false,\n      message: \"ByteLengthQueuingStrategy is not defined\"\n    };\n  }\n  var instance = new ByteLengthQueuingStrategy({ highWaterMark: 1 });\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CDATASection",
      "info": {
        "code": "\"CDATASection\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS",
      "info": {
        "code": "\"CSS\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.Hz_static",
      "info": {
        "code": "\"CSS\" in self && \"Hz\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.Q_static",
      "info": {
        "code": "\"CSS\" in self && \"Q\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.animationWorklet_static",
      "info": {
        "code": "\"CSS\" in self && \"animationWorklet\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cap_static",
      "info": {
        "code": "\"CSS\" in self && \"cap\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.ch_static",
      "info": {
        "code": "\"CSS\" in self && \"ch\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cm_static",
      "info": {
        "code": "\"CSS\" in self && \"cm\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqb_static",
      "info": {
        "code": "\"CSS\" in self && \"cqb\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqh_static",
      "info": {
        "code": "\"CSS\" in self && \"cqh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqi_static",
      "info": {
        "code": "\"CSS\" in self && \"cqi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqmax_static",
      "info": {
        "code": "\"CSS\" in self && \"cqmax\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqmin_static",
      "info": {
        "code": "\"CSS\" in self && \"cqmin\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.cqw_static",
      "info": {
        "code": "\"CSS\" in self && \"cqw\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.deg_static",
      "info": {
        "code": "\"CSS\" in self && \"deg\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dpcm_static",
      "info": {
        "code": "\"CSS\" in self && \"dpcm\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dpi_static",
      "info": {
        "code": "\"CSS\" in self && \"dpi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dppx_static",
      "info": {
        "code": "\"CSS\" in self && \"dppx\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvb_static",
      "info": {
        "code": "\"CSS\" in self && \"dvb\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvh_static",
      "info": {
        "code": "\"CSS\" in self && \"dvh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvi_static",
      "info": {
        "code": "\"CSS\" in self && \"dvi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvmax_static",
      "info": {
        "code": "\"CSS\" in self && \"dvmax\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvmin_static",
      "info": {
        "code": "\"CSS\" in self && \"dvmin\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.dvw_static",
      "info": {
        "code": "\"CSS\" in self && \"dvw\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.elementSources_static",
      "info": {
        "code": "\"CSS\" in self && \"elementSources\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.em_static",
      "info": {
        "code": "\"CSS\" in self && \"em\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.escape_static",
      "info": {
        "code": "\"CSS\" in self && \"escape\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.ex_static",
      "info": {
        "code": "\"CSS\" in self && \"ex\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.fr_static",
      "info": {
        "code": "\"CSS\" in self && \"fr\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.grad_static",
      "info": {
        "code": "\"CSS\" in self && \"grad\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.highlights_static",
      "info": {
        "code": "\"CSS\" in self && \"highlights\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.ic_static",
      "info": {
        "code": "\"CSS\" in self && \"ic\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.in_static",
      "info": {
        "code": "\"CSS\" in self && \"in\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.kHz_static",
      "info": {
        "code": "\"CSS\" in self && \"kHz\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.layoutWorklet_static",
      "info": {
        "code": "\"CSS\" in self && \"layoutWorklet\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lh_static",
      "info": {
        "code": "\"CSS\" in self && \"lh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvb_static",
      "info": {
        "code": "\"CSS\" in self && \"lvb\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvh_static",
      "info": {
        "code": "\"CSS\" in self && \"lvh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvi_static",
      "info": {
        "code": "\"CSS\" in self && \"lvi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvmax_static",
      "info": {
        "code": "\"CSS\" in self && \"lvmax\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvmin_static",
      "info": {
        "code": "\"CSS\" in self && \"lvmin\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.lvw_static",
      "info": {
        "code": "\"CSS\" in self && \"lvw\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.mm_static",
      "info": {
        "code": "\"CSS\" in self && \"mm\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.ms_static",
      "info": {
        "code": "\"CSS\" in self && \"ms\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.number_static",
      "info": {
        "code": "\"CSS\" in self && \"number\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.paintWorklet_static",
      "info": {
        "code": "\"CSS\" in self && \"paintWorklet\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseCommaValueList_static",
      "info": {
        "code": "\"CSS\" in self && \"parseCommaValueList\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseDeclarationList_static",
      "info": {
        "code": "\"CSS\" in self && \"parseDeclarationList\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseDeclaration_static",
      "info": {
        "code": "\"CSS\" in self && \"parseDeclaration\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseRuleList_static",
      "info": {
        "code": "\"CSS\" in self && \"parseRuleList\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseRule_static",
      "info": {
        "code": "\"CSS\" in self && \"parseRule\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseStylesheet_static",
      "info": {
        "code": "\"CSS\" in self && \"parseStylesheet\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseValueList_static",
      "info": {
        "code": "\"CSS\" in self && \"parseValueList\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.parseValue_static",
      "info": {
        "code": "\"CSS\" in self && \"parseValue\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.pc_static",
      "info": {
        "code": "\"CSS\" in self && \"pc\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.percent_static",
      "info": {
        "code": "\"CSS\" in self && \"percent\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.pt_static",
      "info": {
        "code": "\"CSS\" in self && \"pt\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.px_static",
      "info": {
        "code": "\"CSS\" in self && \"px\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rad_static",
      "info": {
        "code": "\"CSS\" in self && \"rad\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rcap_static",
      "info": {
        "code": "\"CSS\" in self && \"rcap\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rch_static",
      "info": {
        "code": "\"CSS\" in self && \"rch\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.registerProperty_static",
      "info": {
        "code": "\"CSS\" in self && \"registerProperty\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rem_static",
      "info": {
        "code": "\"CSS\" in self && \"rem\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rex_static",
      "info": {
        "code": "\"CSS\" in self && \"rex\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.ric_static",
      "info": {
        "code": "\"CSS\" in self && \"ric\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.rlh_static",
      "info": {
        "code": "\"CSS\" in self && \"rlh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.s_static",
      "info": {
        "code": "\"CSS\" in self && \"s\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.supports_static",
      "info": {
        "code": "\"CSS\" in self && \"supports\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.supports_static.optional_parens",
      "info": {
        "code": "(function () {\n  return CSS.supports(\"display: block\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: CSS is not defined"
    },
    {
      "name": "api.CSS.svb_static",
      "info": {
        "code": "\"CSS\" in self && \"svb\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.svh_static",
      "info": {
        "code": "\"CSS\" in self && \"svh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.svi_static",
      "info": {
        "code": "\"CSS\" in self && \"svi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.svmax_static",
      "info": {
        "code": "\"CSS\" in self && \"svmax\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.svmin_static",
      "info": {
        "code": "\"CSS\" in self && \"svmin\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.svw_static",
      "info": {
        "code": "\"CSS\" in self && \"svw\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.turn_static",
      "info": {
        "code": "\"CSS\" in self && \"turn\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vb_static",
      "info": {
        "code": "\"CSS\" in self && \"vb\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vh_static",
      "info": {
        "code": "\"CSS\" in self && \"vh\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vi_static",
      "info": {
        "code": "\"CSS\" in self && \"vi\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vmax_static",
      "info": {
        "code": "\"CSS\" in self && \"vmax\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vmin_static",
      "info": {
        "code": "\"CSS\" in self && \"vmin\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSS.vw_static",
      "info": {
        "code": "\"CSS\" in self && \"vw\" in CSS",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSAnimation",
      "info": {
        "code": "\"CSSAnimation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSAnimation.animationName",
      "info": {
        "code": "\"CSSAnimation\" in self && \"animationName\" in CSSAnimation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColor",
      "info": {
        "code": "\"CSSColor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColor.CSSColor",
      "info": {
        "code": "bcd.testConstructor('CSSColor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSColor is not defined"
    },
    {
      "name": "api.CSSColor.alpha",
      "info": {
        "code": "\"CSSColor\" in self && \"alpha\" in CSSColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColor.channels",
      "info": {
        "code": "\"CSSColor\" in self && \"channels\" in CSSColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColor.colorSpace",
      "info": {
        "code": "\"CSSColor\" in self && \"colorSpace\" in CSSColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorProfileRule",
      "info": {
        "code": "\"CSSColorProfileRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorProfileRule.components",
      "info": {
        "code": "\"CSSColorProfileRule\" in self && \"components\" in CSSColorProfileRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorProfileRule.name",
      "info": {
        "code": "\"CSSColorProfileRule\" in self && \"name\" in CSSColorProfileRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorProfileRule.renderingIntent",
      "info": {
        "code": "\"CSSColorProfileRule\" in self && \"renderingIntent\" in CSSColorProfileRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorProfileRule.src",
      "info": {
        "code": "\"CSSColorProfileRule\" in self && \"src\" in CSSColorProfileRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorValue",
      "info": {
        "code": "\"CSSColorValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSColorValue.parse_static",
      "info": {
        "code": "\"CSSColorValue\" in self && \"parse\" in CSSColorValue",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSConditionRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"conditionText\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSConditionRule instance must have \"conditionText\" property, which is missing from this instance'\n    };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSConditionRule.conditionText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"conditionText\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSConditionRule instance must have \"conditionText\" property, which is missing from this instance'\n    };\n  }\n  return !!instance && \"conditionText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSContainerRule",
      "info": {
        "code": "\"CSSContainerRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSContainerRule.containerName",
      "info": {
        "code": "\"CSSContainerRule\" in self && \"containerName\" in CSSContainerRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSContainerRule.containerQuery",
      "info": {
        "code": "\"CSSContainerRule\" in self && \"containerQuery\" in CSSContainerRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSCounterStyleRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.additiveSymbols",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"additiveSymbols\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.fallback",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"fallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.name",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.negative",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"negative\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.pad",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"pad\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.prefix",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"prefix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.range",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"range\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.speakAs",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"speakAs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.suffix",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"suffix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.symbols",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"symbols\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCounterStyleRule.system",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    '@counter-style thumbs {system: cyclic; symbols: \"👍\"; suffix: \" \";}'\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"system\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSCustomMediaRule",
      "info": {
        "code": "\"CSSCustomMediaRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSCustomMediaRule.name",
      "info": {
        "code": "\"CSSCustomMediaRule\" in self && \"name\" in CSSCustomMediaRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSCustomMediaRule.query",
      "info": {
        "code": "\"CSSCustomMediaRule\" in self && \"query\" in CSSCustomMediaRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.ascent-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"ascent-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.ascentOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"ascentOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.descent-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"descent-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.descentOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"descentOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-display",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-display\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-family",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-family\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-feature-settings",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-feature-settings\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-language-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-language-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-named-instance",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-named-instance\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-size",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-size\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-stretch",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-stretch\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-style",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-style\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-variation-settings",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-variation-settings\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-weight",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-weight\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.font-width",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"font-width\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontDisplay",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontDisplay\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontFamily",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontFamily\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontFeatureSettings",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontFeatureSettings\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontLanguageOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontLanguageOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontNamedInstance",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontNamedInstance\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontSize",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontSize\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontStretch",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontStretch\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontStyle",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontStyle\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontVariationSettings",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontVariationSettings\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontWeight",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontWeight\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.fontWidth",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"fontWidth\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.line-gap-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"line-gap-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.lineGapOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"lineGapOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.size-adjust",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"size-adjust\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.sizeAdjust",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"sizeAdjust\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.src",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"src\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.subscript-position-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"subscript-position-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.subscript-size-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"subscript-size-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.subscriptPositionOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"subscriptPositionOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.subscriptSizeOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"subscriptSizeOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.superscript-position-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"superscript-position-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.superscript-size-override",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"superscript-size-override\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.superscriptPositionOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"superscriptPositionOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.superscriptSizeOverride",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"superscriptSizeOverride\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.unicode-range",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"unicode-range\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceDescriptors.unicodeRange",
      "info": {
        "code": "\"CSSFontFaceDescriptors\" in self && \"unicodeRange\" in CSSFontFaceDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontFaceRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-face {font-family: somefont; src: url(somefont.ttf);}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFaceRule.style",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-face {font-family: somefont; src: url(somefont.ttf);}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.@@iterator",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.clear",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.delete",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.entries",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.forEach",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.get",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.has",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.keys",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.set",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"set\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.size",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesMap.values",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var rule = stylesheet.cssRules.item(0);\n  if (!rule) {\n    return { result: false, message: \"rule is falsy\" };\n  }\n  var instance = rule.annotation;\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.annotation",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"annotation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.characterVariant",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"characterVariant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.fontFamily",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"fontFamily\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.historicalForms",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"historicalForms\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.ornaments",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"ornaments\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.styleset",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"styleset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.stylistic",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"stylistic\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontFeatureValuesRule.swash",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@font-feature-values Font {@styleset {nice-style: 12;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"swash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSFontPaletteValuesRule",
      "info": {
        "code": "\"CSSFontPaletteValuesRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontPaletteValuesRule.basePalette",
      "info": {
        "code": "\"CSSFontPaletteValuesRule\" in self && \"basePalette\" in CSSFontPaletteValuesRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontPaletteValuesRule.fontFamily",
      "info": {
        "code": "\"CSSFontPaletteValuesRule\" in self && \"fontFamily\" in CSSFontPaletteValuesRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontPaletteValuesRule.name",
      "info": {
        "code": "\"CSSFontPaletteValuesRule\" in self && \"name\" in CSSFontPaletteValuesRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFontPaletteValuesRule.overrideColors",
      "info": {
        "code": "\"CSSFontPaletteValuesRule\" in self && \"overrideColors\" in CSSFontPaletteValuesRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionDeclarations",
      "info": {
        "code": "\"CSSFunctionDeclarations\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionDeclarations.style",
      "info": {
        "code": "\"CSSFunctionDeclarations\" in self && \"style\" in CSSFunctionDeclarations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionDescriptors",
      "info": {
        "code": "\"CSSFunctionDescriptors\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionDescriptors.result",
      "info": {
        "code": "\"CSSFunctionDescriptors\" in self && \"result\" in CSSFunctionDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionRule",
      "info": {
        "code": "\"CSSFunctionRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionRule.getParameters",
      "info": {
        "code": "\"CSSFunctionRule\" in self && \"getParameters\" in CSSFunctionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionRule.name",
      "info": {
        "code": "\"CSSFunctionRule\" in self && \"name\" in CSSFunctionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSFunctionRule.returnType",
      "info": {
        "code": "\"CSSFunctionRule\" in self && \"returnType\" in CSSFunctionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSGroupingRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"cssRules\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSGroupingRule instance must have \"cssRules\" property, which is missing from this instance'\n    };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSGroupingRule.cssRules",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"cssRules\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSGroupingRule instance must have \"cssRules\" property, which is missing from this instance'\n    };\n  }\n  return !!instance && \"cssRules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSGroupingRule.deleteRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"cssRules\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSGroupingRule instance must have \"cssRules\" property, which is missing from this instance'\n    };\n  }\n  return !!instance && \"deleteRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSGroupingRule.insertRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  if (!(\"cssRules\" in instance)) {\n    return {\n      result: false,\n      message:\n        'CSSGroupingRule instance must have \"cssRules\" property, which is missing from this instance'\n    };\n  }\n  return !!instance && \"insertRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSHSL",
      "info": {
        "code": "\"CSSHSL\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHSL.CSSHSL",
      "info": {
        "code": "bcd.testConstructor('CSSHSL')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSHSL is not defined"
    },
    {
      "name": "api.CSSHSL.alpha",
      "info": {
        "code": "\"CSSHSL\" in self && \"alpha\" in CSSHSL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHSL.h",
      "info": {
        "code": "\"CSSHSL\" in self && \"h\" in CSSHSL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHSL.l",
      "info": {
        "code": "\"CSSHSL\" in self && \"l\" in CSSHSL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHSL.s",
      "info": {
        "code": "\"CSSHSL\" in self && \"s\" in CSSHSL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHWB",
      "info": {
        "code": "\"CSSHWB\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHWB.CSSHWB",
      "info": {
        "code": "bcd.testConstructor('CSSHWB')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSHWB is not defined"
    },
    {
      "name": "api.CSSHWB.alpha",
      "info": {
        "code": "\"CSSHWB\" in self && \"alpha\" in CSSHWB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHWB.b",
      "info": {
        "code": "\"CSSHWB\" in self && \"b\" in CSSHWB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHWB.h",
      "info": {
        "code": "\"CSSHWB\" in self && \"h\" in CSSHWB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSHWB.w",
      "info": {
        "code": "\"CSSHWB\" in self && \"w\" in CSSHWB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSImageValue",
      "info": {
        "code": "\"CSSImageValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSImportRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSImportRule.href",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSImportRule.layerName",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"layerName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSImportRule.media",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSImportRule.styleSheet",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"styleSheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSImportRule.supportsText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@import url(/resources/style.css);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"supportsText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframeRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var keyframes = stylesheet.cssRules.item(0);\n  if (!keyframes) {\n    return { result: false, message: \"keyframes is falsy\" };\n  }\n  var instance = keyframes.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframeRule.keyText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var keyframes = stylesheet.cssRules.item(0);\n  if (!keyframes) {\n    return { result: false, message: \"keyframes is falsy\" };\n  }\n  var instance = keyframes.cssRules.item(0);\n  return !!instance && \"keyText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframeRule.style",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var keyframes = stylesheet.cssRules.item(0);\n  if (!keyframes) {\n    return { result: false, message: \"keyframes is falsy\" };\n  }\n  var instance = keyframes.cssRules.item(0);\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.appendRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"appendRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.cssRules",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"cssRules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.deleteRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"deleteRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.findRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"findRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.length",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeyframesRule.name",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@keyframes test {0% {top: 0 } 100% { top: 100px; }} @-webkit-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-moz-keyframes test {0% { top: 0 } 100% { top: 100px; }} @-o-keyframes test {0% { top: 0 } 100% { top: 100px; }}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSKeywordValue",
      "info": {
        "code": "\"CSSKeywordValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSKeywordValue.CSSKeywordValue",
      "info": {
        "code": "bcd.testConstructor('CSSKeywordValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSKeywordValue is not defined"
    },
    {
      "name": "api.CSSKeywordValue.value",
      "info": {
        "code": "\"CSSKeywordValue\" in self && \"value\" in CSSKeywordValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLCH",
      "info": {
        "code": "\"CSSLCH\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLCH.CSSLCH",
      "info": {
        "code": "bcd.testConstructor('CSSLCH')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSLCH is not defined"
    },
    {
      "name": "api.CSSLCH.alpha",
      "info": {
        "code": "\"CSSLCH\" in self && \"alpha\" in CSSLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLCH.c",
      "info": {
        "code": "\"CSSLCH\" in self && \"c\" in CSSLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLCH.h",
      "info": {
        "code": "\"CSSLCH\" in self && \"h\" in CSSLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLCH.l",
      "info": {
        "code": "\"CSSLCH\" in self && \"l\" in CSSLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLab",
      "info": {
        "code": "\"CSSLab\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLab.CSSLab",
      "info": {
        "code": "bcd.testConstructor('CSSLab')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSLab is not defined"
    },
    {
      "name": "api.CSSLab.a",
      "info": {
        "code": "\"CSSLab\" in self && \"a\" in CSSLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLab.alpha",
      "info": {
        "code": "\"CSSLab\" in self && \"alpha\" in CSSLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLab.b",
      "info": {
        "code": "\"CSSLab\" in self && \"b\" in CSSLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLab.l",
      "info": {
        "code": "\"CSSLab\" in self && \"l\" in CSSLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLayerBlockRule",
      "info": {
        "code": "\"CSSLayerBlockRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLayerBlockRule.name",
      "info": {
        "code": "\"CSSLayerBlockRule\" in self && \"name\" in CSSLayerBlockRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLayerStatementRule",
      "info": {
        "code": "\"CSSLayerStatementRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSLayerStatementRule.nameList",
      "info": {
        "code": "\"CSSLayerStatementRule\" in self && \"nameList\" in CSSLayerStatementRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMarginRule",
      "info": {
        "code": "\"CSSMarginRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMarginRule.name",
      "info": {
        "code": "\"CSSMarginRule\" in self && \"name\" in CSSMarginRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMarginRule.style",
      "info": {
        "code": "\"CSSMarginRule\" in self && \"style\" in CSSMarginRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathClamp",
      "info": {
        "code": "\"CSSMathClamp\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathClamp.CSSMathClamp",
      "info": {
        "code": "bcd.testConstructor('CSSMathClamp')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathClamp is not defined"
    },
    {
      "name": "api.CSSMathClamp.lower",
      "info": {
        "code": "\"CSSMathClamp\" in self && \"lower\" in CSSMathClamp.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathClamp.upper",
      "info": {
        "code": "\"CSSMathClamp\" in self && \"upper\" in CSSMathClamp.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathClamp.value",
      "info": {
        "code": "\"CSSMathClamp\" in self && \"value\" in CSSMathClamp.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathInvert",
      "info": {
        "code": "\"CSSMathInvert\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathInvert.CSSMathInvert",
      "info": {
        "code": "bcd.testConstructor('CSSMathInvert')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathInvert is not defined"
    },
    {
      "name": "api.CSSMathInvert.value",
      "info": {
        "code": "\"CSSMathInvert\" in self && \"value\" in CSSMathInvert.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathMax",
      "info": {
        "code": "\"CSSMathMax\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathMax.CSSMathMax",
      "info": {
        "code": "bcd.testConstructor('CSSMathMax')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathMax is not defined"
    },
    {
      "name": "api.CSSMathMax.values",
      "info": {
        "code": "\"CSSMathMax\" in self && \"values\" in CSSMathMax.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathMin",
      "info": {
        "code": "\"CSSMathMin\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathMin.CSSMathMin",
      "info": {
        "code": "bcd.testConstructor('CSSMathMin')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathMin is not defined"
    },
    {
      "name": "api.CSSMathMin.values",
      "info": {
        "code": "\"CSSMathMin\" in self && \"values\" in CSSMathMin.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathNegate",
      "info": {
        "code": "\"CSSMathNegate\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathNegate.CSSMathNegate",
      "info": {
        "code": "bcd.testConstructor('CSSMathNegate')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathNegate is not defined"
    },
    {
      "name": "api.CSSMathNegate.value",
      "info": {
        "code": "\"CSSMathNegate\" in self && \"value\" in CSSMathNegate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathProduct",
      "info": {
        "code": "\"CSSMathProduct\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathProduct.CSSMathProduct",
      "info": {
        "code": "bcd.testConstructor('CSSMathProduct')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathProduct is not defined"
    },
    {
      "name": "api.CSSMathProduct.values",
      "info": {
        "code": "\"CSSMathProduct\" in self && \"values\" in CSSMathProduct.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathSum",
      "info": {
        "code": "\"CSSMathSum\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathSum.CSSMathSum",
      "info": {
        "code": "bcd.testConstructor('CSSMathSum')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMathSum is not defined"
    },
    {
      "name": "api.CSSMathSum.values",
      "info": {
        "code": "\"CSSMathSum\" in self && \"values\" in CSSMathSum.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathValue",
      "info": {
        "code": "\"CSSMathValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMathValue.operator",
      "info": {
        "code": "\"CSSMathValue\" in self && \"operator\" in CSSMathValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMatrixComponent",
      "info": {
        "code": "\"CSSMatrixComponent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMatrixComponent.CSSMatrixComponent",
      "info": {
        "code": "bcd.testConstructor('CSSMatrixComponent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSMatrixComponent is not defined"
    },
    {
      "name": "api.CSSMatrixComponent.matrix",
      "info": {
        "code": "\"CSSMatrixComponent\" in self && \"matrix\" in CSSMatrixComponent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSMediaRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSMediaRule.matches",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"matches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSMediaRule.media",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSNamespaceRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@namespace svg url(http://www.w3.org/2000/svg);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSNamespaceRule.namespaceURI",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@namespace svg url(http://www.w3.org/2000/svg);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"namespaceURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSNamespaceRule.prefix",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@namespace svg url(http://www.w3.org/2000/svg);\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"prefix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSNestedDeclarations",
      "info": {
        "code": "\"CSSNestedDeclarations\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNestedDeclarations.style",
      "info": {
        "code": "\"CSSNestedDeclarations\" in self && \"style\" in CSSNestedDeclarations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray",
      "info": {
        "code": "\"CSSNumericArray\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"CSSNumericArray\" in self && !!(CSSNumericArray.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.entries",
      "info": {
        "code": "\"CSSNumericArray\" in self && \"entries\" in CSSNumericArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.forEach",
      "info": {
        "code": "\"CSSNumericArray\" in self && \"forEach\" in CSSNumericArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.keys",
      "info": {
        "code": "\"CSSNumericArray\" in self && \"keys\" in CSSNumericArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.length",
      "info": {
        "code": "\"CSSNumericArray\" in self && \"length\" in CSSNumericArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericArray.values",
      "info": {
        "code": "\"CSSNumericArray\" in self && \"values\" in CSSNumericArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue",
      "info": {
        "code": "\"CSSNumericValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.add",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"add\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.div",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"div\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.equals",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"equals\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.max",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"max\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.min",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"min\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.mul",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"mul\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.parse_static",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"parse\" in CSSNumericValue",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.sub",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"sub\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.to",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"to\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.toSum",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"toSum\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSNumericValue.type",
      "info": {
        "code": "\"CSSNumericValue\" in self && \"type\" in CSSNumericValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLCH",
      "info": {
        "code": "\"CSSOKLCH\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLCH.CSSOKLCH",
      "info": {
        "code": "bcd.testConstructor('CSSOKLCH')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSOKLCH is not defined"
    },
    {
      "name": "api.CSSOKLCH.alpha",
      "info": {
        "code": "\"CSSOKLCH\" in self && \"alpha\" in CSSOKLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLCH.c",
      "info": {
        "code": "\"CSSOKLCH\" in self && \"c\" in CSSOKLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLCH.h",
      "info": {
        "code": "\"CSSOKLCH\" in self && \"h\" in CSSOKLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLCH.l",
      "info": {
        "code": "\"CSSOKLCH\" in self && \"l\" in CSSOKLCH.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLab",
      "info": {
        "code": "\"CSSOKLab\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLab.CSSOKLab",
      "info": {
        "code": "bcd.testConstructor('CSSOKLab')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSOKLab is not defined"
    },
    {
      "name": "api.CSSOKLab.a",
      "info": {
        "code": "\"CSSOKLab\" in self && \"a\" in CSSOKLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLab.alpha",
      "info": {
        "code": "\"CSSOKLab\" in self && \"alpha\" in CSSOKLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLab.b",
      "info": {
        "code": "\"CSSOKLab\" in self && \"b\" in CSSOKLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSOKLab.l",
      "info": {
        "code": "\"CSSOKLab\" in self && \"l\" in CSSOKLab.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors",
      "info": {
        "code": "\"CSSPageDescriptors\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.bleed",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"bleed\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.margin",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"margin\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.margin-bottom",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"margin-bottom\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.margin-left",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"margin-left\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.margin-right",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"margin-right\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.margin-top",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"margin-top\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.marginBottom",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"marginBottom\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.marginLeft",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"marginLeft\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.marginRight",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"marginRight\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.marginTop",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"marginTop\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.marks",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"marks\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.page-orientation",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"page-orientation\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.pageOrientation",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"pageOrientation\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageDescriptors.size",
      "info": {
        "code": "\"CSSPageDescriptors\" in self && \"size\" in CSSPageDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPageRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"@page {margin: 1cm;}\");\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSPageRule.selectorText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"@page {margin: 1cm;}\");\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"selectorText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSPageRule.style",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"@page {margin: 1cm;}\");\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSPageRule.style.type_CSSPageDescriptors",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"@page {margin: 1cm;}\");\n  var instance = stylesheet.cssRules.item(0);\n  return bcd.testObjectName(instance.style, \"CSSPageDescriptors\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSParserAtRule",
      "info": {
        "code": "\"CSSParserAtRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserAtRule.CSSParserAtRule",
      "info": {
        "code": "bcd.testConstructor('CSSParserAtRule')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSParserAtRule is not defined"
    },
    {
      "name": "api.CSSParserAtRule.body",
      "info": {
        "code": "\"CSSParserAtRule\" in self && \"body\" in CSSParserAtRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserAtRule.name",
      "info": {
        "code": "\"CSSParserAtRule\" in self && \"name\" in CSSParserAtRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserAtRule.prelude",
      "info": {
        "code": "\"CSSParserAtRule\" in self && \"prelude\" in CSSParserAtRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserAtRule.toString",
      "info": {
        "code": "\"CSSParserAtRule\" in self && \"toString\" in CSSParserAtRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserBlock",
      "info": {
        "code": "\"CSSParserBlock\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserBlock.CSSParserBlock",
      "info": {
        "code": "bcd.testConstructor('CSSParserBlock')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSParserBlock is not defined"
    },
    {
      "name": "api.CSSParserBlock.body",
      "info": {
        "code": "\"CSSParserBlock\" in self && \"body\" in CSSParserBlock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserBlock.name",
      "info": {
        "code": "\"CSSParserBlock\" in self && \"name\" in CSSParserBlock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserBlock.toString",
      "info": {
        "code": "\"CSSParserBlock\" in self && \"toString\" in CSSParserBlock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserDeclaration",
      "info": {
        "code": "\"CSSParserDeclaration\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserDeclaration.CSSParserDeclaration",
      "info": {
        "code": "bcd.testConstructor('CSSParserDeclaration')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSParserDeclaration is not defined"
    },
    {
      "name": "api.CSSParserDeclaration.body",
      "info": {
        "code": "\"CSSParserDeclaration\" in self && \"body\" in CSSParserDeclaration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserDeclaration.name",
      "info": {
        "code": "\"CSSParserDeclaration\" in self && \"name\" in CSSParserDeclaration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserDeclaration.toString",
      "info": {
        "code": "\"CSSParserDeclaration\" in self && \"toString\" in CSSParserDeclaration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserFunction",
      "info": {
        "code": "\"CSSParserFunction\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserFunction.CSSParserFunction",
      "info": {
        "code": "bcd.testConstructor('CSSParserFunction')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSParserFunction is not defined"
    },
    {
      "name": "api.CSSParserFunction.args",
      "info": {
        "code": "\"CSSParserFunction\" in self && \"args\" in CSSParserFunction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserFunction.name",
      "info": {
        "code": "\"CSSParserFunction\" in self && \"name\" in CSSParserFunction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserFunction.toString",
      "info": {
        "code": "\"CSSParserFunction\" in self && \"toString\" in CSSParserFunction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserQualifiedRule",
      "info": {
        "code": "\"CSSParserQualifiedRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserQualifiedRule.CSSParserQualifiedRule",
      "info": {
        "code": "bcd.testConstructor('CSSParserQualifiedRule')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSParserQualifiedRule is not defined"
    },
    {
      "name": "api.CSSParserQualifiedRule.body",
      "info": {
        "code": "\"CSSParserQualifiedRule\" in self && \"body\" in CSSParserQualifiedRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserQualifiedRule.prelude",
      "info": {
        "code": "\"CSSParserQualifiedRule\" in self && \"prelude\" in CSSParserQualifiedRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserQualifiedRule.toString",
      "info": {
        "code": "\"CSSParserQualifiedRule\" in self && \"toString\" in CSSParserQualifiedRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserRule",
      "info": {
        "code": "\"CSSParserRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSParserValue",
      "info": {
        "code": "\"CSSParserValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPerspective",
      "info": {
        "code": "\"CSSPerspective\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPerspective.CSSPerspective",
      "info": {
        "code": "bcd.testConstructor('CSSPerspective')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSPerspective is not defined"
    },
    {
      "name": "api.CSSPerspective.length",
      "info": {
        "code": "\"CSSPerspective\" in self && \"length\" in CSSPerspective.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.align-self",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"align-self\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.alignSelf",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"alignSelf\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.block-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"block-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.blockSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"blockSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.bottom",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"bottom\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.height",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"height\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inline-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inline-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inlineSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inlineSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-block",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-block\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-block-end",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-block-end\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-block-start",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-block-start\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-inline",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-inline\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-inline-end",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-inline-end\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.inset-inline-start",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"inset-inline-start\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetBlock",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetBlock\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetBlockEnd",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetBlockEnd\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetBlockStart",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetBlockStart\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetInline",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetInline\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetInlineEnd",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetInlineEnd\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.insetInlineStart",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"insetInlineStart\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.justify-self",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"justify-self\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.justifySelf",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"justifySelf\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.left",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"left\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-block",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-block\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-block-end",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-block-end\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-block-start",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-block-start\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-bottom",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-bottom\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-inline",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-inline\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-inline-end",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-inline-end\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-inline-start",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-inline-start\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-left",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-left\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-right",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-right\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.margin-top",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"margin-top\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginBlock",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginBlock\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginBlockEnd",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginBlockEnd\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginBlockStart",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginBlockStart\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginBottom",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginBottom\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginInline",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginInline\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginInlineEnd",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginInlineEnd\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginInlineStart",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginInlineStart\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginLeft",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginLeft\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginRight",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginRight\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.marginTop",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"marginTop\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.max-block-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"max-block-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.max-height",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"max-height\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.max-inline-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"max-inline-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.max-width",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"max-width\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.maxBlockSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"maxBlockSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.maxHeight",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"maxHeight\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.maxInlineSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"maxInlineSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.maxWidth",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"maxWidth\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.min-block-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"min-block-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.min-height",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"min-height\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.min-inline-size",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"min-inline-size\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.min-width",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"min-width\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.minBlockSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"minBlockSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.minHeight",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"minHeight\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.minInlineSize",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"minInlineSize\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.minWidth",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"minWidth\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.place-self",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"place-self\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.placeSelf",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"placeSelf\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.position-anchor",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"position-anchor\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.position-area",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"position-area\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.positionAnchor",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"positionAnchor\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.positionArea",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"positionArea\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.right",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"right\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.top",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"top\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryDescriptors.width",
      "info": {
        "code": "\"CSSPositionTryDescriptors\" in self && \"width\" in CSSPositionTryDescriptors.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryRule",
      "info": {
        "code": "\"CSSPositionTryRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryRule.name",
      "info": {
        "code": "\"CSSPositionTryRule\" in self && \"name\" in CSSPositionTryRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionTryRule.style",
      "info": {
        "code": "\"CSSPositionTryRule\" in self && \"style\" in CSSPositionTryRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionValue",
      "info": {
        "code": "\"CSSPositionValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionValue.CSSPositionValue",
      "info": {
        "code": "bcd.testConstructor('CSSPositionValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSPositionValue is not defined"
    },
    {
      "name": "api.CSSPositionValue.x",
      "info": {
        "code": "\"CSSPositionValue\" in self && \"x\" in CSSPositionValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPositionValue.y",
      "info": {
        "code": "\"CSSPositionValue\" in self && \"y\" in CSSPositionValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.getCounterValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"getCounterValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.getFloatValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"getFloatValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.getRGBColorValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"getRGBColorValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.getRectValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"getRectValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.getStringValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"getStringValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.primitiveType",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"primitiveType\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.setFloatValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"setFloatValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPrimitiveValue.setStringValue",
      "info": {
        "code": "\"CSSPrimitiveValue\" in self && \"setStringValue\" in CSSPrimitiveValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPropertyRule",
      "info": {
        "code": "\"CSSPropertyRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPropertyRule.inherits",
      "info": {
        "code": "\"CSSPropertyRule\" in self && \"inherits\" in CSSPropertyRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPropertyRule.initialValue",
      "info": {
        "code": "\"CSSPropertyRule\" in self && \"initialValue\" in CSSPropertyRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPropertyRule.name",
      "info": {
        "code": "\"CSSPropertyRule\" in self && \"name\" in CSSPropertyRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPropertyRule.syntax",
      "info": {
        "code": "\"CSSPropertyRule\" in self && \"syntax\" in CSSPropertyRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement",
      "info": {
        "code": "\"CSSPseudoElement\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.convertPointFromNode",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"convertPointFromNode\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.convertQuadFromNode",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"convertQuadFromNode\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.convertRectFromNode",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"convertRectFromNode\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.element",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"element\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.getBoxQuads",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"getBoxQuads\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.parent",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"parent\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.pseudo",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"pseudo\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSPseudoElement.type",
      "info": {
        "code": "\"CSSPseudoElement\" in self && \"type\" in CSSPseudoElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRGB",
      "info": {
        "code": "\"CSSRGB\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRGB.CSSRGB",
      "info": {
        "code": "bcd.testConstructor('CSSRGB')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSRGB is not defined"
    },
    {
      "name": "api.CSSRGB.alpha",
      "info": {
        "code": "\"CSSRGB\" in self && \"alpha\" in CSSRGB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRGB.b",
      "info": {
        "code": "\"CSSRGB\" in self && \"b\" in CSSRGB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRGB.g",
      "info": {
        "code": "\"CSSRGB\" in self && \"g\" in CSSRGB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRGB.r",
      "info": {
        "code": "\"CSSRGB\" in self && \"r\" in CSSRGB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRotate",
      "info": {
        "code": "\"CSSRotate\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRotate.CSSRotate",
      "info": {
        "code": "bcd.testConstructor('CSSRotate')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSRotate is not defined"
    },
    {
      "name": "api.CSSRotate.angle",
      "info": {
        "code": "\"CSSRotate\" in self && \"angle\" in CSSRotate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRotate.x",
      "info": {
        "code": "\"CSSRotate\" in self && \"x\" in CSSRotate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRotate.y",
      "info": {
        "code": "\"CSSRotate\" in self && \"y\" in CSSRotate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRotate.z",
      "info": {
        "code": "\"CSSRotate\" in self && \"z\" in CSSRotate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRule.cssText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"cssText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRule.parentRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"parentRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRule.parentStyleSheet",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"parentStyleSheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRule.type",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRuleList",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var instance = stylesheet.cssRules;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRuleList.item",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var instance = stylesheet.cssRules;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSRuleList.length",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var instance = stylesheet.cssRules;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSScale",
      "info": {
        "code": "\"CSSScale\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScale.CSSScale",
      "info": {
        "code": "bcd.testConstructor('CSSScale')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSScale is not defined"
    },
    {
      "name": "api.CSSScale.x",
      "info": {
        "code": "\"CSSScale\" in self && \"x\" in CSSScale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScale.y",
      "info": {
        "code": "\"CSSScale\" in self && \"y\" in CSSScale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScale.z",
      "info": {
        "code": "\"CSSScale\" in self && \"z\" in CSSScale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScopeRule",
      "info": {
        "code": "\"CSSScopeRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScopeRule.end",
      "info": {
        "code": "\"CSSScopeRule\" in self && \"end\" in CSSScopeRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSScopeRule.start",
      "info": {
        "code": "\"CSSScopeRule\" in self && \"start\" in CSSScopeRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkew",
      "info": {
        "code": "\"CSSSkew\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkew.CSSSkew",
      "info": {
        "code": "bcd.testConstructor('CSSSkew')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSSkew is not defined"
    },
    {
      "name": "api.CSSSkew.ax",
      "info": {
        "code": "\"CSSSkew\" in self && \"ax\" in CSSSkew.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkew.ay",
      "info": {
        "code": "\"CSSSkew\" in self && \"ay\" in CSSSkew.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkewX",
      "info": {
        "code": "\"CSSSkewX\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkewX.CSSSkewX",
      "info": {
        "code": "bcd.testConstructor('CSSSkewX')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSSkewX is not defined"
    },
    {
      "name": "api.CSSSkewX.ax",
      "info": {
        "code": "\"CSSSkewX\" in self && \"ax\" in CSSSkewX.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkewY",
      "info": {
        "code": "\"CSSSkewY\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSkewY.CSSSkewY",
      "info": {
        "code": "bcd.testConstructor('CSSSkewY')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSSkewY is not defined"
    },
    {
      "name": "api.CSSSkewY.ay",
      "info": {
        "code": "\"CSSSkewY\" in self && \"ay\" in CSSSkewY.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStartingStyleRule",
      "info": {
        "code": "\"CSSStartingStyleRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleDeclaration",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.@@iterator",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.cssFloat",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"cssFloat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.cssText",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"cssText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.entries",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.forEach",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.getPropertyCSSValue",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"getPropertyCSSValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.getPropertyPriority",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"getPropertyPriority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.getPropertyValue",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"getPropertyValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.item",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.keys",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.length",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.parentRule",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"parentRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.removeProperty",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"removeProperty\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.setProperty",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"setProperty\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleDeclaration.values",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.style;\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleProperties",
      "info": {
        "code": "\"CSSStyleProperties\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleProperties.cssFloat",
      "info": {
        "code": "\"CSSStyleProperties\" in self && \"cssFloat\" in CSSStyleProperties.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.cssRules",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"cssRules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.deleteRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"deleteRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.insertRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"insertRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.selectorText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"selectorText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.style",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleRule.styleMap",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!stylesheet) {\n    return { result: false, message: \"stylesheet is falsy\" };\n  }\n  var cssRules = stylesheet.cssRules;\n  if (!cssRules) {\n    return { result: false, message: \"cssRules is falsy\" };\n  }\n  var instance = cssRules.item(0);\n  return !!instance && \"styleMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.CSSStyleSheet",
      "info": {
        "code": "bcd.testConstructor('CSSStyleSheet')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSStyleSheet is not defined"
    },
    {
      "name": "api.CSSStyleSheet.CSSStyleSheet.options_baseURL_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  function construct(options) {\n    new CSSStyleSheet(options);\n  }\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"baseURL\",\n    \"https://mdn-bcd-collector.gooborg.com\",\n    { media: \"screen\" }\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.addRule",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"addRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.cssRules",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"cssRules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.deleteRule",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"deleteRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.insertRule",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"insertRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.insertRule.index_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  if (!(instance && instance.insertRule)) {\n    return { result: false, message: \"instance.insertRule is not defined\" };\n  }\n  try {\n    instance.insertRule(\"a {color: blue;}\");\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.ownerRule",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"ownerRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.removeRule",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"removeRule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.replace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"replace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.replaceSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"replaceSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleSheet.rules",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"rules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSStyleValue",
      "info": {
        "code": "\"CSSStyleValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleValue.parseAll_static",
      "info": {
        "code": "\"CSSStyleValue\" in self && \"parseAll\" in CSSStyleValue",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleValue.parse_static",
      "info": {
        "code": "\"CSSStyleValue\" in self && \"parse\" in CSSStyleValue",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSStyleValue.toString",
      "info": {
        "code": "\"CSSStyleValue\" in self && \"toString\" in CSSStyleValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSupportsConditionRule",
      "info": {
        "code": "\"CSSSupportsConditionRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSupportsConditionRule.name",
      "info": {
        "code": "\"CSSSupportsConditionRule\" in self && \"name\" in CSSSupportsConditionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSSupportsRule",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@supports (display: grid) {div {display: grid;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSSupportsRule.matches",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@supports (display: grid) {div {display: grid;}}\"\n  );\n  var instance = stylesheet.cssRules.item(0);\n  return !!instance && \"matches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CSSTransformComponent",
      "info": {
        "code": "\"CSSTransformComponent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformComponent.is2D",
      "info": {
        "code": "\"CSSTransformComponent\" in self && \"is2D\" in CSSTransformComponent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformComponent.toMatrix",
      "info": {
        "code": "\"CSSTransformComponent\" in self && \"toMatrix\" in CSSTransformComponent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformComponent.toString",
      "info": {
        "code": "\"CSSTransformComponent\" in self && \"toString\" in CSSTransformComponent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue",
      "info": {
        "code": "\"CSSTransformValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"CSSTransformValue\" in self && !!(CSSTransformValue.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.CSSTransformValue",
      "info": {
        "code": "bcd.testConstructor('CSSTransformValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSTransformValue is not defined"
    },
    {
      "name": "api.CSSTransformValue.entries",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"entries\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.forEach",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"forEach\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.is2D",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"is2D\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.keys",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"keys\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.length",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"length\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.toMatrix",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"toMatrix\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransformValue.values",
      "info": {
        "code": "\"CSSTransformValue\" in self && \"values\" in CSSTransformValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransition",
      "info": {
        "code": "\"CSSTransition\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTransition.transitionProperty",
      "info": {
        "code": "\"CSSTransition\" in self && \"transitionProperty\" in CSSTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTranslate",
      "info": {
        "code": "\"CSSTranslate\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTranslate.CSSTranslate",
      "info": {
        "code": "bcd.testConstructor('CSSTranslate')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSTranslate is not defined"
    },
    {
      "name": "api.CSSTranslate.x",
      "info": {
        "code": "\"CSSTranslate\" in self && \"x\" in CSSTranslate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTranslate.y",
      "info": {
        "code": "\"CSSTranslate\" in self && \"y\" in CSSTranslate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSTranslate.z",
      "info": {
        "code": "\"CSSTranslate\" in self && \"z\" in CSSTranslate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnitValue",
      "info": {
        "code": "\"CSSUnitValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnitValue.CSSUnitValue",
      "info": {
        "code": "bcd.testConstructor('CSSUnitValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSUnitValue is not defined"
    },
    {
      "name": "api.CSSUnitValue.unit",
      "info": {
        "code": "\"CSSUnitValue\" in self && \"unit\" in CSSUnitValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnitValue.value",
      "info": {
        "code": "\"CSSUnitValue\" in self && \"value\" in CSSUnitValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue",
      "info": {
        "code": "\"CSSUnparsedValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"CSSUnparsedValue\" in self && !!(CSSUnparsedValue.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.CSSUnparsedValue",
      "info": {
        "code": "bcd.testConstructor('CSSUnparsedValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSUnparsedValue is not defined"
    },
    {
      "name": "api.CSSUnparsedValue.entries",
      "info": {
        "code": "\"CSSUnparsedValue\" in self && \"entries\" in CSSUnparsedValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.forEach",
      "info": {
        "code": "\"CSSUnparsedValue\" in self && \"forEach\" in CSSUnparsedValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.keys",
      "info": {
        "code": "\"CSSUnparsedValue\" in self && \"keys\" in CSSUnparsedValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.length",
      "info": {
        "code": "\"CSSUnparsedValue\" in self && \"length\" in CSSUnparsedValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSUnparsedValue.values",
      "info": {
        "code": "\"CSSUnparsedValue\" in self && \"values\" in CSSUnparsedValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValue",
      "info": {
        "code": "\"CSSValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValue.cssText",
      "info": {
        "code": "\"CSSValue\" in self && \"cssText\" in CSSValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValue.cssValueType",
      "info": {
        "code": "\"CSSValue\" in self && \"cssValueType\" in CSSValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValueList",
      "info": {
        "code": "\"CSSValueList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValueList.item",
      "info": {
        "code": "\"CSSValueList\" in self && \"item\" in CSSValueList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSValueList.length",
      "info": {
        "code": "\"CSSValueList\" in self && \"length\" in CSSValueList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSVariableReferenceValue",
      "info": {
        "code": "\"CSSVariableReferenceValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSVariableReferenceValue.CSSVariableReferenceValue",
      "info": {
        "code": "bcd.testConstructor('CSSVariableReferenceValue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CSSVariableReferenceValue is not defined"
    },
    {
      "name": "api.CSSVariableReferenceValue.fallback",
      "info": {
        "code": "\"CSSVariableReferenceValue\" in self && \"fallback\" in CSSVariableReferenceValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSVariableReferenceValue.variable",
      "info": {
        "code": "\"CSSVariableReferenceValue\" in self && \"variable\" in CSSVariableReferenceValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSViewTransitionRule",
      "info": {
        "code": "\"CSSViewTransitionRule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSViewTransitionRule.navigation",
      "info": {
        "code": "\"CSSViewTransitionRule\" in self && \"navigation\" in CSSViewTransitionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CSSViewTransitionRule.types",
      "info": {
        "code": "\"CSSViewTransitionRule\" in self && \"types\" in CSSViewTransitionRule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache",
      "info": {
        "code": "\"Cache\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.add",
      "info": {
        "code": "\"Cache\" in self && \"add\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.addAll",
      "info": {
        "code": "\"Cache\" in self && \"addAll\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.delete",
      "info": {
        "code": "\"Cache\" in self && \"delete\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.keys",
      "info": {
        "code": "\"Cache\" in self && \"keys\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.match",
      "info": {
        "code": "\"Cache\" in self && \"match\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.matchAll",
      "info": {
        "code": "\"Cache\" in self && \"matchAll\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Cache.put",
      "info": {
        "code": "\"Cache\" in self && \"put\" in Cache.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CacheStorage",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CacheStorage.delete",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CacheStorage.has",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CacheStorage.keys",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CacheStorage.match",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance && \"match\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CacheStorage.open",
      "info": {
        "code": "(function () {\n  if (!(\"caches\" in self)) {\n    return { result: false, message: \"caches is not defined\" };\n  }\n  var instance = caches;\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "caches is not defined"
    },
    {
      "name": "api.CanvasCaptureMediaStreamTrack",
      "info": {
        "code": "(function () {\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var stream = canvas.captureStream(60);\n  var tracks = stream.getTracks();\n  var instance = tracks[0];\n\n  var nameResult = bcd.testObjectName(\n    instance,\n    \"CanvasCaptureMediaStreamTrack\"\n  );\n  if (!nameResult.result) {\n    return nameResult;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CanvasCaptureMediaStreamTrack.canvas",
      "info": {
        "code": "(function () {\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var stream = canvas.captureStream(60);\n  var tracks = stream.getTracks();\n  var instance = tracks[0];\n\n  var nameResult = bcd.testObjectName(\n    instance,\n    \"CanvasCaptureMediaStreamTrack\"\n  );\n  if (!nameResult.result) {\n    return nameResult;\n  }\n  return !!instance && \"canvas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CanvasCaptureMediaStreamTrack.requestFrame",
      "info": {
        "code": "(function () {\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var stream = canvas.captureStream(60);\n  var tracks = stream.getTracks();\n  var instance = tracks[0];\n\n  var nameResult = bcd.testObjectName(\n    instance,\n    \"CanvasCaptureMediaStreamTrack\"\n  );\n  if (!nameResult.result) {\n    return nameResult;\n  }\n  return !!instance && \"requestFrame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CanvasFilter",
      "info": {
        "code": "\"CanvasFilter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CanvasFilter.CanvasFilter",
      "info": {
        "code": "bcd.testConstructor('CanvasFilter')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CanvasFilter is not defined"
    },
    {
      "name": "api.CanvasGradient",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance;\n  if (ctx.createLinearGradient) {\n    instance = ctx.createLinearGradient(0, 0, 1, 1);\n  } else if (ctx.createRadialGradient) {\n    instance = ctx.createRadialGradient(0, 0, 0, 1, 1, 1);\n  } else {\n    return {\n      result: false,\n      message: \"Could not create linear or radial gradient\"\n    };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasGradient.addColorStop",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance;\n  if (ctx.createLinearGradient) {\n    instance = ctx.createLinearGradient(0, 0, 1, 1);\n  } else if (ctx.createRadialGradient) {\n    instance = ctx.createRadialGradient(0, 0, 0, 1, 1, 1);\n  } else {\n    return {\n      result: false,\n      message: \"Could not create linear or radial gradient\"\n    };\n  }\n  return !!instance && \"addColorStop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasPattern",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.createPattern(\n    document.getElementById(\"resource-image-black\"),\n    \"repeat\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasPattern.setTransform",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.createPattern(\n    document.getElementById(\"resource-image-black\"),\n    \"repeat\"\n  );\n  return !!instance && \"setTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasPattern.setTransform.dommatrix",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.createPattern(\n    document.getElementById(\"resource-image-black\"),\n    \"repeat\"\n  );\n  var matrix;\n  if (\"DOMMatrix\" in self) {\n    matrix = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    matrix = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    matrix = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  if (!matrix) {\n    return { result: false, message: \"matrix is falsy\" };\n  }\n  if (!(instance && instance.setTransform)) {\n    return { result: false, message: \"instance.setTransform is not defined\" };\n  }\n  try {\n    instance.setTransform(matrix);\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.arc",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"arc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.arcTo",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"arcTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.beginPath",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"beginPath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.bezierCurveTo",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"bezierCurveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.canvas",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"canvas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.clearRect",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"clearRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.clip",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"clip\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.clip.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  if (!(instance && instance.clip)) {\n    return { result: false, message: \"instance.clip is not defined\" };\n  }\n  try {\n    instance.clip(path);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.closePath",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"closePath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.createConicGradient",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"createConicGradient\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.createImageData",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"createImageData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.createLinearGradient",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"createLinearGradient\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.createPattern",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"createPattern\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.createRadialGradient",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"createRadialGradient\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.direction",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"direction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.drawFocusIfNeeded",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"drawFocusIfNeeded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.drawFocusIfNeeded.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  var el = document.createElement(\"b\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  if (!(instance && instance.drawFocusIfNeeded)) {\n    return {\n      result: false,\n      message: \"instance.drawFocusIfNeeded is not defined\"\n    };\n  }\n  try {\n    instance.drawFocusIfNeeded(path, el);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.drawImage",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"drawImage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.drawImage.ImageBitmap_source_image",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmap\n    return {\n      result: null,\n      message: \"Testing ImageBitmap in workers is not yet implemented\"\n    };\n  }\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"Cannot create image bitmap\" };\n  }\n  var imgbmpPromise = createImageBitmap(\n    document.getElementById(\"resource-image-black\")\n  );\n  if (!imgbmpPromise) {\n    return { result: false, message: \"imgbmpPromise is falsy\" };\n  }\n  var promise = imgbmpPromise\n    .then(function (imgbmp) {\n      instance.drawImage(imgbmp, 0, 0);\n      return true;\n    })\n    .catch(function (e) {\n      if (e.name === \"TypeError\") {\n        // A TypeError is thrown for lack of support\n        return { result: false, message: e.message };\n      }\n      throw e;\n    });\n\n  return promise;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.drawImage.SVGImageElement_source_image",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  var image = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!image) {\n    return { result: false, message: \"image is falsy\" };\n  }\n  try {\n    instance.drawImage(image, 0, 0);\n    return true;\n  } catch (e) {\n    if (e.name === \"TypeError\") {\n      // A TypeError is thrown for lack of support\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.ellipse",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"ellipse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fill",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fill\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fill.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  try {\n    instance.fill(path);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fillRect",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fillRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fillStyle",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fillStyle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fillText",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fillText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.filter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"filter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.font",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"font\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fontKerning",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fontKerning\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fontStretch",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fontStretch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.fontVariantCaps",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"fontVariantCaps\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.getContextAttributes",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"getContextAttributes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.getImageData",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"getImageData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.getLineDash",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"getLineDash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.getTransform",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"getTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.globalAlpha",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"globalAlpha\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.globalCompositeOperation",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"globalCompositeOperation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.imageSmoothingEnabled",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"imageSmoothingEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.imageSmoothingQuality",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"imageSmoothingQuality\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.isContextLost",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"isContextLost\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.isPointInPath",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"isPointInPath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.isPointInPath.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  try {\n    instance.isPointInPath(path, 0, 0);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.isPointInStroke",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"isPointInStroke\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.isPointInStroke.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  try {\n    instance.isPointInStroke(path, 0, 0);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lang",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.letterSpacing",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"letterSpacing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lineCap",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lineCap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lineDashOffset",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lineDashOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lineJoin",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lineJoin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lineTo",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lineTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.lineWidth",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"lineWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.measureText",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"measureText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.miterLimit",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"miterLimit\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.moveTo",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"moveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.putImageData",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"putImageData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.quadraticCurveTo",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"quadraticCurveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.rect",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"rect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.reset",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"reset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.resetTransform",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"resetTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.restore",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"restore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.rotate",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"rotate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.roundRect",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"roundRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.save",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"save\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.scale",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"scale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.setLineDash",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"setLineDash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.setTransform",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"setTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.setTransform.matrix_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  var matrix = new DOMMatrix([1, 0.2, 0.8, 1, 0, 0]);\n  try {\n    instance.setTransform(matrix);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.shadowBlur",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"shadowBlur\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.shadowColor",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"shadowColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.shadowOffsetX",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"shadowOffsetX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.shadowOffsetY",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"shadowOffsetY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.stroke",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"stroke\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.stroke.path_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var path = new Path2D();\n  if (!path) {\n    return { result: false, message: \"path is falsy\" };\n  }\n  try {\n    instance.stroke(path);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.strokeRect",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"strokeRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.strokeStyle",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"strokeStyle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.strokeText",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"strokeText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.textAlign",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"textAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.textBaseline",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"textBaseline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.textRendering",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"textRendering\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.transform",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"transform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.translate",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"translate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CanvasRenderingContext2D.wordSpacing",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"2d\");\n  return !!instance && \"wordSpacing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.CaptureActionEvent",
      "info": {
        "code": "\"CaptureActionEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureActionEvent.CaptureActionEvent",
      "info": {
        "code": "bcd.testConstructor('CaptureActionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CaptureActionEvent is not defined"
    },
    {
      "name": "api.CaptureActionEvent.action",
      "info": {
        "code": "\"CaptureActionEvent\" in self && \"action\" in CaptureActionEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController",
      "info": {
        "code": "\"CaptureController\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.CaptureController",
      "info": {
        "code": "bcd.testConstructor('CaptureController')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CaptureController is not defined"
    },
    {
      "name": "api.CaptureController.decreaseZoomLevel",
      "info": {
        "code": "\"CaptureController\" in self && \"decreaseZoomLevel\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.forwardWheel",
      "info": {
        "code": "\"CaptureController\" in self && \"forwardWheel\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.getSupportedZoomLevels",
      "info": {
        "code": "\"CaptureController\" in self && \"getSupportedZoomLevels\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.increaseZoomLevel",
      "info": {
        "code": "\"CaptureController\" in self && \"increaseZoomLevel\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.resetZoomLevel",
      "info": {
        "code": "\"CaptureController\" in self && \"resetZoomLevel\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.setFocusBehavior",
      "info": {
        "code": "\"CaptureController\" in self && \"setFocusBehavior\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaptureController.zoomLevel",
      "info": {
        "code": "\"CaptureController\" in self && \"zoomLevel\" in CaptureController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CapturedMouseEvent",
      "info": {
        "code": "\"CapturedMouseEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CapturedMouseEvent.CapturedMouseEvent",
      "info": {
        "code": "bcd.testConstructor('CapturedMouseEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CapturedMouseEvent is not defined"
    },
    {
      "name": "api.CapturedMouseEvent.surfaceX",
      "info": {
        "code": "\"CapturedMouseEvent\" in self && \"surfaceX\" in CapturedMouseEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CapturedMouseEvent.surfaceY",
      "info": {
        "code": "\"CapturedMouseEvent\" in self && \"surfaceY\" in CapturedMouseEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaretPosition",
      "info": {
        "code": "\"CaretPosition\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaretPosition.getClientRect",
      "info": {
        "code": "\"CaretPosition\" in self && \"getClientRect\" in CaretPosition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaretPosition.offset",
      "info": {
        "code": "\"CaretPosition\" in self && \"offset\" in CaretPosition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CaretPosition.offsetNode",
      "info": {
        "code": "\"CaretPosition\" in self && \"offsetNode\" in CaretPosition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ChannelMergerNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createChannelMerger\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createChannelMerger is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createChannelMerger();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ChannelMergerNode.ChannelMergerNode",
      "info": {
        "code": "bcd.testConstructor('ChannelMergerNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ChannelMergerNode is not defined"
    },
    {
      "name": "api.ChannelSplitterNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createChannelSplitter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createChannelSplitter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createChannelSplitter();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ChannelSplitterNode.ChannelSplitterNode",
      "info": {
        "code": "bcd.testConstructor('ChannelSplitterNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ChannelSplitterNode is not defined"
    },
    {
      "name": "api.ChapterInformation",
      "info": {
        "code": "\"ChapterInformation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ChapterInformation.artwork",
      "info": {
        "code": "\"ChapterInformation\" in self && \"artwork\" in ChapterInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ChapterInformation.startTime",
      "info": {
        "code": "\"ChapterInformation\" in self && \"startTime\" in ChapterInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ChapterInformation.title",
      "info": {
        "code": "\"ChapterInformation\" in self && \"title\" in ChapterInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CharacterBoundsUpdateEvent",
      "info": {
        "code": "\"CharacterBoundsUpdateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CharacterBoundsUpdateEvent.CharacterBoundsUpdateEvent",
      "info": {
        "code": "bcd.testConstructor('CharacterBoundsUpdateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CharacterBoundsUpdateEvent is not defined"
    },
    {
      "name": "api.CharacterBoundsUpdateEvent.rangeEnd",
      "info": {
        "code": "\"CharacterBoundsUpdateEvent\" in self && \"rangeEnd\" in CharacterBoundsUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CharacterBoundsUpdateEvent.rangeStart",
      "info": {
        "code": "\"CharacterBoundsUpdateEvent\" in self && \"rangeStart\" in CharacterBoundsUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CharacterData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.after",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"after\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.appendData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"appendData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.before",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"before\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.data",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.deleteData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"deleteData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.insertData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"insertData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.length",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.nextElementSibling",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"nextElementSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.previousElementSibling",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"previousElementSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.remove",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.replaceData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"replaceData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.replaceWith",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"replaceWith\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CharacterData.substringData",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"substringData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Clipboard",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.read",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return !!instance && \"read\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.read.formats_unsanitized_parameter",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return bcd.testOptionParam(instance, \"read\", \"unsanitized\", [\"text/html\"]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.readText",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return !!instance && \"readText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.type_image-png",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return ClipboardItem.supports(\"image/png\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.type_text-html",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return ClipboardItem.supports(\"text/html\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.type_text-plain",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return ClipboardItem.supports(\"text/plain\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.write",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return !!instance && \"write\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Clipboard.writeText",
      "info": {
        "code": "(function () {\n  var instance = navigator.clipboard;\n  return !!instance && \"writeText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ClipboardEvent",
      "info": {
        "code": "\"ClipboardEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardEvent.ClipboardEvent",
      "info": {
        "code": "bcd.testConstructor('ClipboardEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ClipboardEvent is not defined"
    },
    {
      "name": "api.ClipboardEvent.clipboardData",
      "info": {
        "code": "\"ClipboardEvent\" in self && \"clipboardData\" in ClipboardEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardItem",
      "info": {
        "code": "\"ClipboardItem\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardItem.ClipboardItem",
      "info": {
        "code": "bcd.testConstructor('ClipboardItem')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ClipboardItem is not defined"
    },
    {
      "name": "api.ClipboardItem.getType",
      "info": {
        "code": "\"ClipboardItem\" in self && \"getType\" in ClipboardItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardItem.presentationStyle",
      "info": {
        "code": "\"ClipboardItem\" in self && \"presentationStyle\" in ClipboardItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardItem.supports_static",
      "info": {
        "code": "\"ClipboardItem\" in self && \"supports\" in ClipboardItem",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ClipboardItem.types",
      "info": {
        "code": "\"ClipboardItem\" in self && \"types\" in ClipboardItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CloseEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CloseEvent(\"close\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CloseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CloseEvent.CloseEvent",
      "info": {
        "code": "bcd.testConstructor('CloseEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.CloseEvent.code",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CloseEvent(\"close\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CloseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"code\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CloseEvent.reason",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CloseEvent(\"close\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CloseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"reason\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CloseEvent.wasClean",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CloseEvent(\"close\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CloseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"wasClean\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CloseWatcher",
      "info": {
        "code": "\"CloseWatcher\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CloseWatcher.CloseWatcher",
      "info": {
        "code": "bcd.testConstructor('CloseWatcher')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CloseWatcher is not defined"
    },
    {
      "name": "api.CloseWatcher.close",
      "info": {
        "code": "\"CloseWatcher\" in self && \"close\" in CloseWatcher.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CloseWatcher.destroy",
      "info": {
        "code": "\"CloseWatcher\" in self && \"destroy\" in CloseWatcher.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CloseWatcher.requestClose",
      "info": {
        "code": "\"CloseWatcher\" in self && \"requestClose\" in CloseWatcher.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CommandEvent",
      "info": {
        "code": "\"CommandEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CommandEvent.CommandEvent",
      "info": {
        "code": "bcd.testConstructor('CommandEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CommandEvent is not defined"
    },
    {
      "name": "api.CommandEvent.command",
      "info": {
        "code": "\"CommandEvent\" in self && \"command\" in CommandEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CommandEvent.source",
      "info": {
        "code": "\"CommandEvent\" in self && \"source\" in CommandEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Comment",
      "info": {
        "code": "\"Comment\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Comment.Comment",
      "info": {
        "code": "bcd.testConstructor('Comment')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Comment is not defined"
    },
    {
      "name": "api.CompositionEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CompositionEvent(\"compositionstart\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CompositionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CompositionEvent.CompositionEvent",
      "info": {
        "code": "bcd.testConstructor('CompositionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CompositionEvent is not defined"
    },
    {
      "name": "api.CompositionEvent.data",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CompositionEvent(\"compositionstart\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CompositionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CompositionEvent.initCompositionEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CompositionEvent(\"compositionstart\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CompositionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initCompositionEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CompositionEvent.locale",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CompositionEvent(\"compositionstart\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CompositionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"locale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.CompressionStream",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CompressionStream.CompressionStream",
      "info": {
        "code": "bcd.testConstructor('CompressionStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'CompressionStream': 1 argument required, but only 0 present."
    },
    {
      "name": "api.CompressionStream.CompressionStream.deflate",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  try {\n    new CompressionStream(\"deflate\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CompressionStream.CompressionStream.deflate-raw",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  try {\n    new CompressionStream(\"deflate-raw\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CompressionStream.CompressionStream.gzip",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  try {\n    new CompressionStream(\"gzip\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CompressionStream.readable",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  return !!instance && \"readable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CompressionStream.writable",
      "info": {
        "code": "(function () {\n  if (!(\"CompressionStream\" in self)) {\n    return { result: false, message: \"CompressionStream is not defined\" };\n  }\n  var instance = new CompressionStream(\"gzip\");\n  return !!instance && \"writable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ConstantSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createConstantSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createConstantSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createConstantSource();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ConstantSourceNode.ConstantSourceNode",
      "info": {
        "code": "bcd.testConstructor('ConstantSourceNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ConstantSourceNode is not defined"
    },
    {
      "name": "api.ConstantSourceNode.offset",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createConstantSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createConstantSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createConstantSource();\n  return !!instance && \"offset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ContactAddress",
      "info": {
        "code": "\"ContactAddress\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.addressLine",
      "info": {
        "code": "\"ContactAddress\" in self && \"addressLine\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.city",
      "info": {
        "code": "\"ContactAddress\" in self && \"city\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.country",
      "info": {
        "code": "\"ContactAddress\" in self && \"country\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.dependentLocality",
      "info": {
        "code": "\"ContactAddress\" in self && \"dependentLocality\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.organization",
      "info": {
        "code": "\"ContactAddress\" in self && \"organization\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.phone",
      "info": {
        "code": "\"ContactAddress\" in self && \"phone\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.postalCode",
      "info": {
        "code": "\"ContactAddress\" in self && \"postalCode\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.recipient",
      "info": {
        "code": "\"ContactAddress\" in self && \"recipient\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.region",
      "info": {
        "code": "\"ContactAddress\" in self && \"region\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.sortingCode",
      "info": {
        "code": "\"ContactAddress\" in self && \"sortingCode\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactAddress.toJSON",
      "info": {
        "code": "\"ContactAddress\" in self && \"toJSON\" in ContactAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactsManager",
      "info": {
        "code": "\"ContactsManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactsManager.getProperties",
      "info": {
        "code": "\"ContactsManager\" in self && \"getProperties\" in ContactsManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContactsManager.select",
      "info": {
        "code": "\"ContactsManager\" in self && \"select\" in ContactsManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentIndex",
      "info": {
        "code": "\"ContentIndex\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentIndex.add",
      "info": {
        "code": "\"ContentIndex\" in self && \"add\" in ContentIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentIndex.delete",
      "info": {
        "code": "\"ContentIndex\" in self && \"delete\" in ContentIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentIndex.getAll",
      "info": {
        "code": "\"ContentIndex\" in self && \"getAll\" in ContentIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentVisibilityAutoStateChangeEvent",
      "info": {
        "code": "\"ContentVisibilityAutoStateChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ContentVisibilityAutoStateChangeEvent.ContentVisibilityAutoStateChangeEvent",
      "info": {
        "code": "bcd.testConstructor('ContentVisibilityAutoStateChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ContentVisibilityAutoStateChangeEvent is not defined"
    },
    {
      "name": "api.ContentVisibilityAutoStateChangeEvent.skipped",
      "info": {
        "code": "\"ContentVisibilityAutoStateChangeEvent\" in self && \"skipped\" in ContentVisibilityAutoStateChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ConvolverNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createConvolver\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createConvolver is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createConvolver();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ConvolverNode.ConvolverNode",
      "info": {
        "code": "bcd.testConstructor('ConvolverNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ConvolverNode is not defined"
    },
    {
      "name": "api.ConvolverNode.buffer",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createConvolver\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createConvolver is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createConvolver();\n  return !!instance && \"buffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ConvolverNode.normalize",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createConvolver\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createConvolver is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createConvolver();\n  return !!instance && \"normalize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.CookieChangeEvent",
      "info": {
        "code": "\"CookieChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieChangeEvent.CookieChangeEvent",
      "info": {
        "code": "bcd.testConstructor('CookieChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CookieChangeEvent is not defined"
    },
    {
      "name": "api.CookieChangeEvent.changed",
      "info": {
        "code": "\"CookieChangeEvent\" in self && \"changed\" in CookieChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieChangeEvent.deleted",
      "info": {
        "code": "\"CookieChangeEvent\" in self && \"deleted\" in CookieChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieStore",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.delete",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.delete.partitioned_option",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return bcd.testOptionParam(cookieStore, \"delete\", \"partitioned\", true, {\n    name: \"test_delete_partitioned\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.domain_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_domain\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_domain\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_domain\");\n    })\n    .then(function (cookie) {\n      return \"domain\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.expires_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_expires\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_expires\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_expires\");\n    })\n    .then(function (cookie) {\n      return \"expires\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.name_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_name\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_name\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_name\");\n    })\n    .then(function (cookie) {\n      return \"name\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.partitioned_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_partitioned\", partitioned: true });\n  });\n  return cookieStore\n    .set({ name: \"test_get_partitioned\", value: \"bar\", partitioned: true })\n    .then(function () {\n      return cookieStore.get(\"test_get_partitioned\");\n    })\n    .then(function (cookie) {\n      return \"partitioned\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.path_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_path\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_path\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_path\");\n    })\n    .then(function (cookie) {\n      return \"path\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.sameSite_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_sameSite\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_sameSite\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_sameSite\");\n    })\n    .then(function (cookie) {\n      return \"sameSite\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.secure_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_secure\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_secure\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_secure\");\n    })\n    .then(function (cookie) {\n      return \"secure\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.get.value_return_property",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_get_value\" });\n  });\n  return cookieStore\n    .set({ name: \"test_get_value\", value: \"bar\" })\n    .then(function () {\n      return cookieStore.get(\"test_get_value\");\n    })\n    .then(function (cookie) {\n      return \"value\" in cookie;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.getAll",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return !!instance && \"getAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.set",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  return !!instance && \"set\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStore.set.partitioned_option",
      "info": {
        "code": "(function () {\n  if (!(\"cookieStore\" in self)) {\n    return { result: false, message: \"cookieStore is not defined\" };\n  }\n  var instance = cookieStore;\n  bcd.addCleanup(function () {\n    cookieStore.delete({ name: \"test_set_partitioned\", partitioned: true });\n  });\n  return bcd.testOptionParam(cookieStore, \"set\", \"partitioned\", true, {\n    name: \"test_set_partitioned\",\n    value: \"bar\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "cookieStore is not defined"
    },
    {
      "name": "api.CookieStoreManager",
      "info": {
        "code": "\"CookieStoreManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieStoreManager.getSubscriptions",
      "info": {
        "code": "\"CookieStoreManager\" in self && \"getSubscriptions\" in CookieStoreManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieStoreManager.subscribe",
      "info": {
        "code": "\"CookieStoreManager\" in self && \"subscribe\" in CookieStoreManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CookieStoreManager.unsubscribe",
      "info": {
        "code": "\"CookieStoreManager\" in self && \"unsubscribe\" in CookieStoreManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CountQueuingStrategy",
      "info": {
        "code": "(function () {\n  if (!(\"CountQueuingStrategy\" in self)) {\n    return { result: false, message: \"CountQueuingStrategy is not defined\" };\n  }\n  var instance = new CountQueuingStrategy({ highWaterMark: 1 });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CountQueuingStrategy.CountQueuingStrategy",
      "info": {
        "code": "bcd.testConstructor('CountQueuingStrategy')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'CountQueuingStrategy': 1 argument required, but only 0 present."
    },
    {
      "name": "api.CountQueuingStrategy.highWaterMark",
      "info": {
        "code": "(function () {\n  if (!(\"CountQueuingStrategy\" in self)) {\n    return { result: false, message: \"CountQueuingStrategy is not defined\" };\n  }\n  var instance = new CountQueuingStrategy({ highWaterMark: 1 });\n  return !!instance && \"highWaterMark\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CountQueuingStrategy.size",
      "info": {
        "code": "(function () {\n  if (!(\"CountQueuingStrategy\" in self)) {\n    return { result: false, message: \"CountQueuingStrategy is not defined\" };\n  }\n  var instance = new CountQueuingStrategy({ highWaterMark: 1 });\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Counter",
      "info": {
        "code": "\"Counter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Counter.identifier",
      "info": {
        "code": "\"Counter\" in self && \"identifier\" in Counter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Counter.listStyle",
      "info": {
        "code": "\"Counter\" in self && \"listStyle\" in Counter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Counter.separator",
      "info": {
        "code": "\"Counter\" in self && \"separator\" in Counter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CreateMonitor",
      "info": {
        "code": "\"CreateMonitor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Credential",
      "info": {
        "code": "\"Credential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Credential.id",
      "info": {
        "code": "\"Credential\" in self && \"id\" in Credential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Credential.isConditionalMediationAvailable_static",
      "info": {
        "code": "\"Credential\" in self && \"isConditionalMediationAvailable\" in Credential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Credential.type",
      "info": {
        "code": "\"Credential\" in self && \"type\" in Credential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Credential.willRequestConditionalCreation_static",
      "info": {
        "code": "\"Credential\" in self && \"willRequestConditionalCreation\" in Credential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CredentialsContainer",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.create",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return !!instance && \"create\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get.identity_option",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return bcd.testOptionParam(instance, \"get\", \"identity\", {});\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get.identity_option.context_option",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  function get(identity) {\n    instance.get({ identity: identity });\n  }\n  return bcd.testOptionParam(get, null, \"context\", \"use\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get.identity_option.providers_option_loginHint",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  function get(provider) {\n    instance.get({ identity: { providers: [provider] } });\n  }\n  return bcd.testOptionParam(get, null, \"loginHint\", \"foo\", {\n    configURL: \"\",\n    clientId: \"\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get.otp_option",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return bcd.testOptionParam(instance, \"get\", \"otp\", { transport: \"sms\" });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.get.publicKey_option",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return bcd.testOptionParam(\n    instance,\n    \"get\",\n    \"publicKey\",\n    reusableInstances.cryptoKey\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.preventSilentAccess",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return !!instance && \"preventSilentAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CredentialsContainer.store",
      "info": {
        "code": "(function () {\n  var instance = navigator.credentials;\n  return !!instance && \"store\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.CropTarget",
      "info": {
        "code": "\"CropTarget\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CropTarget.fromElement_static",
      "info": {
        "code": "\"CropTarget\" in self && \"fromElement\" in CropTarget",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Crypto",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Crypto.getRandomValues",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto;\n  return !!instance && \"getRandomValues\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Crypto.randomUUID",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto;\n  return !!instance && \"randomUUID\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Crypto.subtle",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto;\n  return !!instance && \"subtle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CustomElementRegistry",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.CustomElementRegistry",
      "info": {
        "code": "bcd.testConstructor('CustomElementRegistry')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: CustomElementRegistry is not defined"
    },
    {
      "name": "api.CustomElementRegistry.builtin_element_support",
      "info": {
        "code": "(function () {\n  var instance = window.customElements; // Create a class for the element\n  class MyCustomElement extends HTMLParagraphElement {\n    constructor() {\n      // Always call super first in constructor\n      super();\n    }\n  }\n\n  function define(options) {\n    customElements.define(\"my-custom-element\", MyCustomElement, options);\n  }\n  return bcd.testOptionParam(define, null, \"extends\", \"p\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.define",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"define\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.get",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.getName",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"getName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.initialize",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.upgrade",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"upgrade\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomElementRegistry.whenDefined",
      "info": {
        "code": "(function () {\n  var instance = window.customElements;\n  return !!instance && \"whenDefined\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.CustomEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CustomEvent(\"custom\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CustomEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CryptoKey",
      "info": {
        "code": "(function () {\n  var promise = reusableInstances.cryptoKey;\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CryptoKey.algorithm",
      "info": {
        "code": "(function () {\n  var promise = reusableInstances.cryptoKey;\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"algorithm\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CryptoKey.extractable",
      "info": {
        "code": "(function () {\n  var promise = reusableInstances.cryptoKey;\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"extractable\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CryptoKey.type",
      "info": {
        "code": "(function () {\n  var promise = reusableInstances.cryptoKey;\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"type\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CryptoKey.usages",
      "info": {
        "code": "(function () {\n  var promise = reusableInstances.cryptoKey;\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"usages\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CustomEvent.CustomEvent",
      "info": {
        "code": "bcd.testConstructor('CustomEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'CustomEvent': 1 argument required, but only 0 present."
    },
    {
      "name": "api.CustomEvent.detail",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CustomEvent(\"custom\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CustomEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"detail\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.CustomEvent.initCustomEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new CustomEvent(\"custom\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"CustomEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initCustomEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet",
      "info": {
        "code": "\"CustomStateSet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"CustomStateSet\" in self && !!(CustomStateSet.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.add",
      "info": {
        "code": "\"CustomStateSet\" in self && \"add\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.clear",
      "info": {
        "code": "\"CustomStateSet\" in self && \"clear\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.delete",
      "info": {
        "code": "\"CustomStateSet\" in self && \"delete\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.entries",
      "info": {
        "code": "\"CustomStateSet\" in self && \"entries\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.forEach",
      "info": {
        "code": "\"CustomStateSet\" in self && \"forEach\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.has",
      "info": {
        "code": "\"CustomStateSet\" in self && \"has\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.keys",
      "info": {
        "code": "\"CustomStateSet\" in self && \"keys\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.size",
      "info": {
        "code": "\"CustomStateSet\" in self && \"size\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.CustomStateSet.values",
      "info": {
        "code": "\"CustomStateSet\" in self && \"values\" in CustomStateSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMError",
      "info": {
        "code": "(function () {\n  if (!(\"DOMError\" in self)) {\n    return { result: false, message: \"DOMError is not defined\" };\n  }\n  var instance = new DOMError(\"name\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMError is not defined"
    },
    {
      "name": "api.DOMError.message",
      "info": {
        "code": "(function () {\n  if (!(\"DOMError\" in self)) {\n    return { result: false, message: \"DOMError is not defined\" };\n  }\n  var instance = new DOMError(\"name\");\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMError is not defined"
    },
    {
      "name": "api.DOMError.name",
      "info": {
        "code": "(function () {\n  if (!(\"DOMError\" in self)) {\n    return { result: false, message: \"DOMError is not defined\" };\n  }\n  var instance = new DOMError(\"name\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMError is not defined"
    },
    {
      "name": "api.DOMError.type",
      "info": {
        "code": "(function () {\n  if (!(\"DOMError\" in self)) {\n    return { result: false, message: \"DOMError is not defined\" };\n  }\n  var instance = new DOMError(\"name\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMError is not defined"
    },
    {
      "name": "api.DOMException",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMException\" in self) {\n    instance = new DOMException();\n  } else if (\"document\" in self) {\n    try {\n      document.createElement(\"1\");\n    } catch (e) {\n      instance = e;\n    }\n  } else {\n    return {\n      result: false,\n      message: \"DOMException and document are both undefined\"\n    };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DOMException.DOMException",
      "info": {
        "code": "bcd.testConstructor('DOMException')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.DOMException.code",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMException\" in self) {\n    instance = new DOMException();\n  } else if (\"document\" in self) {\n    try {\n      document.createElement(\"1\");\n    } catch (e) {\n      instance = e;\n    }\n  } else {\n    return {\n      result: false,\n      message: \"DOMException and document are both undefined\"\n    };\n  }\n  return !!instance && \"code\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DOMException.message",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMException\" in self) {\n    instance = new DOMException();\n  } else if (\"document\" in self) {\n    try {\n      document.createElement(\"1\");\n    } catch (e) {\n      instance = e;\n    }\n  } else {\n    return {\n      result: false,\n      message: \"DOMException and document are both undefined\"\n    };\n  }\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DOMException.name",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMException\" in self) {\n    instance = new DOMException();\n  } else if (\"document\" in self) {\n    try {\n      document.createElement(\"1\");\n    } catch (e) {\n      instance = e;\n    }\n  } else {\n    return {\n      result: false,\n      message: \"DOMException and document are both undefined\"\n    };\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DOMImplementation",
      "info": {
        "code": "(function () {\n  var instance = document.implementation;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMImplementation.createDocument",
      "info": {
        "code": "(function () {\n  var instance = document.implementation;\n  return !!instance && \"createDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMImplementation.createDocumentType",
      "info": {
        "code": "(function () {\n  var instance = document.implementation;\n  return !!instance && \"createDocumentType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMImplementation.createHTMLDocument",
      "info": {
        "code": "(function () {\n  var instance = document.implementation;\n  return !!instance && \"createHTMLDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMImplementation.hasFeature",
      "info": {
        "code": "(function () {\n  var instance = document.implementation;\n  return !!instance && \"hasFeature\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMMatrix",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.DOMMatrix",
      "info": {
        "code": "bcd.testConstructor('DOMMatrix')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMMatrix is not defined"
    },
    {
      "name": "api.DOMMatrix.a",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"a\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.b",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"b\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.c",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"c\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.d",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"d\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.e",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"e\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.f",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.fromFloat32Array_static",
      "info": {
        "code": "\"DOMMatrix\" in self && \"fromFloat32Array\" in DOMMatrix",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrix.fromFloat64Array_static",
      "info": {
        "code": "\"DOMMatrix\" in self && \"fromFloat64Array\" in DOMMatrix",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrix.fromMatrix_static",
      "info": {
        "code": "\"DOMMatrix\" in self && \"fromMatrix\" in DOMMatrix",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrix.invertSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"invertSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m11",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m11\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m12",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m12\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m13",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m13\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m14",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m14\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m21",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m21\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m22",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m22\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m23",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m23\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m24",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m24\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m31",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m31\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m32",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m32\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m33",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m33\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m34",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m34\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m41",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m41\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m42",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m42\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m43",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m43\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.m44",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"m44\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.multiplySelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"multiplySelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.preMultiplySelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"preMultiplySelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.rotateAxisAngleSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"rotateAxisAngleSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.rotateFromVectorSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"rotateFromVectorSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.rotateSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"rotateSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.scale3dSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"scale3dSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.scaleSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"scaleSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.setMatrixValue",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"setMatrixValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.skewXSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"skewXSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.skewYSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"skewYSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrix.translateSelf",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"DOMMatrix\" in self) {\n    instance = new DOMMatrix();\n  } else if (\"WebKitCSSMatrix\" in self) {\n    instance = new WebKitCSSMatrix();\n  } else if (\"SVGMatrix\" in self) {\n    instance = new SVGMatrix();\n  } else {\n    return {\n      result: false,\n      message: \"DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined.\"\n    };\n  }\n  return !!instance && \"translateSelf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMMatrix, WebKitCSSMatrix and SVGMatrix are not defined."
    },
    {
      "name": "api.DOMMatrixReadOnly",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.DOMMatrixReadOnly",
      "info": {
        "code": "bcd.testConstructor('DOMMatrixReadOnly')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMMatrixReadOnly is not defined"
    },
    {
      "name": "api.DOMMatrixReadOnly.a",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"a\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.b",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"b\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.c",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"c\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.d",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"d\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.e",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"e\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.f",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"f\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.flipX",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"flipX\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.flipY",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"flipY\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.fromFloat32Array_static",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"fromFloat32Array\" in DOMMatrixReadOnly",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.fromFloat64Array_static",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"fromFloat64Array\" in DOMMatrixReadOnly",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.fromMatrix_static",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"fromMatrix\" in DOMMatrixReadOnly",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.inverse",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"inverse\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.is2D",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"is2D\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.isIdentity",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"isIdentity\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m11",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m11\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m12",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m12\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m13",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m13\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m14",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m14\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m21",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m21\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m22",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m22\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m23",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m23\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m24",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m24\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m31",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m31\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m32",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m32\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m33",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m33\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m34",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m34\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m41",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m41\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m42",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m42\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m43",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m43\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.m44",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"m44\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.multiply",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"multiply\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.rotate",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"rotate\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.rotateAxisAngle",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"rotateAxisAngle\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.rotateFromVector",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"rotateFromVector\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.scale",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"scale\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.scale3d",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"scale3d\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.scaleNonUniform",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"scaleNonUniform\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.skewX",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"skewX\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.skewY",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"skewY\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.toFloat32Array",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"toFloat32Array\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.toFloat64Array",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"toFloat64Array\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.toJSON",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"toJSON\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.toString",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"toString\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.transform",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"transform\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.transformPoint",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"transformPoint\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMMatrixReadOnly.translate",
      "info": {
        "code": "\"DOMMatrixReadOnly\" in self && \"translate\" in DOMMatrixReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMParser",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var instance = new DOMParser();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.DOMParser.DOMParser",
      "info": {
        "code": "bcd.testConstructor('DOMParser')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMParser is not defined"
    },
    {
      "name": "api.DOMParser.parseFromString",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var instance = new DOMParser();\n  return !!instance && \"parseFromString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.DOMParser.parseFromString.html",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var instance = new DOMParser();\n  if (!(instance && instance.parseFromString)) {\n    return {\n      result: false,\n      message: \"instance.parseFromString is not defined\"\n    };\n  }\n  try {\n    instance.parseFromString(\"<html></html>\", \"text/html\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.DOMParser.parseFromString.svg",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var instance = new DOMParser();\n  if (!(instance && instance.parseFromString)) {\n    return {\n      result: false,\n      message: \"instance.parseFromString is not defined\"\n    };\n  }\n  try {\n    instance.parseFromString(\"<circle />\", \"image/svg+xml\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.DOMParser.parseFromString.xml",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var instance = new DOMParser();\n  if (!(instance && instance.parseFromString)) {\n    return {\n      result: false,\n      message: \"instance.parseFromString is not defined\"\n    };\n  }\n  try {\n    instance.parseFromString(\"<foo />\", \"text/xml\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.DOMPoint",
      "info": {
        "code": "\"DOMPoint\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPoint.DOMPoint",
      "info": {
        "code": "bcd.testConstructor('DOMPoint')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMPoint is not defined"
    },
    {
      "name": "api.DOMPoint.fromPoint_static",
      "info": {
        "code": "\"DOMPoint\" in self && \"fromPoint\" in DOMPoint",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPoint.w",
      "info": {
        "code": "\"DOMPoint\" in self && Object.prototype.hasOwnProperty.call(DOMPoint.prototype, \"w\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPoint.x",
      "info": {
        "code": "\"DOMPoint\" in self && Object.prototype.hasOwnProperty.call(DOMPoint.prototype, \"x\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPoint.y",
      "info": {
        "code": "\"DOMPoint\" in self && Object.prototype.hasOwnProperty.call(DOMPoint.prototype, \"y\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPoint.z",
      "info": {
        "code": "\"DOMPoint\" in self && Object.prototype.hasOwnProperty.call(DOMPoint.prototype, \"z\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly",
      "info": {
        "code": "\"DOMPointReadOnly\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.DOMPointReadOnly",
      "info": {
        "code": "bcd.testConstructor('DOMPointReadOnly')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMPointReadOnly is not defined"
    },
    {
      "name": "api.DOMPointReadOnly.fromPoint_static",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"fromPoint\" in DOMPointReadOnly",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.matrixTransform",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"matrixTransform\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.toJSON",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"toJSON\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.w",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"w\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.x",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"x\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.y",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"y\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMPointReadOnly.z",
      "info": {
        "code": "\"DOMPointReadOnly\" in self && \"z\" in DOMPointReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad",
      "info": {
        "code": "\"DOMQuad\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.DOMQuad",
      "info": {
        "code": "bcd.testConstructor('DOMQuad')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMQuad is not defined"
    },
    {
      "name": "api.DOMQuad.fromQuad_static",
      "info": {
        "code": "\"DOMQuad\" in self && \"fromQuad\" in DOMQuad",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.fromRect_static",
      "info": {
        "code": "\"DOMQuad\" in self && \"fromRect\" in DOMQuad",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.getBounds",
      "info": {
        "code": "\"DOMQuad\" in self && \"getBounds\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.p1",
      "info": {
        "code": "\"DOMQuad\" in self && \"p1\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.p2",
      "info": {
        "code": "\"DOMQuad\" in self && \"p2\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.p3",
      "info": {
        "code": "\"DOMQuad\" in self && \"p3\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.p4",
      "info": {
        "code": "\"DOMQuad\" in self && \"p4\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMQuad.toJSON",
      "info": {
        "code": "\"DOMQuad\" in self && \"toJSON\" in DOMQuad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect",
      "info": {
        "code": "\"DOMRect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect.DOMRect",
      "info": {
        "code": "bcd.testConstructor('DOMRect')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMRect is not defined"
    },
    {
      "name": "api.DOMRect.fromRect_static",
      "info": {
        "code": "\"DOMRect\" in self && \"fromRect\" in DOMRect",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect.height",
      "info": {
        "code": "\"DOMRect\" in self && Object.prototype.hasOwnProperty.call(DOMRect.prototype, \"height\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect.width",
      "info": {
        "code": "\"DOMRect\" in self && Object.prototype.hasOwnProperty.call(DOMRect.prototype, \"width\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect.x",
      "info": {
        "code": "\"DOMRect\" in self && Object.prototype.hasOwnProperty.call(DOMRect.prototype, \"x\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRect.y",
      "info": {
        "code": "\"DOMRect\" in self && Object.prototype.hasOwnProperty.call(DOMRect.prototype, \"y\")",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectList",
      "info": {
        "code": "(function () {\n  var el;\n  try {\n    el = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    el = document.createElement(\"b\");\n  }\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  if (!(\"getClientRects\" in el)) {\n    return { result: false, message: \"el.getClientRects is not defined\" };\n  }\n  var instance = el.getClientRects();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMRectList.item",
      "info": {
        "code": "(function () {\n  var el;\n  try {\n    el = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    el = document.createElement(\"b\");\n  }\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  if (!(\"getClientRects\" in el)) {\n    return { result: false, message: \"el.getClientRects is not defined\" };\n  }\n  var instance = el.getClientRects();\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMRectList.length",
      "info": {
        "code": "(function () {\n  var el;\n  try {\n    el = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    el = document.createElement(\"b\");\n  }\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  if (!(\"getClientRects\" in el)) {\n    return { result: false, message: \"el.getClientRects is not defined\" };\n  }\n  var instance = el.getClientRects();\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMRectReadOnly",
      "info": {
        "code": "\"DOMRectReadOnly\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.DOMRectReadOnly",
      "info": {
        "code": "bcd.testConstructor('DOMRectReadOnly')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DOMRectReadOnly is not defined"
    },
    {
      "name": "api.DOMRectReadOnly.bottom",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"bottom\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.fromRect_static",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"fromRect\" in DOMRectReadOnly",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.height",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"height\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.left",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"left\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.right",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"right\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.toJSON",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"toJSON\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.top",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"top\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.width",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"width\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.x",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"x\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMRectReadOnly.y",
      "info": {
        "code": "\"DOMRectReadOnly\" in self && \"y\" in DOMRectReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMStringList",
      "info": {
        "code": "\"DOMStringList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMStringList.contains",
      "info": {
        "code": "\"DOMStringList\" in self && \"contains\" in DOMStringList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMStringList.item",
      "info": {
        "code": "\"DOMStringList\" in self && \"item\" in DOMStringList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMStringList.length",
      "info": {
        "code": "\"DOMStringList\" in self && \"length\" in DOMStringList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMStringMap",
      "info": {
        "code": "\"DOMStringMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMTokenList",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.@@iterator",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.add",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"add\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.add.multiple_parameters",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  instance.add(\"foo\", \"bar\", \"baz\");\n  return el.className === \"foo bar baz\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.contains",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"contains\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.entries",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.forEach",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.item",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.keys",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.remove",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.remove.multiple_parameters",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  instance.add(\"foo\", \"bar\", \"baz\");\n  instance.remove(\"bar\", \"baz\");\n  return el.className === \"foo\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.remove_duplicates",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  if (!instance) {\n    return { result: false, message: \"Element.classList is not defined\" };\n  }\n  el.className = \" foo bar foo \";\n  instance.remove(\"bar\");\n  return el.className === \"foo\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.replace",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"replace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.replace.boolean_value",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  instance.add(\"foo\");\n  var value = instance.replace(\"foo\", \"bar\");\n  return value === true;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.supports",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"supports\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.toString",
      "info": {
        "code": "\"DOMTokenList\" in self && \"toString\" in DOMTokenList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DOMTokenList.toggle",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"toggle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.toggle.force_parameter",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  if (!instance) {\n    return { result: false, message: \"Element.classList is not defined\" };\n  }\n  if (!(\"toggle\" in instance)) {\n    return {\n      result: false,\n      message: \"Element.classList.toggle is not defined\"\n    };\n  }\n  el.className = \"foo bar\";\n\n  instance.toggle(\"foo\", true);\n  return el.className === \"foo bar\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.trim_whitespace",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  if (!instance) {\n    return { result: false, message: \"Element.classList is not defined\" };\n  }\n  el.className = \" foo bar foo \";\n  instance.remove(\"bar\");\n  return el.className === \"foo foo\" || el.className === \"foo\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.value",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DOMTokenList.values",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  var instance = el.classList;\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DataCue",
      "info": {
        "code": "\"DataCue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataCue.DataCue",
      "info": {
        "code": "bcd.testConstructor('DataCue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DataCue is not defined"
    },
    {
      "name": "api.DataCue.type",
      "info": {
        "code": "\"DataCue\" in self && \"type\" in DataCue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataCue.value",
      "info": {
        "code": "\"DataCue\" in self && \"value\" in DataCue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer",
      "info": {
        "code": "\"DataTransfer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.DataTransfer",
      "info": {
        "code": "bcd.testConstructor('DataTransfer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DataTransfer is not defined"
    },
    {
      "name": "api.DataTransfer.addElement",
      "info": {
        "code": "\"DataTransfer\" in self && \"addElement\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.clearData",
      "info": {
        "code": "\"DataTransfer\" in self && \"clearData\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.dropEffect",
      "info": {
        "code": "\"DataTransfer\" in self && \"dropEffect\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.effectAllowed",
      "info": {
        "code": "\"DataTransfer\" in self && \"effectAllowed\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.files",
      "info": {
        "code": "\"DataTransfer\" in self && \"files\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.getData",
      "info": {
        "code": "\"DataTransfer\" in self && \"getData\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.items",
      "info": {
        "code": "\"DataTransfer\" in self && \"items\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.mozCursor",
      "info": {
        "code": "\"DataTransfer\" in self && \"mozCursor\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.mozSourceNode",
      "info": {
        "code": "\"DataTransfer\" in self && \"mozSourceNode\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.mozUserCancelled",
      "info": {
        "code": "\"DataTransfer\" in self && \"mozUserCancelled\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.setData",
      "info": {
        "code": "\"DataTransfer\" in self && \"setData\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.setDragImage",
      "info": {
        "code": "\"DataTransfer\" in self && \"setDragImage\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransfer.types",
      "info": {
        "code": "\"DataTransfer\" in self && \"types\" in DataTransfer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem",
      "info": {
        "code": "\"DataTransferItem\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.getAsFile",
      "info": {
        "code": "\"DataTransferItem\" in self && \"getAsFile\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.getAsFileSystemHandle",
      "info": {
        "code": "\"DataTransferItem\" in self && \"getAsFileSystemHandle\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.getAsString",
      "info": {
        "code": "\"DataTransferItem\" in self && \"getAsString\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.kind",
      "info": {
        "code": "\"DataTransferItem\" in self && \"kind\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.type",
      "info": {
        "code": "\"DataTransferItem\" in self && \"type\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItem.webkitGetAsEntry",
      "info": {
        "code": "\"DataTransferItem\" in self && \"webkitGetAsEntry\" in DataTransferItem.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItemList",
      "info": {
        "code": "\"DataTransferItemList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItemList.add",
      "info": {
        "code": "\"DataTransferItemList\" in self && \"add\" in DataTransferItemList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItemList.clear",
      "info": {
        "code": "\"DataTransferItemList\" in self && \"clear\" in DataTransferItemList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItemList.length",
      "info": {
        "code": "\"DataTransferItemList\" in self && \"length\" in DataTransferItemList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DataTransferItemList.remove",
      "info": {
        "code": "\"DataTransferItemList\" in self && \"remove\" in DataTransferItemList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DecompressionStream",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DecompressionStream.DecompressionStream",
      "info": {
        "code": "bcd.testConstructor('DecompressionStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'DecompressionStream': 1 argument required, but only 0 present."
    },
    {
      "name": "api.DecompressionStream.DecompressionStream.deflate",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  try {\n    new DecompressionStream(\"deflate\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DecompressionStream.DecompressionStream.deflate-raw",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  try {\n    new DecompressionStream(\"deflate-raw\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DecompressionStream.DecompressionStream.gzip",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  try {\n    new DecompressionStream(\"gzip\");\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DecompressionStream.readable",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  return !!instance && \"readable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DecompressionStream.writable",
      "info": {
        "code": "(function () {\n  if (!(\"DecompressionStream\" in self)) {\n    return { result: false, message: \"DecompressionStream is not defined\" };\n  }\n  var instance = new DecompressionStream(\"gzip\");\n  return !!instance && \"writable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.DelayNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDelay\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDelay is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDelay();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DelayNode.DelayNode",
      "info": {
        "code": "bcd.testConstructor('DelayNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DelayNode is not defined"
    },
    {
      "name": "api.DelayNode.delayTime",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDelay\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDelay is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDelay();\n  return !!instance && \"delayTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DelegatedInkTrailPresenter",
      "info": {
        "code": "\"DelegatedInkTrailPresenter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DelegatedInkTrailPresenter.expectedImprovement",
      "info": {
        "code": "\"DelegatedInkTrailPresenter\" in self && \"expectedImprovement\" in DelegatedInkTrailPresenter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DelegatedInkTrailPresenter.presentationArea",
      "info": {
        "code": "\"DelegatedInkTrailPresenter\" in self && \"presentationArea\" in DelegatedInkTrailPresenter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DelegatedInkTrailPresenter.updateInkTrailStartPoint",
      "info": {
        "code": "\"DelegatedInkTrailPresenter\" in self && \"updateInkTrailStartPoint\" in DelegatedInkTrailPresenter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceChangeEvent",
      "info": {
        "code": "\"DeviceChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceChangeEvent.DeviceChangeEvent",
      "info": {
        "code": "bcd.testConstructor('DeviceChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DeviceChangeEvent is not defined"
    },
    {
      "name": "api.DeviceChangeEvent.devices",
      "info": {
        "code": "\"DeviceChangeEvent\" in self && \"devices\" in DeviceChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceChangeEvent.userInsertedDevices",
      "info": {
        "code": "\"DeviceChangeEvent\" in self && \"userInsertedDevices\" in DeviceChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceLightEvent",
      "info": {
        "code": "\"DeviceLightEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceLightEvent.value",
      "info": {
        "code": "\"DeviceLightEvent\" in self && \"value\" in DeviceLightEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceMotionEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEvent.DeviceMotionEvent",
      "info": {
        "code": "bcd.testConstructor('DeviceMotionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DeviceMotionEvent is not defined"
    },
    {
      "name": "api.DeviceMotionEvent.acceleration",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"acceleration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEvent.accelerationIncludingGravity",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"accelerationIncludingGravity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEvent.interval",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"interval\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEvent.requestPermission_static",
      "info": {
        "code": "\"DeviceMotionEvent\" in self && \"requestPermission\" in DeviceMotionEvent",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceMotionEvent.rotationRate",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"rotationRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventAcceleration",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.acceleration;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventAcceleration.x",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.acceleration;\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventAcceleration.y",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.acceleration;\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventAcceleration.z",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.acceleration;\n  return !!instance && \"z\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventRotationRate",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.rotationRate;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventRotationRate.alpha",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.rotationRate;\n  return !!instance && \"alpha\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventRotationRate.beta",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.rotationRate;\n  return !!instance && \"beta\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceMotionEventRotationRate.gamma",
      "info": {
        "code": "(function () {\n  var event;\n  try {\n    event = new DeviceMotionEvent(\"devicemotion\", {\n      acceleration: { x: 1, y: 1, z: 1 },\n      rotationRate: { alpha: 1, beta: 1, gamma: 1 }\n    });\n  } catch (e) {\n    try {\n      event = document.createEvent(\"DeviceMotionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  if (!event) {\n    return { result: false, message: \"event is falsy\" };\n  }\n  var instance = event.rotationRate;\n  return !!instance && \"gamma\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceOrientationEvent(\"deviceorientation\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceOrientationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.DeviceOrientationEvent",
      "info": {
        "code": "bcd.testConstructor('DeviceOrientationEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DeviceOrientationEvent is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.absolute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceOrientationEvent(\"deviceorientation\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceOrientationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"absolute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.alpha",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceOrientationEvent(\"deviceorientation\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceOrientationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"alpha\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.beta",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceOrientationEvent(\"deviceorientation\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceOrientationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"beta\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.gamma",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DeviceOrientationEvent(\"deviceorientation\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DeviceOrientationEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"gamma\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DeviceOrientationEvent.requestPermission_static",
      "info": {
        "code": "\"DeviceOrientationEvent\" in self && \"requestPermission\" in DeviceOrientationEvent",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DevicePosture",
      "info": {
        "code": "\"DevicePosture\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DevicePosture.type",
      "info": {
        "code": "\"DevicePosture\" in self && \"type\" in DevicePosture.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceProximityEvent",
      "info": {
        "code": "\"DeviceProximityEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceProximityEvent.max",
      "info": {
        "code": "\"DeviceProximityEvent\" in self && \"max\" in DeviceProximityEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceProximityEvent.min",
      "info": {
        "code": "\"DeviceProximityEvent\" in self && \"min\" in DeviceProximityEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DeviceProximityEvent.value",
      "info": {
        "code": "\"DeviceProximityEvent\" in self && \"value\" in DeviceProximityEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalCredential",
      "info": {
        "code": "\"DigitalCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalCredential.data",
      "info": {
        "code": "\"DigitalCredential\" in self && \"data\" in DigitalCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalCredential.protocol",
      "info": {
        "code": "\"DigitalCredential\" in self && \"protocol\" in DigitalCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalCredential.toJSON",
      "info": {
        "code": "\"DigitalCredential\" in self && \"toJSON\" in DigitalCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalCredential.userAgentAllowsProtocol_static",
      "info": {
        "code": "\"DigitalCredential\" in self && \"userAgentAllowsProtocol\" in DigitalCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalGoodsService",
      "info": {
        "code": "\"DigitalGoodsService\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalGoodsService.consume",
      "info": {
        "code": "\"DigitalGoodsService\" in self && \"consume\" in DigitalGoodsService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalGoodsService.getDetails",
      "info": {
        "code": "\"DigitalGoodsService\" in self && \"getDetails\" in DigitalGoodsService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalGoodsService.listPurchaseHistory",
      "info": {
        "code": "\"DigitalGoodsService\" in self && \"listPurchaseHistory\" in DigitalGoodsService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DigitalGoodsService.listPurchases",
      "info": {
        "code": "\"DigitalGoodsService\" in self && \"listPurchases\" in DigitalGoodsService.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Directory",
      "info": {
        "code": "\"Directory\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Directory.getFiles",
      "info": {
        "code": "\"Directory\" in self && \"getFiles\" in Directory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Directory.getFilesAndDirectories",
      "info": {
        "code": "\"Directory\" in self && \"getFilesAndDirectories\" in Directory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Directory.name",
      "info": {
        "code": "\"Directory\" in self && \"name\" in Directory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Directory.path",
      "info": {
        "code": "\"Directory\" in self && \"path\" in Directory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DirectoryEntrySync",
      "info": {
        "code": "\"DirectoryEntrySync\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Document",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.Document",
      "info": {
        "code": "bcd.testConstructor('Document')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Document is not defined"
    },
    {
      "name": "api.Document.URL",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"URL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.activeElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"activeElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.activeViewTransition",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"activeViewTransition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.adoptNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"adoptNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.adoptedStyleSheets",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"adoptedStyleSheets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.alinkColor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"alinkColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.all",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"all\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.anchors",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"anchors\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.append",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"append\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.applets",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"applets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.body",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"body\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.browsingTopics",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"browsingTopics\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.captureEvents",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"captureEvents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.caretPositionFromPoint",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"caretPositionFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.caretPositionFromPoint.options_parameter",
      "info": {
        "code": "(function () {\n  var instance = document;\n  function caretPositionFromPoint(options) {\n    document.caretPositionFromPoint(0, 0, options);\n  }\n  return bcd.testOptionParam(caretPositionFromPoint, null, \"shadowRoots\", []);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.caretRangeFromPoint",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"caretRangeFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.characterSet",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"characterSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.childElementCount",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"childElementCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.children",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"children\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.clear",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.close",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.compatMode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"compatMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.contentType",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"contentType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.convertPointFromNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"convertPointFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.convertQuadFromNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"convertQuadFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.convertRectFromNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"convertRectFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.cookie",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"cookie\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createAttribute",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createAttributeNS",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createAttributeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createCDATASection",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createCDATASection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createComment",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createComment\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createDocumentFragment",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createDocumentFragment\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createElement.options_parameter",
      "info": {
        "code": "(function () {\n  var instance = document;\n  function doTest(options) {\n    instance.createElement(\"p\", options);\n  }\n  return bcd.testOptionParam(doTest, null, \"is\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createElementNS",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createElementNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createElementNS.options_parameter",
      "info": {
        "code": "(function () {\n  var instance = document;\n  function doTest(options) {\n    instance.createElementNS(\"http://www.w3.org/1999/xhtml\", \"p\", options);\n  }\n  return bcd.testOptionParam(doTest, null, \"is\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createEvent",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createExpression",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createExpression\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createNSResolver",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createNSResolver\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createNodeIterator",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createNodeIterator\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createProcessingInstruction",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createProcessingInstruction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createRange",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createTextNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createTextNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createTouch",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createTouch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createTouchList",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createTouchList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createTreeWalker",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"createTreeWalker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.createTreeWalker.whatToShow_filter_parameters_optional",
      "info": {
        "code": "(function () {\n  var instance = document;\n  try {\n    instance.createTreeWalker(document.body);\n    return true;\n  } catch (e) {\n    if (\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.currentScript",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"currentScript\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.customElementRegistry",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"customElementRegistry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.defaultView",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"defaultView\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.designMode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"designMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.dir",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"dir\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.doctype",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"doctype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.documentElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"documentElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.documentURI",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"documentURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.domain",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"domain\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.elementFromPoint",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"elementFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.elementsFromPoint",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"elementsFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.embeds",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"embeds\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.enableStyleSheetsForSet",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"enableStyleSheetsForSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.evaluate",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"evaluate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.execCommand",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"execCommand\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.exitFullscreen",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"exitFullscreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.exitFullscreen.returns_promise",
      "info": {
        "code": "(function () {\n  var instance = document;\n  if (!(\"Promise\" in self)) {\n    return { result: false, message: \"Promises are not supported\" };\n  }\n  var value = document.exitFullscreen();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.exitPictureInPicture",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"exitPictureInPicture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.exitPointerLock",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"exitPointerLock\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.featurePolicy",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"featurePolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fgColor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.firstElementChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"firstElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fonts",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fonts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.forms",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"forms\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fragmentDirective",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fragmentDirective\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fullscreen",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fullscreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fullscreenElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fullscreenElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.fullscreenEnabled",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"fullscreenEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getAnimations",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getAnimations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getBoxQuads",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getBoxQuads\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getElementById",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getElementById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getElementsByClassName",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getElementsByClassName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getElementsByName",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getElementsByName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getElementsByTagName",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getElementsByTagName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getElementsByTagNameNS",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getElementsByTagNameNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.getSelection",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getSelection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hasFocus",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasFocus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hasPrivateToken",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasPrivateToken\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hasRedemptionRecord",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasRedemptionRecord\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hasStorageAccess",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasStorageAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hasUnpartitionedCookieAccess",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasUnpartitionedCookieAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.head",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"head\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.hidden",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hidden\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.images",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"images\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.implementation",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"implementation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.importNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"importNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.lastElementChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lastElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.lastModified",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lastModified\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.lastStyleSheetSet",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lastStyleSheetSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.linkColor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"linkColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.links",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"links\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.location",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"location\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.measureElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"measureElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.measureText",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"measureText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.moveBefore",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"moveBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.mozSetImageElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"mozSetImageElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.namedFlows",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"namedFlows\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.open",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.parseHTMLUnsafe_static",
      "info": {
        "code": "\"Document\" in self && \"parseHTMLUnsafe\" in Document",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Document.permissionsPolicy",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"permissionsPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.pictureInPictureElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"pictureInPictureElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.pictureInPictureEnabled",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"pictureInPictureEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.plugins",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"plugins\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.pointerLockElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"pointerLockElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.preferredStyleSheetSet",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"preferredStyleSheetSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.prepend",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"prepend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.prerendering",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"prerendering\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.queryCommandEnabled",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"queryCommandEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.queryCommandIndeterm",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"queryCommandIndeterm\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.queryCommandState",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"queryCommandState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.queryCommandSupported",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"queryCommandSupported\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.queryCommandValue",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"queryCommandValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.querySelector",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"querySelector\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.querySelectorAll",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"querySelectorAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.readyState",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.referrer",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"referrer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.registerElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"registerElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.releaseCapture",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"releaseCapture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.releaseEvents",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"releaseEvents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.replaceChildren",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"replaceChildren\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.requestStorageAccess",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"requestStorageAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.requestStorageAccessFor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"requestStorageAccessFor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.rootElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"rootElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.scripts",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"scripts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.scrollingElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"scrollingElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.selectedStyleSheetSet",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"selectedStyleSheetSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.startViewTransition",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"startViewTransition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.styleSheetSets",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"styleSheetSets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.styleSheets",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"styleSheets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.timeline",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"timeline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.title",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"title\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.visibilityState",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"visibilityState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.vlinkColor",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"vlinkColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.wasDiscarded",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"wasDiscarded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.write",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"write\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.writeln",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"writeln\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.xmlEncoding",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"xmlEncoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.xmlStandalone",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"xmlStandalone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Document.xmlVersion",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"xmlVersion\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.DocumentFragment",
      "info": {
        "code": "bcd.testConstructor('DocumentFragment')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DocumentFragment is not defined"
    },
    {
      "name": "api.DocumentFragment.append",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"append\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.childElementCount",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"childElementCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.children",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"children\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.firstElementChild",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"firstElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.getElementById",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"getElementById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.lastElementChild",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"lastElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.moveBefore",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"moveBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.prepend",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"prepend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.querySelector",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"querySelector\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.querySelectorAll",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"querySelectorAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentFragment.replaceChildren",
      "info": {
        "code": "(function () {\n  if (!(\"createDocumentFragment\" in document)) {\n    return {\n      result: false,\n      message: \"document.createDocumentFragment is not defined\"\n    };\n  }\n  var instance = document.createDocumentFragment();\n  return !!instance && \"replaceChildren\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentPictureInPicture",
      "info": {
        "code": "\"DocumentPictureInPicture\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentPictureInPicture.requestWindow",
      "info": {
        "code": "\"DocumentPictureInPicture\" in self && \"requestWindow\" in DocumentPictureInPicture.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentPictureInPicture.window",
      "info": {
        "code": "\"DocumentPictureInPicture\" in self && \"window\" in DocumentPictureInPicture.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentPictureInPictureEvent",
      "info": {
        "code": "\"DocumentPictureInPictureEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentPictureInPictureEvent.DocumentPictureInPictureEvent",
      "info": {
        "code": "bcd.testConstructor('DocumentPictureInPictureEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DocumentPictureInPictureEvent is not defined"
    },
    {
      "name": "api.DocumentPictureInPictureEvent.window",
      "info": {
        "code": "\"DocumentPictureInPictureEvent\" in self && \"window\" in DocumentPictureInPictureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentTimeline",
      "info": {
        "code": "\"DocumentTimeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.DocumentTimeline.DocumentTimeline",
      "info": {
        "code": "bcd.testConstructor('DocumentTimeline')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DocumentTimeline is not defined"
    },
    {
      "name": "api.DocumentType",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.after",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"after\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.before",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"before\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.name",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.publicId",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"publicId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.remove",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.replaceWith",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"replaceWith\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DocumentType.systemId",
      "info": {
        "code": "(function () {\n  if (!(\"doctype\" in document)) {\n    return { result: false, message: \"document.doctype is not defined\" };\n  }\n  var instance = document.doctype;\n  return !!instance && \"systemId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DragEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DragEvent(\"drag\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DragEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DragEvent.DragEvent",
      "info": {
        "code": "bcd.testConstructor('DragEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DragEvent is not defined"
    },
    {
      "name": "api.DragEvent.dataTransfer",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new DragEvent(\"drag\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"DragEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"dataTransfer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.DynamicsCompressorNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.DynamicsCompressorNode",
      "info": {
        "code": "bcd.testConstructor('DynamicsCompressorNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: DynamicsCompressorNode is not defined"
    },
    {
      "name": "api.DynamicsCompressorNode.attack",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"attack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.knee",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"knee\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.ratio",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"ratio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.reduction",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"reduction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.release",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"release\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.DynamicsCompressorNode.threshold",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createDynamicsCompressor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createDynamicsCompressor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createDynamicsCompressor();\n  return !!instance && \"threshold\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.EXT_blend_minmax",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"EXT_blend_minmax\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_color_buffer_float",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\n    \"EXT_color_buffer_float\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.EXT_color_buffer_half_float",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_color_buffer_half_float\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.beginQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"beginQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.createQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"createQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.deleteQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"deleteQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.endQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"endQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.getQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"getQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.getQueryObjectEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"getQueryObjectEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.isQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"isQueryEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query.queryCounterEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_disjoint_timer_query\"\n  );\n  return !!instance && \"queryCounterEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query_webgl2",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\n    \"EXT_disjoint_timer_query_webgl2\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.EXT_disjoint_timer_query_webgl2.queryCounterEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\n    \"EXT_disjoint_timer_query_webgl2\"\n  );\n  return !!instance && \"queryCounterEXT\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.EXT_float_blend",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"EXT_float_blend\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.EXT_frag_depth",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"EXT_frag_depth\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_sRGB",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"EXT_sRGB\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_shader_texture_lod",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"EXT_shader_texture_lod\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.EXT_texture_compression_bptc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"EXT_texture_compression_bptc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.EXT_texture_compression_rgtc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"EXT_texture_compression_rgtc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.EXT_texture_filter_anisotropic",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"EXT_texture_filter_anisotropic\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.EXT_texture_norm16",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\"EXT_texture_norm16\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.EditContext",
      "info": {
        "code": "\"EditContext\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.EditContext",
      "info": {
        "code": "bcd.testConstructor('EditContext')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: EditContext is not defined"
    },
    {
      "name": "api.EditContext.attachedElements",
      "info": {
        "code": "\"EditContext\" in self && \"attachedElements\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.characterBounds",
      "info": {
        "code": "\"EditContext\" in self && \"characterBounds\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.characterBoundsRangeStart",
      "info": {
        "code": "\"EditContext\" in self && \"characterBoundsRangeStart\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.selectionEnd",
      "info": {
        "code": "\"EditContext\" in self && \"selectionEnd\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.selectionStart",
      "info": {
        "code": "\"EditContext\" in self && \"selectionStart\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.text",
      "info": {
        "code": "\"EditContext\" in self && \"text\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.updateCharacterBounds",
      "info": {
        "code": "\"EditContext\" in self && \"updateCharacterBounds\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.updateControlBounds",
      "info": {
        "code": "\"EditContext\" in self && \"updateControlBounds\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.updateSelection",
      "info": {
        "code": "\"EditContext\" in self && \"updateSelection\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.updateSelectionBounds",
      "info": {
        "code": "\"EditContext\" in self && \"updateSelectionBounds\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EditContext.updateText",
      "info": {
        "code": "\"EditContext\" in self && \"updateText\" in EditContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Element",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.activeViewTransition",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"activeViewTransition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.after",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"after\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return !!instance && \"animate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_composite_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"composite\", \"replace\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_id_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"id\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_iterationComposite_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"iterationComposite\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_pseudoElement_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"pseudoElement\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_rangeEnd_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"rangeEnd\", \"normal\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_rangeStart_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"rangeStart\", \"normal\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.animate.options_timeline_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.animate)) {\n    return { result: false, message: \"instance.animate is not defined\" };\n  }\n  function animate(options) {\n    instance.animate(\n      [\n        { transform: \"rotate(0) scale(1)\" },\n        { transform: \"rotate(360deg) scale(0)\" }\n      ],\n      options\n    );\n  }\n  return bcd.testOptionParam(animate, null, \"timeline\", document.timeline);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.append",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"append\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaActiveDescendantElement",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaActiveDescendantElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaAtomic",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaAtomic\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaAutoComplete",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaAutoComplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaBrailleLabel",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaBrailleLabel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaBrailleRoleDescription",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaBrailleRoleDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaBusy",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaBusy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaChecked",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaChecked\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaColCount",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaColCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaColIndex",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaColIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaColIndexText",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaColIndexText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaColSpan",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaColSpan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaControlsElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaControlsElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaCurrent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaCurrent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaDescribedByElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaDescribedByElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaDescription",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaDetailsElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaDetailsElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaDisabled",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaDisabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaErrorMessageElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaErrorMessageElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaExpanded",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaExpanded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaFlowToElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaFlowToElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaHasPopup",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaHasPopup\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaHidden",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaHidden\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaInvalid",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaInvalid\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaKeyShortcuts",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaKeyShortcuts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaLabel",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaLabel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaLabelledByElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaLabelledByElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaLevel",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaLevel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaLive",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaLive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaModal",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaModal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaMultiLine",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaMultiLine\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaMultiSelectable",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaMultiSelectable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaOrientation",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaOwnsElements",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaOwnsElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaPlaceholder",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaPlaceholder\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaPosInSet",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaPosInSet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaPressed",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaPressed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaReadOnly",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaReadOnly\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRelevant",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRelevant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRequired",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRequired\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRoleDescription",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRoleDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRowCount",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRowCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRowIndex",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRowIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRowIndexText",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRowIndexText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaRowSpan",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaRowSpan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaSelected",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaSelected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaSetSize",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaSetSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaSort",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaSort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaValueMax",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaValueMax\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaValueMin",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaValueMin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaValueNow",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaValueNow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.ariaValueText",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"ariaValueText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.assignedSlot",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"assignedSlot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.attachShadow",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"attachShadow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.attachShadow.options_clonable_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  } // Only specific elements may have shadows attached -- see\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#elements_you_can_attach_a_shadow_to\n  var el = document.createElement(\"main\");\n  return bcd.testOptionParam(el, \"attachShadow\", \"clonable\", true, {\n    mode: \"open\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.attachShadow.options_delegatesFocus_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  } // Only specific elements may have shadows attached -- see\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#elements_you_can_attach_a_shadow_to\n  var el = document.createElement(\"main\");\n  return bcd.testOptionParam(el, \"attachShadow\", \"delegatesFocus\", true, {\n    mode: \"open\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.attachShadow.options_serializable_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  } // Only specific elements may have shadows attached -- see\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element/attachShadow#elements_you_can_attach_a_shadow_to\n  var el = document.createElement(\"main\");\n  return bcd.testOptionParam(el, \"attachShadow\", \"serializable\", true, {\n    mode: \"open\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.attributes",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"attributes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.before",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"before\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"checkVisibility\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility.options_checkOpacity_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"checkVisibility\", \"checkOpacity\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility.options_checkVisibilityCSS_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(\n    instance,\n    \"checkVisibility\",\n    \"checkVisibilityCSS\",\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility.options_contentVisibilityAuto_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(\n    instance,\n    \"checkVisibility\",\n    \"contentVisibilityAuto\",\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility.options_opacityProperty_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(\n    instance,\n    \"checkVisibility\",\n    \"opacityProperty\",\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.checkVisibility.options_visibilityProperty_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(\n    instance,\n    \"checkVisibility\",\n    \"visibilityProperty\",\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.childElementCount",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"childElementCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.children",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"children\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.classList",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"classList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.className",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"className\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.clientHeight",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"clientHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.clientLeft",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"clientLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.clientTop",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"clientTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.clientWidth",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"clientWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.closest",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"closest\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.computedStyleMap",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"computedStyleMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.convertPointFromNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"convertPointFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.convertQuadFromNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"convertQuadFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.convertRectFromNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"convertRectFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.currentCSSZoom",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"currentCSSZoom\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.customElementRegistry",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"customElementRegistry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.elementTiming",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"elementTiming\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.firstElementChild",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"firstElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.focusableAreas",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"focusableAreas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAnimations",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAnimations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAttribute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAttributeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAttributeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAttributeNames",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAttributeNames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAttributeNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAttributeNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getAttributeNodeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getAttributeNodeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getBoundingClientRect",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getBoundingClientRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getBoxQuads",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getBoxQuads\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getClientRects",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getClientRects\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getElementsByClassName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getElementsByClassName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getElementsByTagName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getElementsByTagName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getElementsByTagName.all_elements_selector",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.getElementsByTagName)) {\n    return {\n      result: false,\n      message: \"instance.getElementsByTagName is not defined\"\n    };\n  }\n  instance.append(document.createElement(\"p\"));\n  return instance.getElementsByTagName(\"*\").length > 0;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getElementsByTagNameNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getElementsByTagNameNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getElementsByTagNameNS.all_elements_selector",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.getElementsByTagNameNS)) {\n    return {\n      result: false,\n      message: \"instance.getElementsByTagNameNS is not defined\"\n    };\n  }\n  instance.append(document.createElement(\"p\"));\n  return (\n    instance.getElementsByTagNameNS(\"http://www.w3.org/1999/xhtml\", \"*\")\n      .length > 0\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getHTML",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getRegionFlowRanges",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getRegionFlowRanges\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.getSpatialNavigationContainer",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"getSpatialNavigationContainer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.hasAttribute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"hasAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.hasAttributeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"hasAttributeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.hasAttributes",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"hasAttributes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.hasPointerCapture",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"hasPointerCapture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.id",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.innerHTML",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"innerHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.insertAdjacentElement",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"insertAdjacentElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.insertAdjacentHTML",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"insertAdjacentHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.insertAdjacentText",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"insertAdjacentText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.lastElementChild",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"lastElementChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.localName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"localName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.matches",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"matches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.moveBefore",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"moveBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.namespaceURI",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"namespaceURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.nextElementSibling",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"nextElementSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.outerHTML",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"outerHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.part",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"part\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.prefix",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"prefix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.prepend",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"prepend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.previousElementSibling",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"previousElementSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.pseudo",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"pseudo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.querySelector",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"querySelector\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.querySelectorAll",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"querySelectorAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.regionOverset",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"regionOverset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.releasePointerCapture",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"releasePointerCapture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.remove",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.removeAttribute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"removeAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.removeAttributeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"removeAttributeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.removeAttributeNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"removeAttributeNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.replaceChildren",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"replaceChildren\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.replaceWith",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"replaceWith\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.requestFullscreen",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"requestFullscreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.requestFullscreen.returns_promise",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  if (!(instance && instance.requestFullscreen)) {\n    return {\n      result: false,\n      message: \"instance.requestFullscreen is not defined\"\n    };\n  }\n  var value = instance.requestFullscreen();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.requestPointerLock",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"requestPointerLock\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.requestPointerLock.options_unadjustedMovement_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(\n    instance,\n    \"requestFullscreen\",\n    \"unadjustedMovement\",\n    false\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.role",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"role\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scroll",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scroll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scroll.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scroll\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scroll.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scroll\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scroll.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scroll\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollBy",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollBy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollBy.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollBy\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollBy.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollBy\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollBy.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollBy\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollHeight",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollIntoView",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollIntoView\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollIntoView.options_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollIntoView\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollIntoViewIfNeeded",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollIntoViewIfNeeded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollLeft",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollLeftMax",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollLeftMax\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTo",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTo.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollTo\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTo.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollTo\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTo.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return bcd.testOptionParam(instance, \"scrollTo\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTop",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollTopMax",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollTopMax\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.scrollWidth",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"scrollWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setAttribute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setAttributeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setAttributeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setAttributeNode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setAttributeNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setAttributeNodeNS",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setAttributeNodeNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setCapture",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setCapture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setHTML",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setHTMLUnsafe",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setHTMLUnsafe\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.setPointerCapture",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"setPointerCapture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.shadowRoot",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"shadowRoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.slot",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"slot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.spatialNavigationSearch",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"spatialNavigationSearch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.startViewTransition",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"startViewTransition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.tagName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"tagName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Element.toggleAttribute",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    instance = document.createElement(\"b\");\n  }\n  return !!instance && \"toggleAttribute\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ElementInternals",
      "info": {
        "code": "\"ElementInternals\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaActiveDescendantElement",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaActiveDescendantElement\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaAtomic",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaAtomic\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaAutoComplete",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaAutoComplete\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaBrailleLabel",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaBrailleLabel\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaBrailleRoleDescription",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaBrailleRoleDescription\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaBusy",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaBusy\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaChecked",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaChecked\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaColCount",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaColCount\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaColIndex",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaColIndex\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaColIndexText",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaColIndexText\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaColSpan",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaColSpan\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaControlsElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaControlsElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaCurrent",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaCurrent\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaDescribedByElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaDescribedByElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaDescription",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaDescription\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaDetailsElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaDetailsElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaDisabled",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaDisabled\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaErrorMessageElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaErrorMessageElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaExpanded",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaExpanded\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaFlowToElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaFlowToElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaHasPopup",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaHasPopup\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaHidden",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaHidden\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaInvalid",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaInvalid\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaKeyShortcuts",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaKeyShortcuts\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaLabel",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaLabel\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaLabelledByElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaLabelledByElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaLevel",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaLevel\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaLive",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaLive\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaModal",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaModal\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaMultiLine",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaMultiLine\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaMultiSelectable",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaMultiSelectable\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaOrientation",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaOrientation\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaOwnsElements",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaOwnsElements\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaPlaceholder",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaPlaceholder\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaPosInSet",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaPosInSet\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaPressed",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaPressed\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaReadOnly",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaReadOnly\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRelevant",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRelevant\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRequired",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRequired\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRoleDescription",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRoleDescription\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRowCount",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRowCount\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRowIndex",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRowIndex\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRowIndexText",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRowIndexText\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaRowSpan",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaRowSpan\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaSelected",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaSelected\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaSetSize",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaSetSize\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaSort",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaSort\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaValueMax",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaValueMax\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaValueMin",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaValueMin\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaValueNow",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaValueNow\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.ariaValueText",
      "info": {
        "code": "\"ElementInternals\" in self && \"ariaValueText\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.checkValidity",
      "info": {
        "code": "\"ElementInternals\" in self && \"checkValidity\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.form",
      "info": {
        "code": "\"ElementInternals\" in self && \"form\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.labels",
      "info": {
        "code": "\"ElementInternals\" in self && \"labels\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.reportValidity",
      "info": {
        "code": "\"ElementInternals\" in self && \"reportValidity\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.role",
      "info": {
        "code": "\"ElementInternals\" in self && \"role\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.setFormValue",
      "info": {
        "code": "\"ElementInternals\" in self && \"setFormValue\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.setValidity",
      "info": {
        "code": "\"ElementInternals\" in self && \"setValidity\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.shadowRoot",
      "info": {
        "code": "\"ElementInternals\" in self && \"shadowRoot\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.states",
      "info": {
        "code": "\"ElementInternals\" in self && \"states\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.validationMessage",
      "info": {
        "code": "\"ElementInternals\" in self && \"validationMessage\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.validity",
      "info": {
        "code": "\"ElementInternals\" in self && \"validity\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ElementInternals.willValidate",
      "info": {
        "code": "\"ElementInternals\" in self && \"willValidate\" in ElementInternals.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk",
      "info": {
        "code": "\"EncodedAudioChunk\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk.EncodedAudioChunk",
      "info": {
        "code": "bcd.testConstructor('EncodedAudioChunk')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: EncodedAudioChunk is not defined"
    },
    {
      "name": "api.EncodedAudioChunk.byteLength",
      "info": {
        "code": "\"EncodedAudioChunk\" in self && \"byteLength\" in EncodedAudioChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk.copyTo",
      "info": {
        "code": "\"EncodedAudioChunk\" in self && \"copyTo\" in EncodedAudioChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk.duration",
      "info": {
        "code": "\"EncodedAudioChunk\" in self && \"duration\" in EncodedAudioChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk.timestamp",
      "info": {
        "code": "\"EncodedAudioChunk\" in self && \"timestamp\" in EncodedAudioChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedAudioChunk.type",
      "info": {
        "code": "\"EncodedAudioChunk\" in self && \"type\" in EncodedAudioChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk",
      "info": {
        "code": "\"EncodedVideoChunk\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk.EncodedVideoChunk",
      "info": {
        "code": "bcd.testConstructor('EncodedVideoChunk')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: EncodedVideoChunk is not defined"
    },
    {
      "name": "api.EncodedVideoChunk.byteLength",
      "info": {
        "code": "\"EncodedVideoChunk\" in self && \"byteLength\" in EncodedVideoChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk.copyTo",
      "info": {
        "code": "\"EncodedVideoChunk\" in self && \"copyTo\" in EncodedVideoChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk.duration",
      "info": {
        "code": "\"EncodedVideoChunk\" in self && \"duration\" in EncodedVideoChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk.timestamp",
      "info": {
        "code": "\"EncodedVideoChunk\" in self && \"timestamp\" in EncodedVideoChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EncodedVideoChunk.type",
      "info": {
        "code": "\"EncodedVideoChunk\" in self && \"type\" in EncodedVideoChunk.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ErrorEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ErrorEvent.ErrorEvent",
      "info": {
        "code": "bcd.testConstructor('ErrorEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.ErrorEvent.colno",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"colno\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ErrorEvent.error",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ErrorEvent.filename",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"filename\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ErrorEvent.lineno",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"lineno\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ErrorEvent.message",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ErrorEvent(\"error\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ErrorEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.Event",
      "info": {
        "code": "bcd.testConstructor('Event')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'Event': 1 argument required, but only 0 present."
    },
    {
      "name": "api.Event.bubbles",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"bubbles\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.cancelBubble",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"cancelBubble\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.cancelable",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"cancelable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.composed",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"composed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.composedPath",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"composedPath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.currentTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"currentTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.defaultPrevented",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"defaultPrevented\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.eventPhase",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"eventPhase\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.explicitOriginalTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"explicitOriginalTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Event.initEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Event.isTrusted",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"isTrusted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.originalTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"originalTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Event.preventDefault",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"preventDefault\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.returnValue",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"returnValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.srcElement",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"srcElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.stopImmediatePropagation",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"stopImmediatePropagation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.stopPropagation",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"stopPropagation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.target",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.timeStamp",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"timeStamp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Event.type",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new Event(\"type\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"Event\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventCounts",
      "info": {
        "code": "\"EventCounts\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"EventCounts\" in self && !!(EventCounts.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.entries",
      "info": {
        "code": "\"EventCounts\" in self && \"entries\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.forEach",
      "info": {
        "code": "\"EventCounts\" in self && \"forEach\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.get",
      "info": {
        "code": "\"EventCounts\" in self && \"get\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.has",
      "info": {
        "code": "\"EventCounts\" in self && \"has\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.keys",
      "info": {
        "code": "\"EventCounts\" in self && \"keys\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.size",
      "info": {
        "code": "\"EventCounts\" in self && \"size\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventCounts.values",
      "info": {
        "code": "\"EventCounts\" in self && \"values\" in EventCounts.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EventTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.EventTarget",
      "info": {
        "code": "bcd.testConstructor('EventTarget')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.EventTarget.addEventListener",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  return !!instance && \"addEventListener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.options_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  return bcd.testOptionParam(addEventListener, null, \"capture\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.options_parameter.options_capture_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  return bcd.testOptionParam(addEventListener, null, \"capture\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.options_parameter.options_once_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  return bcd.testOptionParam(addEventListener, null, \"once\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.options_parameter.options_passive_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  return bcd.testOptionParam(addEventListener, null, \"passive\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.options_parameter.options_signal_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  if (!(\"AbortController\" in self)) {\n    return { result: false, message: \"AbortController is not defined\" };\n  }\n  var controller = new AbortController();\n  var signal = controller.signal;\n  return bcd.testOptionParam(addEventListener, null, \"signal\", signal);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.addEventListener.useCapture_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function addEventListener(options) {\n    instance.addEventListener(\"click\", function () {}, options);\n  }\n  try {\n    instance.addEventListener(\"click\", function () {});\n    return true;\n  } catch (e) {\n    if (e.name === \"TypeError\") {\n      return { result: false, message: \"useCapture parameter is required\" };\n    }\n    throw e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.dispatchEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  return !!instance && \"dispatchEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.removeEventListener",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function removeEventListener(options) {\n    function eventListener() {}\n    instance.addEventListener(\"click\", eventListener, options);\n    instance.removeEventListener(\"click\", eventListener, options);\n  }\n  return !!instance && \"removeEventListener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.removeEventListener.options_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function removeEventListener(options) {\n    function eventListener() {}\n    instance.addEventListener(\"click\", eventListener, options);\n    instance.removeEventListener(\"click\", eventListener, options);\n  }\n  return bcd.testOptionParam(removeEventListener, null, \"capture\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.removeEventListener.useCapture_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  function removeEventListener(options) {\n    function eventListener() {}\n    instance.addEventListener(\"click\", eventListener, options);\n    instance.removeEventListener(\"click\", eventListener, options);\n  }\n  try {\n    function eventListener() {}\n    instance.addEventListener(\"click\", eventListener);\n    instance.removeEventListener(\"click\", eventListener);\n    return true;\n  } catch (e) {\n    if (e.name === \"TypeError\") {\n      return { result: false, message: \"useCapture parameter is required\" };\n    }\n    throw e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.EventTarget.when",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new EventTarget();\n  } catch (e) {\n    // XXX Determine a way to get an event target in worker contexts if EventTarget() isn't a constructor\n    var el;\n    try {\n      el = document.createElementNS(\"\", \"el\");\n    } catch (e) {\n      el = document.createElement(\"b\");\n    }\n    if (!el) {\n      return { result: false, message: \"el is falsy\" };\n    }\n    instance = el;\n  }\n  return !!instance && \"when\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.External",
      "info": {
        "code": "(function () {\n  var instance = window.external;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.External.AddSearchProvider",
      "info": {
        "code": "(function () {\n  var instance = window.external;\n  return !!instance && \"AddSearchProvider\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.External.IsSearchProviderInstalled",
      "info": {
        "code": "(function () {\n  var instance = window.external;\n  return !!instance && \"IsSearchProviderInstalled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.EyeDropper",
      "info": {
        "code": "\"EyeDropper\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.EyeDropper.EyeDropper",
      "info": {
        "code": "bcd.testConstructor('EyeDropper')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: EyeDropper is not defined"
    },
    {
      "name": "api.EyeDropper.open",
      "info": {
        "code": "\"EyeDropper\" in self && \"open\" in EyeDropper.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FaceDetector",
      "info": {
        "code": "\"FaceDetector\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FaceDetector.FaceDetector",
      "info": {
        "code": "bcd.testConstructor('FaceDetector')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FaceDetector is not defined"
    },
    {
      "name": "api.FaceDetector.detect",
      "info": {
        "code": "\"FaceDetector\" in self && \"detect\" in FaceDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FeaturePolicy",
      "info": {
        "code": "(function () {\n  var instance = document.featurePolicy;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FeaturePolicy.allowedFeatures",
      "info": {
        "code": "(function () {\n  var instance = document.featurePolicy;\n  return !!instance && \"allowedFeatures\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FeaturePolicy.allowsFeature",
      "info": {
        "code": "(function () {\n  var instance = document.featurePolicy;\n  return !!instance && \"allowsFeature\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FeaturePolicy.features",
      "info": {
        "code": "(function () {\n  var instance = document.featurePolicy;\n  return !!instance && \"features\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FeaturePolicy.getAllowlistForFeature",
      "info": {
        "code": "(function () {\n  var instance = document.featurePolicy;\n  return !!instance && \"getAllowlistForFeature\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FederatedCredential",
      "info": {
        "code": "\"FederatedCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FederatedCredential.FederatedCredential",
      "info": {
        "code": "bcd.testConstructor('FederatedCredential')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FederatedCredential is not defined"
    },
    {
      "name": "api.FederatedCredential.iconURL",
      "info": {
        "code": "\"FederatedCredential\" in self && \"iconURL\" in FederatedCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FederatedCredential.name",
      "info": {
        "code": "\"FederatedCredential\" in self && \"name\" in FederatedCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FederatedCredential.protocol",
      "info": {
        "code": "\"FederatedCredential\" in self && \"protocol\" in FederatedCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FederatedCredential.provider",
      "info": {
        "code": "\"FederatedCredential\" in self && \"provider\" in FederatedCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence",
      "info": {
        "code": "\"Fence\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence.disableUntrustedNetwork",
      "info": {
        "code": "\"Fence\" in self && \"disableUntrustedNetwork\" in Fence.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence.getNestedConfigs",
      "info": {
        "code": "\"Fence\" in self && \"getNestedConfigs\" in Fence.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence.notifyEvent",
      "info": {
        "code": "\"Fence\" in self && \"notifyEvent\" in Fence.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence.reportEvent",
      "info": {
        "code": "\"Fence\" in self && \"reportEvent\" in Fence.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Fence.setReportEventDataForAutomaticBeacons",
      "info": {
        "code": "\"Fence\" in self && \"setReportEventDataForAutomaticBeacons\" in Fence.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FencedFrameConfig",
      "info": {
        "code": "\"FencedFrameConfig\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FencedFrameConfig.FencedFrameConfig",
      "info": {
        "code": "bcd.testConstructor('FencedFrameConfig')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FencedFrameConfig is not defined"
    },
    {
      "name": "api.FencedFrameConfig.setSharedStorageContext",
      "info": {
        "code": "\"FencedFrameConfig\" in self && \"setSharedStorageContext\" in FencedFrameConfig.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FetchLaterResult",
      "info": {
        "code": "\"FetchLaterResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FetchLaterResult.activated",
      "info": {
        "code": "\"FetchLaterResult\" in self && \"activated\" in FetchLaterResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.File",
      "info": {
        "code": "\"File\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.File.File",
      "info": {
        "code": "bcd.testConstructor('File')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: File is not defined"
    },
    {
      "name": "api.File.lastModified",
      "info": {
        "code": "\"File\" in self && \"lastModified\" in File.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.File.lastModifiedDate",
      "info": {
        "code": "\"File\" in self && \"lastModifiedDate\" in File.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.File.name",
      "info": {
        "code": "\"File\" in self && \"name\" in File.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.File.webkitRelativePath",
      "info": {
        "code": "\"File\" in self && \"webkitRelativePath\" in File.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileList",
      "info": {
        "code": "\"FileList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileList.item",
      "info": {
        "code": "\"FileList\" in self && \"item\" in FileList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileList.length",
      "info": {
        "code": "\"FileList\" in self && \"length\" in FileList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileReader",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.FileReader",
      "info": {
        "code": "bcd.testConstructor('FileReader')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.abort",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"abort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.error",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.readAsArrayBuffer",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"readAsArrayBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.readAsBinaryString",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"readAsBinaryString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.readAsDataURL",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"readAsDataURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.readAsText",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"readAsText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.readyState",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileReader.result",
      "info": {
        "code": "(function () {\n  var instance = new FileReader();\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: FileReader is not defined"
    },
    {
      "name": "api.FileSystem",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      callback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystem.name",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      callback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance && \"name\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystem.root",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      callback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance && \"root\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryEntry",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryEntry.createReader",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"createReader\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryEntry.getDirectory",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"getDirectory\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryEntry.getFile",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"getFile\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryEntry.removeRecursively",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"removeRecursively\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryHandle",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.@@asyncIterator",
      "info": {
        "code": "\"Symbol\" in self && \"asyncIterator\" in Symbol && \"FileSystemDirectoryHandle\" in self && !!(FileSystemDirectoryHandle.prototype[Symbol.asyncIterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.entries",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"entries\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.getDirectoryHandle",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"getDirectoryHandle\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.getFileHandle",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"getFileHandle\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.keys",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"keys\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.removeEntry",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"removeEntry\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.resolve",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"resolve\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryHandle.values",
      "info": {
        "code": "\"FileSystemDirectoryHandle\" in self && \"values\" in FileSystemDirectoryHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemDirectoryReader",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    dirCallback(fs.root);\n  }\n  function dirCallback(dir) {\n    callback(dir.createReader());\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemDirectoryReader.readEntries",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    dirCallback(fs.root);\n  }\n  function dirCallback(dir) {\n    callback(dir.createReader());\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"readEntries\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.copyTo",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"copyTo\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.filesystem",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"filesystem\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.fullPath",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"fullPath\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.getMetadata",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"getMetadata\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.getParent",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"getParent\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.isDirectory",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"isDirectory\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.isFile",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"isFile\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.moveTo",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"moveTo\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.name",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"name\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.remove",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"remove\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemEntry.toURL",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    callback(fs.root);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"toURL\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemFileEntry",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fs.root.getFile(\n      \"foo.txt\",\n      { create: true },\n      function (file) {\n        callback(file);\n      },\n      function (event) {\n        fail(event.message);\n      }\n    );\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemFileEntry.createWriter",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fs.root.getFile(\n      \"foo.txt\",\n      { create: true },\n      function (file) {\n        callback(file);\n      },\n      function (event) {\n        fail(event.message);\n      }\n    );\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"createWriter\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemFileEntry.file",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fs.root.getFile(\n      \"foo.txt\",\n      { create: true },\n      function (file) {\n        callback(file);\n      },\n      function (event) {\n        fail(event.message);\n      }\n    );\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"file\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.FileSystemFileHandle",
      "info": {
        "code": "\"FileSystemFileHandle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemFileHandle.createSyncAccessHandle",
      "info": {
        "code": "\"FileSystemFileHandle\" in self && \"createSyncAccessHandle\" in FileSystemFileHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemFileHandle.createWritable",
      "info": {
        "code": "\"FileSystemFileHandle\" in self && \"createWritable\" in FileSystemFileHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemFileHandle.getFile",
      "info": {
        "code": "\"FileSystemFileHandle\" in self && \"getFile\" in FileSystemFileHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle",
      "info": {
        "code": "\"FileSystemHandle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.isSameEntry",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"isSameEntry\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.kind",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"kind\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.move",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"move\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.name",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"name\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.queryPermission",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"queryPermission\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.remove",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"remove\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemHandle.requestPermission",
      "info": {
        "code": "\"FileSystemHandle\" in self && \"requestPermission\" in FileSystemHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemObserver",
      "info": {
        "code": "\"FileSystemObserver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemObserver.FileSystemObserver",
      "info": {
        "code": "bcd.testConstructor('FileSystemObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FileSystemObserver is not defined"
    },
    {
      "name": "api.FileSystemObserver.disconnect",
      "info": {
        "code": "\"FileSystemObserver\" in self && \"disconnect\" in FileSystemObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemObserver.observe",
      "info": {
        "code": "\"FileSystemObserver\" in self && \"observe\" in FileSystemObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemObserver.unobserve",
      "info": {
        "code": "\"FileSystemObserver\" in self && \"unobserve\" in FileSystemObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemWritableFileStream",
      "info": {
        "code": "\"FileSystemWritableFileStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemWritableFileStream.seek",
      "info": {
        "code": "\"FileSystemWritableFileStream\" in self && \"seek\" in FileSystemWritableFileStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemWritableFileStream.truncate",
      "info": {
        "code": "\"FileSystemWritableFileStream\" in self && \"truncate\" in FileSystemWritableFileStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FileSystemWritableFileStream.write",
      "info": {
        "code": "\"FileSystemWritableFileStream\" in self && \"write\" in FileSystemWritableFileStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FocusEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new FocusEvent(\"focus\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"FocusEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.FocusEvent.FocusEvent",
      "info": {
        "code": "bcd.testConstructor('FocusEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FocusEvent is not defined"
    },
    {
      "name": "api.FocusEvent.relatedTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new FocusEvent(\"focus\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"FocusEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"relatedTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Font",
      "info": {
        "code": "\"Font\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Font.glyphsRendered",
      "info": {
        "code": "\"Font\" in self && \"glyphsRendered\" in Font.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Font.name",
      "info": {
        "code": "\"Font\" in self && \"name\" in Font.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData",
      "info": {
        "code": "\"FontData\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData.blob",
      "info": {
        "code": "\"FontData\" in self && \"blob\" in FontData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData.family",
      "info": {
        "code": "\"FontData\" in self && \"family\" in FontData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData.fullName",
      "info": {
        "code": "\"FontData\" in self && \"fullName\" in FontData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData.postscriptName",
      "info": {
        "code": "\"FontData\" in self && \"postscriptName\" in FontData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontData.style",
      "info": {
        "code": "\"FontData\" in self && \"style\" in FontData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFace",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.FontFace",
      "info": {
        "code": "bcd.testConstructor('FontFace')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FontFace is not defined"
    },
    {
      "name": "api.FontFace.ascentOverride",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"ascentOverride\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.descentOverride",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"descentOverride\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.display",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"display\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.family",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"family\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.featureSettings",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"featureSettings\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.features",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"features\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.lineGapOverride",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"lineGapOverride\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.load",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"load\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.loaded",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"loaded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.palettes",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"palettes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.status",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"status\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.stretch",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"stretch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.style",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.unicodeRange",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"unicodeRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.variant",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"variant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.variationSettings",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"variationSettings\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.variations",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"variations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFace.weight",
      "info": {
        "code": "(function () {\n  if (!(\"FontFace\" in self)) {\n    return { result: false, message: \"FontFace is not defined\" };\n  }\n  var instance = new FontFace(\n    \"Material Design Icons\",\n    \"url(/fonts/materialdesignicons-webfont.woff)\",\n    {}\n  );\n  return !!instance && \"weight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFace is not defined"
    },
    {
      "name": "api.FontFaceFeatures",
      "info": {
        "code": "\"FontFaceFeatures\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette",
      "info": {
        "code": "\"FontFacePalette\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"FontFacePalette\" in self && !!(FontFacePalette.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.entries",
      "info": {
        "code": "\"FontFacePalette\" in self && \"entries\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.forEach",
      "info": {
        "code": "\"FontFacePalette\" in self && \"forEach\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.keys",
      "info": {
        "code": "\"FontFacePalette\" in self && \"keys\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.length",
      "info": {
        "code": "\"FontFacePalette\" in self && \"length\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.usableWithDarkBackground",
      "info": {
        "code": "\"FontFacePalette\" in self && \"usableWithDarkBackground\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.usableWithLightBackground",
      "info": {
        "code": "\"FontFacePalette\" in self && \"usableWithLightBackground\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalette.values",
      "info": {
        "code": "\"FontFacePalette\" in self && \"values\" in FontFacePalette.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes",
      "info": {
        "code": "\"FontFacePalettes\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"FontFacePalettes\" in self && !!(FontFacePalettes.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.entries",
      "info": {
        "code": "\"FontFacePalettes\" in self && \"entries\" in FontFacePalettes.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.forEach",
      "info": {
        "code": "\"FontFacePalettes\" in self && \"forEach\" in FontFacePalettes.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.keys",
      "info": {
        "code": "\"FontFacePalettes\" in self && \"keys\" in FontFacePalettes.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.length",
      "info": {
        "code": "\"FontFacePalettes\" in self && \"length\" in FontFacePalettes.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFacePalettes.values",
      "info": {
        "code": "\"FontFacePalettes\" in self && \"values\" in FontFacePalettes.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.@@iterator",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.FontFaceSet",
      "info": {
        "code": "bcd.testConstructor('FontFaceSet')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FontFaceSet is not defined"
    },
    {
      "name": "api.FontFaceSet.add",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"add\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.check",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"check\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.clear",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.delete",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.entries",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.forEach",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.has",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.keys",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.load",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"load\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.ready",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"ready\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.size",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.status",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"status\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSet.values",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"document\" in self) {\n    instance = document.fonts;\n  } else {\n    instance = self.fonts;\n  }\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceSetLoadEvent",
      "info": {
        "code": "(function () {\n  if (!(\"FontFaceSetLoadEvent\" in self)) {\n    return { result: false, message: \"FontFaceSetLoadEvent is not defined\" };\n  }\n  var instance = new FontFaceSetLoadEvent(\"loading\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFaceSetLoadEvent is not defined"
    },
    {
      "name": "api.FontFaceSetLoadEvent.FontFaceSetLoadEvent",
      "info": {
        "code": "bcd.testConstructor('FontFaceSetLoadEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FontFaceSetLoadEvent is not defined"
    },
    {
      "name": "api.FontFaceSetLoadEvent.fontfaces",
      "info": {
        "code": "(function () {\n  if (!(\"FontFaceSetLoadEvent\" in self)) {\n    return { result: false, message: \"FontFaceSetLoadEvent is not defined\" };\n  }\n  var instance = new FontFaceSetLoadEvent(\"loading\");\n  return !!instance && \"fontfaces\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "FontFaceSetLoadEvent is not defined"
    },
    {
      "name": "api.FontFaceVariationAxis",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariationAxis.axisTag",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self && \"axisTag\" in FontFaceVariationAxis.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariationAxis.defaultValue",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self && \"defaultValue\" in FontFaceVariationAxis.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariationAxis.maximumValue",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self && \"maximumValue\" in FontFaceVariationAxis.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariationAxis.minimumValue",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self && \"minimumValue\" in FontFaceVariationAxis.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariationAxis.name",
      "info": {
        "code": "\"FontFaceVariationAxis\" in self && \"name\" in FontFaceVariationAxis.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations",
      "info": {
        "code": "\"FontFaceVariations\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"FontFaceVariations\" in self && !!(FontFaceVariations.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.entries",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"entries\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.forEach",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"forEach\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.has",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"has\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.keys",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"keys\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.size",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"size\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontFaceVariations.values",
      "info": {
        "code": "\"FontFaceVariations\" in self && \"values\" in FontFaceVariations.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics",
      "info": {
        "code": "\"FontMetrics\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.advances",
      "info": {
        "code": "\"FontMetrics\" in self && \"advances\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.baselines",
      "info": {
        "code": "\"FontMetrics\" in self && \"baselines\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.boundingBoxAscent",
      "info": {
        "code": "\"FontMetrics\" in self && \"boundingBoxAscent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.boundingBoxDescent",
      "info": {
        "code": "\"FontMetrics\" in self && \"boundingBoxDescent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.boundingBoxLeft",
      "info": {
        "code": "\"FontMetrics\" in self && \"boundingBoxLeft\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.boundingBoxRight",
      "info": {
        "code": "\"FontMetrics\" in self && \"boundingBoxRight\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.dominantBaseline",
      "info": {
        "code": "\"FontMetrics\" in self && \"dominantBaseline\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.emHeightAscent",
      "info": {
        "code": "\"FontMetrics\" in self && \"emHeightAscent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.emHeightDescent",
      "info": {
        "code": "\"FontMetrics\" in self && \"emHeightDescent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.fontBoundingBoxAscent",
      "info": {
        "code": "\"FontMetrics\" in self && \"fontBoundingBoxAscent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.fontBoundingBoxDescent",
      "info": {
        "code": "\"FontMetrics\" in self && \"fontBoundingBoxDescent\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.fonts",
      "info": {
        "code": "\"FontMetrics\" in self && \"fonts\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.height",
      "info": {
        "code": "\"FontMetrics\" in self && \"height\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FontMetrics.width",
      "info": {
        "code": "\"FontMetrics\" in self && \"width\" in FontMetrics.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FormData",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.@@iterator",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.FormData",
      "info": {
        "code": "bcd.testConstructor('FormData')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.FormData.FormData.submitter",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  if (!(\"document\" in self)) {\n    return {\n      result: null,\n      message: \"Testing in workers is not yet implemented\"\n    };\n  }\n  var form = document.createElement(\"form\");\n  var btn = document.createElement(\"button\");\n  form.appendChild(btn);\n\n  function create(submitter) {\n    new FormData(form, submitter);\n  }\n\n  return bcd.testOptionParam(create, null, null, btn);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing in workers is not yet implemented"
    },
    {
      "name": "api.FormData.append",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"append\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.append.filename_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  var blob;\n  try {\n    blob = new Blob();\n  } catch (e) {\n    blob = new BlobBuilder();\n  }\n  if (!blob) {\n    return { result: false, message: \"blob is falsy\" };\n  }\n\n  if (!(\"get\" in instance)) {\n    return {\n      result: null,\n      message: \"This test has not yet been adapted for older browsers\"\n    };\n  }\n\n  instance.append(\"foo\", blob, \"bar.txt\");\n  var file = instance.get(\"foo\");\n  return file.name === \"bar.txt\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.delete",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.entries",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.forEach",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.get",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.getAll",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"getAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.has",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.keys",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.set",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"set\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormData.values",
      "info": {
        "code": "(function () {\n  if (!(\"FormData\" in self)) {\n    return { result: false, message: \"FormData is not defined\" };\n  }\n  var instance = new FormData();\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.FormDataEvent",
      "info": {
        "code": "\"FormDataEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FormDataEvent.FormDataEvent",
      "info": {
        "code": "bcd.testConstructor('FormDataEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: FormDataEvent is not defined"
    },
    {
      "name": "api.FormDataEvent.formData",
      "info": {
        "code": "\"FormDataEvent\" in self && \"formData\" in FormDataEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.FragmentDirective",
      "info": {
        "code": "\"FragmentDirective\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPU",
      "info": {
        "code": "(function () {\n  var instance = navigator.gpu;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPU.getPreferredCanvasFormat",
      "info": {
        "code": "(function () {\n  var instance = navigator.gpu;\n  return !!instance && \"getPreferredCanvasFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPU.requestAdapter",
      "info": {
        "code": "(function () {\n  var instance = navigator.gpu;\n  return !!instance && \"requestAdapter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPU.wgslLanguageFeatures",
      "info": {
        "code": "(function () {\n  var instance = navigator.gpu;\n  return !!instance && \"wgslLanguageFeatures\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.features",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"features\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.info",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"info\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.isFallbackAdapter",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"isFallbackAdapter\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.limits",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"limits\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.requestAdapterInfo",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"requestAdapterInfo\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.requestDevice",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"requestDevice\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapter.requestDevice.lost_device_on_duplicate",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var promise = gpu.requestAdapter();\n  return promise.then(function (adapter) {\n    return adapter.requestDevice().then(function (device1) {\n      bcd.addCleanup(function () {\n        device1.destroy();\n      });\n\n      return adapter.requestDevice().then(function (device2) {\n        bcd.addCleanup(function () {\n          device2.destroy();\n        });\n\n        return new Promise(function (resolve) {\n          var resolved = false;\n\n          // The GPUDevice.lost promise will only resolve when the device is lost\n          setTimeout(function () {\n            if (!resolved) {\n              resolve({\n                result: false,\n                message: \"GPUDevice.lost did not immediately resolve\"\n              });\n            }\n            resolved = true;\n          }, 1000);\n\n          device2.lost.then(function (info) {\n            if (!resolved) {\n              resolve({ result: true, message: info.message });\n            }\n            resolved = true;\n          });\n        });\n      });\n    });\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUAdapterInfo",
      "info": {
        "code": "\"GPUAdapterInfo\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.architecture",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"architecture\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.description",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"description\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.device",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"device\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.isFallbackAdapter",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"isFallbackAdapter\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.subgroupMaxSize",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"subgroupMaxSize\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.subgroupMinSize",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"subgroupMinSize\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUAdapterInfo.vendor",
      "info": {
        "code": "\"GPUAdapterInfo\" in self && \"vendor\" in GPUAdapterInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUBindGroup",
      "info": {
        "code": "\"GPUBindGroup\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUBindGroup.label",
      "info": {
        "code": "\"GPUBindGroup\" in self && \"label\" in GPUBindGroup.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUBindGroupLayout",
      "info": {
        "code": "\"GPUBindGroupLayout\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUBindGroupLayout.label",
      "info": {
        "code": "\"GPUBindGroupLayout\" in self && \"label\" in GPUBindGroupLayout.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.destroy",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"destroy\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.getMappedRange",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"getMappedRange\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.mapAsync",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"mapAsync\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.mapState",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"mapState\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.size",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"size\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.unmap",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"unmap\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUBuffer.usage",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUBufferUsage\" in self)) {\n    return { result: false, message: \"GPUBufferUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createBuffer({\n      size: 1000,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"usage\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCanvasContext",
      "info": {
        "code": "\"GPUCanvasContext\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCanvasContext.canvas",
      "info": {
        "code": "\"GPUCanvasContext\" in self && \"canvas\" in GPUCanvasContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCanvasContext.configure",
      "info": {
        "code": "\"GPUCanvasContext\" in self && \"configure\" in GPUCanvasContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCanvasContext.getConfiguration",
      "info": {
        "code": "\"GPUCanvasContext\" in self && \"getConfiguration\" in GPUCanvasContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCanvasContext.getCurrentTexture",
      "info": {
        "code": "\"GPUCanvasContext\" in self && \"getCurrentTexture\" in GPUCanvasContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCanvasContext.unconfigure",
      "info": {
        "code": "\"GPUCanvasContext\" in self && \"unconfigure\" in GPUCanvasContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCommandBuffer",
      "info": {
        "code": "\"GPUCommandBuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCommandBuffer.label",
      "info": {
        "code": "\"GPUCommandBuffer\" in self && \"label\" in GPUCommandBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCommandEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.beginComputePass",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"beginComputePass\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.beginRenderPass",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"beginRenderPass\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.clearBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"clearBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.copyBufferToBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"copyBufferToBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.copyBufferToTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"copyBufferToTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.copyTextureToBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"copyTextureToBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.copyTextureToTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"copyTextureToTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.finish",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"finish\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.insertDebugMarker",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"insertDebugMarker\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.popDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"popDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.pushDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"pushDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.resolveQuerySet",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"resolveQuerySet\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCommandEncoder.writeTimestamp",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"writeTimestamp\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUCompilationInfo",
      "info": {
        "code": "\"GPUCompilationInfo\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationInfo.messages",
      "info": {
        "code": "\"GPUCompilationInfo\" in self && \"messages\" in GPUCompilationInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage",
      "info": {
        "code": "\"GPUCompilationMessage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.length",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"length\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.lineNum",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"lineNum\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.linePos",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"linePos\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.message",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"message\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.offset",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"offset\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUCompilationMessage.type",
      "info": {
        "code": "\"GPUCompilationMessage\" in self && \"type\" in GPUCompilationMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUComputePassEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.dispatchWorkgroups",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"dispatchWorkgroups\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.dispatchWorkgroupsIndirect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"dispatchWorkgroupsIndirect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.end",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"end\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.insertDebugMarker",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"insertDebugMarker\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.popDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"popDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.pushDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"pushDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.setBindGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setBindGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.setPipeline",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setPipeline\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePassEncoder.writeTimestamp",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    var computePass = ce.beginComputePass();\n    bcd.addCleanup(function () {\n      computePass.end();\n    });\n    return computePass;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"writeTimestamp\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUComputePipeline",
      "info": {
        "code": "\"GPUComputePipeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUComputePipeline.getBindGroupLayout",
      "info": {
        "code": "\"GPUComputePipeline\" in self && \"getBindGroupLayout\" in GPUComputePipeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUComputePipeline.label",
      "info": {
        "code": "\"GPUComputePipeline\" in self && \"label\" in GPUComputePipeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUDevice",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.adapterInfo",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"adapterInfo\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createBindGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createBindGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createBindGroupLayout",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createBindGroupLayout\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createCommandEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createCommandEncoder\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createComputePipeline",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createComputePipeline\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createComputePipelineAsync",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createComputePipelineAsync\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createPipelineLayout",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createPipelineLayout\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createQuerySet",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createQuerySet\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createRenderBundleEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createRenderBundleEncoder\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createRenderPipeline",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createRenderPipeline\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createRenderPipelineAsync",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createRenderPipelineAsync\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createSampler",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createSampler\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createShaderModule",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createShaderModule\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.createTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.destroy",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"destroy\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.features",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"features\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.importExternalTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"importExternalTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.importExternalTexture.videoframe_source",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!(\"document\" in self)) {\n    // XXX Implement worker test\n    return {\n      result: null,\n      message: \"Testing in workers is not yet implemented\"\n    };\n  }\n\n  return promise.then(function (instance) {\n    if (!(\"importExternalTexture\" in instance)) {\n      return {\n        result: false,\n        message: \"GPUDevice.importExternalTexture is not defined\"\n      };\n    }\n\n    if (!(\"VideoFrame\" in self)) {\n      return { result: false, message: \"VideoFrame is not defined\" };\n    }\n\n    var img = document.getElementById(\"resource-image-black\");\n    var videoFrame = new VideoFrame(img, { timestamp: 0 });\n    bcd.addCleanup(function () {\n      videoFrame.close();\n    });\n\n    try {\n      instance.importExternalTexture({ source: videoFrame });\n      return true;\n    } catch (e) {\n      return { result: false, message: e.message };\n    }\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.limits",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"limits\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.lost",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"lost\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.popErrorScope",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"popErrorScope\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.pushErrorScope",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"pushErrorScope\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDevice.queue",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var promise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"queue\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUDeviceLostInfo",
      "info": {
        "code": "\"GPUDeviceLostInfo\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUDeviceLostInfo.message",
      "info": {
        "code": "\"GPUDeviceLostInfo\" in self && \"message\" in GPUDeviceLostInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUDeviceLostInfo.reason",
      "info": {
        "code": "\"GPUDeviceLostInfo\" in self && \"reason\" in GPUDeviceLostInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUError",
      "info": {
        "code": "\"GPUError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUError.message",
      "info": {
        "code": "\"GPUError\" in self && \"message\" in GPUError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUExternalTexture",
      "info": {
        "code": "\"GPUExternalTexture\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUExternalTexture.label",
      "info": {
        "code": "\"GPUExternalTexture\" in self && \"label\" in GPUExternalTexture.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUInternalError",
      "info": {
        "code": "\"GPUInternalError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUInternalError.GPUInternalError",
      "info": {
        "code": "bcd.testConstructor('GPUInternalError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GPUInternalError is not defined"
    },
    {
      "name": "api.GPUOutOfMemoryError",
      "info": {
        "code": "\"GPUOutOfMemoryError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUOutOfMemoryError.GPUOutOfMemoryError",
      "info": {
        "code": "bcd.testConstructor('GPUOutOfMemoryError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GPUOutOfMemoryError is not defined"
    },
    {
      "name": "api.GPUPipelineError",
      "info": {
        "code": "\"GPUPipelineError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUPipelineError.GPUPipelineError",
      "info": {
        "code": "bcd.testConstructor('GPUPipelineError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GPUPipelineError is not defined"
    },
    {
      "name": "api.GPUPipelineError.GPUPipelineError.message_optional",
      "info": {
        "code": "(function () {\n  try {\n    new GPUPipelineError(undefined, { reason: \"internal\" });\n    return { result: true, message: \"Constructor passed with no errors\" };\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "GPUPipelineError is not defined"
    },
    {
      "name": "api.GPUPipelineError.reason",
      "info": {
        "code": "\"GPUPipelineError\" in self && \"reason\" in GPUPipelineError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUPipelineLayout",
      "info": {
        "code": "\"GPUPipelineLayout\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUPipelineLayout.label",
      "info": {
        "code": "\"GPUPipelineLayout\" in self && \"label\" in GPUPipelineLayout.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQuerySet",
      "info": {
        "code": "\"GPUQuerySet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQuerySet.count",
      "info": {
        "code": "\"GPUQuerySet\" in self && \"count\" in GPUQuerySet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQuerySet.destroy",
      "info": {
        "code": "\"GPUQuerySet\" in self && \"destroy\" in GPUQuerySet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQuerySet.label",
      "info": {
        "code": "\"GPUQuerySet\" in self && \"label\" in GPUQuerySet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQuerySet.type",
      "info": {
        "code": "\"GPUQuerySet\" in self && \"type\" in GPUQuerySet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUQueue",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.copyExternalImageToTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"copyExternalImageToTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.copyExternalImageToTexture.videoframe_source",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!(\"document\" in self)) {\n    // XXX Implement worker test\n    return {\n      result: null,\n      message: \"Testing in workers is not yet implemented\"\n    };\n  }\n\n  return promise.then(function (instance) {\n    if (!(\"copyExternalImageToTexture\" in instance)) {\n      return {\n        result: false,\n        message: \"GPUQueue.copyExternalImageToTexture is not defined\"\n      };\n    }\n\n    // Create video frame\n    if (!(\"VideoFrame\" in self)) {\n      return { result: false, message: \"VideoFrame is not defined\" };\n    }\n    var img = document.getElementById(\"resource-image-black\");\n    var videoFrame = new VideoFrame(img, { timestamp: 0 });\n    bcd.addCleanup(function () {\n      videoFrame.close();\n    });\n\n    // Create destination texture\n    var cubeTexture = device.createTexture({\n      size: [videoFrame.displayWidth, videoFrame.displayHeight, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n\n    try {\n      instance.copyExternalImageToTexture(\n        { source: videoFrame },\n        { texture: cubeTexture },\n        [videoFrame.displayWidth, videoFrame.displayHeight]\n      );\n      return true;\n    } catch (e) {\n      return { result: false, message: e.message };\n    }\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.onSubmittedWorkDone",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"onSubmittedWorkDone\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.submit",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"submit\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.writeBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"writeBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUQueue.writeTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.queue;\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"writeTexture\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundle",
      "info": {
        "code": "\"GPURenderBundle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPURenderBundle.label",
      "info": {
        "code": "\"GPURenderBundle\" in self && \"label\" in GPURenderBundle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPURenderBundleEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.draw",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"draw\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.drawIndexed",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndexed\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.drawIndexedIndirect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndexedIndirect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.drawIndirect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndirect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.finish",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"finish\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.insertDebugMarker",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"insertDebugMarker\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.popDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"popDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.pushDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"pushDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.setBindGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setBindGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.setIndexBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setIndexBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.setPipeline",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setPipeline\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.setVertexBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setVertexBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var promise = devicePromise.then(function (d) {\n    device = d;\n    return d.createRenderBundleEncoder({\n      colorFormats: [\"depth16unorm\"]\n    });\n  });\n  return promise.then(function (passEncoder) {\n    var vec4Size = 4 * Float32Array.BYTES_PER_ELEMENT;\n    var vertexBuffer = device.createBuffer({\n      size: 2 * 3 * vec4Size,\n      usage: GPUBufferUsage.VERTEX,\n      mappedAtCreation: true\n    });\n\n    passEncoder.setVertexBuffer(0, vertexBuffer);\n\n    try {\n      passEncoder.setVertexBuffer(0, null);\n      return true;\n    } catch (e) {\n      return { result: false, message: e.message };\n    }\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.beginOcclusionQuery",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"beginOcclusionQuery\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.draw",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"draw\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.drawIndexed",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndexed\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.drawIndexedIndirect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndexedIndirect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.drawIndirect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"drawIndirect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.end",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"end\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.endOcclusionQuery",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"endOcclusionQuery\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.executeBundles",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"executeBundles\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.insertDebugMarker",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"insertDebugMarker\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.popDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"popDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.pushDebugGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"pushDebugGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setBindGroup",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setBindGroup\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setBlendConstant",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setBlendConstant\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setIndexBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setIndexBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setPipeline",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setPipeline\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setScissorRect",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setScissorRect\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setStencilReference",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setStencilReference\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setVertexBuffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setVertexBuffer\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  return promise.then(function (passEncoder) {\n    var vec4Size = 4 * Float32Array.BYTES_PER_ELEMENT;\n    var vertexBuffer = device.createBuffer({\n      size: 2 * 3 * vec4Size,\n      usage: GPUBufferUsage.VERTEX,\n      mappedAtCreation: true\n    });\n\n    passEncoder.setVertexBuffer(0, vertexBuffer);\n\n    try {\n      passEncoder.setVertexBuffer(0, null);\n      return true;\n    } catch (e) {\n      return { result: false, message: e.message };\n    }\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.setViewport",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"setViewport\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPassEncoder.writeTimestamp",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var devicePromise = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!devicePromise) {\n    return { result: false, message: \"devicePromise is falsy\" };\n  }\n  var device;\n  var commandEncoder = devicePromise.then(function (d) {\n    device = d;\n    return d.createCommandEncoder();\n  });\n  if (!commandEncoder) {\n    return { result: false, message: \"commandEncoder is falsy\" };\n  }\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var texture = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!texture) {\n    return { result: false, message: \"texture is falsy\" };\n  }\n  var promise = commandEncoder.then(function (ce) {\n    return texture.then(function (txtr) {\n      var renderPassDescriptor = {\n        colorAttachments: [\n          {\n            clearValue: [0.0, 0.5, 1.0, 1.0],\n            loadOp: \"clear\",\n            storeOp: \"store\",\n            view: txtr.createView()\n          }\n        ]\n      };\n      var renderPass = ce.beginRenderPass(renderPassDescriptor);\n      bcd.addCleanup(function () {\n        renderPass.end();\n      });\n      return renderPass;\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"writeTimestamp\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPURenderPipeline",
      "info": {
        "code": "\"GPURenderPipeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPURenderPipeline.getBindGroupLayout",
      "info": {
        "code": "\"GPURenderPipeline\" in self && \"getBindGroupLayout\" in GPURenderPipeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPURenderPipeline.label",
      "info": {
        "code": "\"GPURenderPipeline\" in self && \"label\" in GPURenderPipeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSampler",
      "info": {
        "code": "\"GPUSampler\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSampler.label",
      "info": {
        "code": "\"GPUSampler\" in self && \"label\" in GPUSampler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUShaderModule",
      "info": {
        "code": "\"GPUShaderModule\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUShaderModule.getCompilationInfo",
      "info": {
        "code": "\"GPUShaderModule\" in self && \"getCompilationInfo\" in GPUShaderModule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUShaderModule.label",
      "info": {
        "code": "\"GPUShaderModule\" in self && \"label\" in GPUShaderModule.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"GPUSupportedFeatures\" in self && !!(GPUSupportedFeatures.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.entries",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"entries\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.forEach",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"forEach\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.has",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"has\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.keys",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"keys\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.size",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"size\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedFeatures.values",
      "info": {
        "code": "\"GPUSupportedFeatures\" in self && \"values\" in GPUSupportedFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits",
      "info": {
        "code": "\"GPUSupportedLimits\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxBindGroups",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxBindGroups\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxBindGroupsPlusVertexBuffers\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxBindingsPerBindGroup",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxBindingsPerBindGroup\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxBufferSize",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxBufferSize\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxColorAttachmentBytesPerSample",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxColorAttachmentBytesPerSample\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxColorAttachments",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxColorAttachments\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeInvocationsPerWorkgroup",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeInvocationsPerWorkgroup\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeWorkgroupSizeX",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeWorkgroupSizeX\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeWorkgroupSizeY",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeWorkgroupSizeY\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeWorkgroupSizeZ",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeWorkgroupSizeZ\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeWorkgroupStorageSize",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeWorkgroupStorageSize\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxComputeWorkgroupsPerDimension",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxComputeWorkgroupsPerDimension\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxDynamicStorageBuffersPerPipelineLayout",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxDynamicStorageBuffersPerPipelineLayout\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxDynamicUniformBuffersPerPipelineLayout",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxDynamicUniformBuffersPerPipelineLayout\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxInterStageShaderComponents",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxInterStageShaderComponents\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxInterStageShaderVariables",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxInterStageShaderVariables\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxSampledTexturesPerShaderStage",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxSampledTexturesPerShaderStage\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxSamplersPerShaderStage",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxSamplersPerShaderStage\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxStorageBufferBindingSize",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxStorageBufferBindingSize\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxStorageBuffersPerShaderStage",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxStorageBuffersPerShaderStage\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxStorageTexturesPerShaderStage",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxStorageTexturesPerShaderStage\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxTextureArrayLayers",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxTextureArrayLayers\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxTextureDimension1D",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxTextureDimension1D\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxTextureDimension2D",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxTextureDimension2D\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxTextureDimension3D",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxTextureDimension3D\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxUniformBufferBindingSize",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxUniformBufferBindingSize\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxUniformBuffersPerShaderStage",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxUniformBuffersPerShaderStage\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxVertexAttributes",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxVertexAttributes\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxVertexBufferArrayStride",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxVertexBufferArrayStride\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.maxVertexBuffers",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"maxVertexBuffers\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.minStorageBufferOffsetAlignment",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"minStorageBufferOffsetAlignment\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUSupportedLimits.minUniformBufferOffsetAlignment",
      "info": {
        "code": "\"GPUSupportedLimits\" in self && \"minUniformBufferOffsetAlignment\" in GPUSupportedLimits.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUTexture",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.createView",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"createView\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.depthOrArrayLayers",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"depthOrArrayLayers\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.destroy",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"destroy\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.dimension",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"dimension\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.format",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"format\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.height",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"height\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.label",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.mipLevelCount",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"mipLevelCount\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.sampleCount",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"sampleCount\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.usage",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"usage\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTexture.width",
      "info": {
        "code": "(function () {\n  var gpu = navigator.gpu;\n  if (!gpu) {\n    return { result: false, message: \"gpu is falsy\" };\n  }\n  var adapter = gpu.requestAdapter();\n  if (!adapter) {\n    return { result: false, message: \"adapter is falsy\" };\n  }\n  var device = adapter.then(function (a) {\n    var device = a.requestDevice();\n    bcd.addCleanup(function () {\n      if (\"destroy\" in device) {\n        device.destroy();\n      }\n    });\n    return device;\n  });\n  if (!device) {\n    return { result: false, message: \"device is falsy\" };\n  }\n  if (!(\"GPUTextureUsage\" in self)) {\n    return { result: false, message: \"GPUTextureUsage is not defined\" };\n  }\n  var promise = device.then(function (d) {\n    return d.createTexture({\n      size: [512, 512, 1],\n      format: \"rgba8unorm\",\n      usage:\n        GPUTextureUsage.TEXTURE_BINDING |\n        GPUTextureUsage.COPY_DST |\n        GPUTextureUsage.RENDER_ATTACHMENT\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"width\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GPUTextureView",
      "info": {
        "code": "\"GPUTextureView\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUTextureView.label",
      "info": {
        "code": "\"GPUTextureView\" in self && \"label\" in GPUTextureView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUUncapturedErrorEvent",
      "info": {
        "code": "\"GPUUncapturedErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUUncapturedErrorEvent.GPUUncapturedErrorEvent",
      "info": {
        "code": "bcd.testConstructor('GPUUncapturedErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GPUUncapturedErrorEvent is not defined"
    },
    {
      "name": "api.GPUUncapturedErrorEvent.error",
      "info": {
        "code": "\"GPUUncapturedErrorEvent\" in self && \"error\" in GPUUncapturedErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUValidationError",
      "info": {
        "code": "\"GPUValidationError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GPUValidationError.GPUValidationError",
      "info": {
        "code": "bcd.testConstructor('GPUValidationError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GPUValidationError is not defined"
    },
    {
      "name": "api.GainNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createGain\" in reusableInstances.audioContext)) {\n    return { result: false, message: \"audioContext.createGain is not defined\" };\n  }\n  var instance = reusableInstances.audioContext.createGain();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.GainNode.GainNode",
      "info": {
        "code": "bcd.testConstructor('GainNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GainNode is not defined"
    },
    {
      "name": "api.GainNode.gain",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createGain\" in reusableInstances.audioContext)) {\n    return { result: false, message: \"audioContext.createGain is not defined\" };\n  }\n  var instance = reusableInstances.audioContext.createGain();\n  return !!instance && \"gain\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.Gamepad",
      "info": {
        "code": "\"Gamepad\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.axes",
      "info": {
        "code": "\"Gamepad\" in self && \"axes\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.buttons",
      "info": {
        "code": "\"Gamepad\" in self && \"buttons\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.connected",
      "info": {
        "code": "\"Gamepad\" in self && \"connected\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.displayId",
      "info": {
        "code": "\"Gamepad\" in self && \"displayId\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.hand",
      "info": {
        "code": "\"Gamepad\" in self && \"hand\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.hapticActuators",
      "info": {
        "code": "\"Gamepad\" in self && \"hapticActuators\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.id",
      "info": {
        "code": "\"Gamepad\" in self && \"id\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.index",
      "info": {
        "code": "\"Gamepad\" in self && \"index\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.mapping",
      "info": {
        "code": "\"Gamepad\" in self && \"mapping\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.pose",
      "info": {
        "code": "\"Gamepad\" in self && \"pose\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.timestamp",
      "info": {
        "code": "\"Gamepad\" in self && \"timestamp\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.touches",
      "info": {
        "code": "\"Gamepad\" in self && \"touches\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gamepad.vibrationActuator",
      "info": {
        "code": "\"Gamepad\" in self && \"vibrationActuator\" in Gamepad.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadButton",
      "info": {
        "code": "\"GamepadButton\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadButton.pressed",
      "info": {
        "code": "\"GamepadButton\" in self && \"pressed\" in GamepadButton.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadButton.touched",
      "info": {
        "code": "\"GamepadButton\" in self && \"touched\" in GamepadButton.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadButton.value",
      "info": {
        "code": "\"GamepadButton\" in self && \"value\" in GamepadButton.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadEvent",
      "info": {
        "code": "(function () {\n  if (!(\"GamepadEvent\" in self)) {\n    return { result: false, message: \"GamepadEvent is not defined\" };\n  }\n  var instance = new GamepadEvent(\"gamepadconnected\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "GamepadEvent is not defined"
    },
    {
      "name": "api.GamepadEvent.GamepadEvent",
      "info": {
        "code": "bcd.testConstructor('GamepadEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GamepadEvent is not defined"
    },
    {
      "name": "api.GamepadEvent.gamepad",
      "info": {
        "code": "(function () {\n  if (!(\"GamepadEvent\" in self)) {\n    return { result: false, message: \"GamepadEvent is not defined\" };\n  }\n  var instance = new GamepadEvent(\"gamepadconnected\");\n  return !!instance && \"gamepad\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "GamepadEvent is not defined"
    },
    {
      "name": "api.GamepadHapticActuator",
      "info": {
        "code": "\"GamepadHapticActuator\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.canPlayEffectType",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"canPlayEffectType\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.effects",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"effects\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.playEffect",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"playEffect\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.pulse",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"pulse\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.reset",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"reset\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadHapticActuator.type",
      "info": {
        "code": "\"GamepadHapticActuator\" in self && \"type\" in GamepadHapticActuator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose",
      "info": {
        "code": "\"GamepadPose\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.angularAcceleration",
      "info": {
        "code": "\"GamepadPose\" in self && \"angularAcceleration\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.angularVelocity",
      "info": {
        "code": "\"GamepadPose\" in self && \"angularVelocity\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.hasOrientation",
      "info": {
        "code": "\"GamepadPose\" in self && \"hasOrientation\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.hasPosition",
      "info": {
        "code": "\"GamepadPose\" in self && \"hasPosition\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.linearAcceleration",
      "info": {
        "code": "\"GamepadPose\" in self && \"linearAcceleration\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.linearVelocity",
      "info": {
        "code": "\"GamepadPose\" in self && \"linearVelocity\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.orientation",
      "info": {
        "code": "\"GamepadPose\" in self && \"orientation\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GamepadPose.position",
      "info": {
        "code": "\"GamepadPose\" in self && \"position\" in GamepadPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Geolocation",
      "info": {
        "code": "(function () {\n  var instance = navigator.geolocation;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Geolocation.clearWatch",
      "info": {
        "code": "(function () {\n  var instance = navigator.geolocation;\n  return !!instance && \"clearWatch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Geolocation.getCurrentPosition",
      "info": {
        "code": "(function () {\n  var instance = navigator.geolocation;\n  return !!instance && \"getCurrentPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Geolocation.watchPosition",
      "info": {
        "code": "(function () {\n  var instance = navigator.geolocation;\n  return !!instance && \"watchPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.accuracy",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"accuracy\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.altitude",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"altitude\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.altitudeAccuracy",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"altitudeAccuracy\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.heading",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"heading\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.latitude",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"latitude\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.longitude",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"longitude\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.speed",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      posCallback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function posCallback(pos) {\n    callback(pos.coords);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"speed\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationCoordinates.toJSON",
      "info": {
        "code": "\"GeolocationCoordinates\" in self && \"toJSON\" in GeolocationCoordinates.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationPosition",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      callback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationPosition.coords",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      callback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance && \"coords\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationPosition.timestamp",
      "info": {
        "code": "(function () {\n  var geo = navigator.geolocation;\n  if (!geo) {\n    return { result: false, message: \"geo is falsy\" };\n  }\n  geo.getCurrentPosition(\n    function (pos) {\n      callback(pos);\n    },\n    function (err) {\n      fail(err.message);\n    },\n    {\n      timeout: 5000\n    }\n  );\n  function callback(instance) {\n    try {\n      success(!!instance && \"timestamp\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.GeolocationPosition.toJSON",
      "info": {
        "code": "\"GeolocationPosition\" in self && \"toJSON\" in GeolocationPosition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationPositionError",
      "info": {
        "code": "\"GeolocationPositionError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationPositionError.code",
      "info": {
        "code": "\"GeolocationPositionError\" in self && \"code\" in GeolocationPositionError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationPositionError.message",
      "info": {
        "code": "\"GeolocationPositionError\" in self && \"message\" in GeolocationPositionError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor",
      "info": {
        "code": "\"GeolocationSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.GeolocationSensor",
      "info": {
        "code": "bcd.testConstructor('GeolocationSensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GeolocationSensor is not defined"
    },
    {
      "name": "api.GeolocationSensor.accuracy",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"accuracy\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.altitude",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"altitude\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.altitudeAccuracy",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"altitudeAccuracy\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.heading",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"heading\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.latitude",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"latitude\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.longitude",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"longitude\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.read_static",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"read\" in GeolocationSensor",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GeolocationSensor.speed",
      "info": {
        "code": "\"GeolocationSensor\" in self && \"speed\" in GeolocationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent",
      "info": {
        "code": "\"GestureEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.altKey",
      "info": {
        "code": "\"GestureEvent\" in self && \"altKey\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.clientX",
      "info": {
        "code": "\"GestureEvent\" in self && \"clientX\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.clientY",
      "info": {
        "code": "\"GestureEvent\" in self && \"clientY\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.ctrlKey",
      "info": {
        "code": "\"GestureEvent\" in self && \"ctrlKey\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.initGestureEvent",
      "info": {
        "code": "\"GestureEvent\" in self && \"initGestureEvent\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.metaKey",
      "info": {
        "code": "\"GestureEvent\" in self && \"metaKey\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.rotation",
      "info": {
        "code": "\"GestureEvent\" in self && \"rotation\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.scale",
      "info": {
        "code": "\"GestureEvent\" in self && \"scale\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.screenX",
      "info": {
        "code": "\"GestureEvent\" in self && \"screenX\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.screenY",
      "info": {
        "code": "\"GestureEvent\" in self && \"screenY\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.shiftKey",
      "info": {
        "code": "\"GestureEvent\" in self && \"shiftKey\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GestureEvent.target",
      "info": {
        "code": "\"GestureEvent\" in self && \"target\" in GestureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GravitySensor",
      "info": {
        "code": "\"GravitySensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GravitySensor.GravitySensor",
      "info": {
        "code": "bcd.testConstructor('GravitySensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GravitySensor is not defined"
    },
    {
      "name": "api.GroupEffect",
      "info": {
        "code": "\"GroupEffect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.GroupEffect",
      "info": {
        "code": "bcd.testConstructor('GroupEffect')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: GroupEffect is not defined"
    },
    {
      "name": "api.GroupEffect.append",
      "info": {
        "code": "\"GroupEffect\" in self && \"append\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.children",
      "info": {
        "code": "\"GroupEffect\" in self && \"children\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.clone",
      "info": {
        "code": "\"GroupEffect\" in self && \"clone\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.firstChild",
      "info": {
        "code": "\"GroupEffect\" in self && \"firstChild\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.lastChild",
      "info": {
        "code": "\"GroupEffect\" in self && \"lastChild\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.GroupEffect.prepend",
      "info": {
        "code": "\"GroupEffect\" in self && \"prepend\" in GroupEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gyroscope",
      "info": {
        "code": "\"Gyroscope\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gyroscope.Gyroscope",
      "info": {
        "code": "bcd.testConstructor('Gyroscope')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Gyroscope is not defined"
    },
    {
      "name": "api.Gyroscope.x",
      "info": {
        "code": "\"Gyroscope\" in self && \"x\" in Gyroscope.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gyroscope.y",
      "info": {
        "code": "\"Gyroscope\" in self && \"y\" in Gyroscope.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Gyroscope.z",
      "info": {
        "code": "\"Gyroscope\" in self && \"z\" in Gyroscope.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HID",
      "info": {
        "code": "\"HID\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HID.getDevices",
      "info": {
        "code": "\"HID\" in self && \"getDevices\" in HID.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HID.requestDevice",
      "info": {
        "code": "\"HID\" in self && \"requestDevice\" in HID.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDConnectionEvent",
      "info": {
        "code": "\"HIDConnectionEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDConnectionEvent.HIDConnectionEvent",
      "info": {
        "code": "bcd.testConstructor('HIDConnectionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HIDConnectionEvent is not defined"
    },
    {
      "name": "api.HIDConnectionEvent.device",
      "info": {
        "code": "\"HIDConnectionEvent\" in self && \"device\" in HIDConnectionEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice",
      "info": {
        "code": "\"HIDDevice\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.close",
      "info": {
        "code": "\"HIDDevice\" in self && \"close\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.collections",
      "info": {
        "code": "\"HIDDevice\" in self && \"collections\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.forget",
      "info": {
        "code": "\"HIDDevice\" in self && \"forget\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.open",
      "info": {
        "code": "\"HIDDevice\" in self && \"open\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.opened",
      "info": {
        "code": "\"HIDDevice\" in self && \"opened\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.productId",
      "info": {
        "code": "\"HIDDevice\" in self && \"productId\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.productName",
      "info": {
        "code": "\"HIDDevice\" in self && \"productName\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.receiveFeatureReport",
      "info": {
        "code": "\"HIDDevice\" in self && \"receiveFeatureReport\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.sendFeatureReport",
      "info": {
        "code": "\"HIDDevice\" in self && \"sendFeatureReport\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.sendReport",
      "info": {
        "code": "\"HIDDevice\" in self && \"sendReport\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDDevice.vendorId",
      "info": {
        "code": "\"HIDDevice\" in self && \"vendorId\" in HIDDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDInputReportEvent",
      "info": {
        "code": "\"HIDInputReportEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDInputReportEvent.HIDInputReportEvent",
      "info": {
        "code": "bcd.testConstructor('HIDInputReportEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HIDInputReportEvent is not defined"
    },
    {
      "name": "api.HIDInputReportEvent.data",
      "info": {
        "code": "\"HIDInputReportEvent\" in self && \"data\" in HIDInputReportEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDInputReportEvent.device",
      "info": {
        "code": "\"HIDInputReportEvent\" in self && \"device\" in HIDInputReportEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HIDInputReportEvent.reportId",
      "info": {
        "code": "\"HIDInputReportEvent\" in self && \"reportId\" in HIDInputReportEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HMDVRDevice",
      "info": {
        "code": "\"HMDVRDevice\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HMDVRDevice.getEyeParameters",
      "info": {
        "code": "\"HMDVRDevice\" in self && \"getEyeParameters\" in HMDVRDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HMDVRDevice.setFieldOfView",
      "info": {
        "code": "\"HMDVRDevice\" in self && \"setFieldOfView\" in HMDVRDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLAllCollection",
      "info": {
        "code": "(function () {\n  var instance = document.all;\n  // Note: in most browsers, \"document.all\" is falsy, so \"!!instance\" will return \"false\"\n  if (instance === undefined) {\n    return { result: false, message: \"document.all is undefined\" };\n  }\n  return bcd.testObjectName(instance, \"HTMLAllCollection\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAllCollection.item",
      "info": {
        "code": "(function () {\n  var instance = document.all;\n  // Note: in most browsers, \"document.all\" is falsy, so \"!!instance\" will return \"false\"\n  if (instance === undefined) {\n    return { result: false, message: \"document.all is undefined\" };\n  }\n  return \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAllCollection.length",
      "info": {
        "code": "(function () {\n  var instance = document.all;\n  // Note: in most browsers, \"document.all\" is falsy, so \"!!instance\" will return \"false\"\n  if (instance === undefined) {\n    return { result: false, message: \"document.all is undefined\" };\n  }\n  return \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAllCollection.namedItem",
      "info": {
        "code": "(function () {\n  var instance = document.all;\n  // Note: in most browsers, \"document.all\" is falsy, so \"!!instance\" will return \"false\"\n  if (instance === undefined) {\n    return { result: false, message: \"document.all is undefined\" };\n  }\n  return \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return bcd.testObjectName(instance, \"HTMLAnchorElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.HTMLAnchorElement",
      "info": {
        "code": "bcd.testConstructor('HTMLAnchorElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLAnchorElement is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.attributionSourceId",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"attributionSourceId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.attributionSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"attributionSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.charset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"charset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.coords",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"coords\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.download",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"download\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.hash",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.host",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.hostname",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.hrefTranslate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"hrefTranslate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.hreflang",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"hreflang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.password",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"password\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.pathname",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.ping",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"ping\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.port",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.protocol",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.rel",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"rel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.relList",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"relList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.rev",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"rev\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.search",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.shape",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"shape\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.text",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.toString",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  instance.href = \"https://mdn-bcd-collector.gooborg.com/\";\n  return instance.toString() == instance.href;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAnchorElement.username",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"a\");\n  return !!instance && \"username\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return bcd.testObjectName(instance, \"HTMLAreaElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.HTMLAreaElement",
      "info": {
        "code": "bcd.testConstructor('HTMLAreaElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLAreaElement is not defined"
    },
    {
      "name": "api.HTMLAreaElement.alt",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"alt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.attributionSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"attributionSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.coords",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"coords\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.download",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"download\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.hash",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.host",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.hostname",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.noHref",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"noHref\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.password",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"password\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.pathname",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.ping",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"ping\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.port",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.protocol",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.rel",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"rel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.relList",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"relList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.search",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.shape",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"shape\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.toString",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  instance.href = \"https://mdn-bcd-collector.gooborg.com/\";\n  return instance.toString() == instance.href;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAreaElement.username",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"area\");\n  return !!instance && \"username\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAudioElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"audio\");\n  return bcd.testObjectName(instance, \"HTMLAudioElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAudioElement.Audio",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"audio\");\n  return bcd.testConstructor(\"Audio\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLAudioElement.HTMLAudioElement",
      "info": {
        "code": "bcd.testConstructor('HTMLAudioElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLAudioElement is not defined"
    },
    {
      "name": "api.HTMLBRElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"br\");\n  return bcd.testObjectName(instance, \"HTMLBRElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBRElement.HTMLBRElement",
      "info": {
        "code": "bcd.testConstructor('HTMLBRElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLBRElement is not defined"
    },
    {
      "name": "api.HTMLBRElement.clear",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"br\");\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBaseElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"base\");\n  return bcd.testObjectName(instance, \"HTMLBaseElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBaseElement.HTMLBaseElement",
      "info": {
        "code": "bcd.testConstructor('HTMLBaseElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLBaseElement is not defined"
    },
    {
      "name": "api.HTMLBaseElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"base\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBaseElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"base\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return bcd.testObjectName(instance, \"HTMLBodyElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.HTMLBodyElement",
      "info": {
        "code": "bcd.testConstructor('HTMLBodyElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLBodyElement is not defined"
    },
    {
      "name": "api.HTMLBodyElement.aLink",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"aLink\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.background",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"background\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.link",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"link\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.text",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLBodyElement.vLink",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"body\");\n  return !!instance && \"vLink\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return bcd.testObjectName(instance, \"HTMLButtonElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.HTMLButtonElement",
      "info": {
        "code": "bcd.testConstructor('HTMLButtonElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLButtonElement is not defined"
    },
    {
      "name": "api.HTMLButtonElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.command",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"command\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.commandForElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"commandForElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.formAction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"formAction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.formEnctype",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"formEnctype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.formMethod",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"formMethod\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.formNoValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"formNoValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.formTarget",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"formTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.invokeaction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"invokeaction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.invoketarget",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"invoketarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.popoverTargetAction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"popoverTargetAction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.popoverTargetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"popoverTargetElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLButtonElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"button\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return bcd.testObjectName(instance, \"HTMLCanvasElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.HTMLCanvasElement",
      "info": {
        "code": "bcd.testConstructor('HTMLCanvasElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLCanvasElement is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.captureStream",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"captureStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"getContext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.2d_context",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"2d\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.2d_context.options_alpha_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"2d\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"alpha\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.2d_context.options_colorSpace_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"2d\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"colorSpace\", \"srgb\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.2d_context.options_desynchronized_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"2d\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"desynchronized\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.2d_context.options_willReadFrequently_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"2d\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"willReadFrequently\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.bitmaprenderer_context",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"bitmaprenderer\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.bitmaprenderer_context.options_alpha_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"bitmaprenderer\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"alpha\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl2_context",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgl2\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl2_context.options_alpha_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"webgl2\", options);\n  }\n  return bcd.testOptionParam(createContext, null, \"alpha\", true, {}, true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl2_context.options_desynchronized_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"webgl2\", options);\n  }\n  return bcd.testOptionParam(\n    createContext,\n    null,\n    \"desynchronized\",\n    true,\n    {},\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl2_context.options_failIfMajorPerformanceCaveat_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"webgl2\", options);\n  }\n  return bcd.testOptionParam(\n    createContext,\n    null,\n    \"failIfMajorPerformanceCaveat\",\n    true,\n    {},\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl2_context.options_powerPreference_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return instance.getContext(\"webgl2\", options);\n  }\n  return bcd.testOptionParam(\n    createContext,\n    null,\n    \"powerPreference\",\n    \"default\",\n    {},\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl_context",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgl\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl_context.options_alpha_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return (\n      instance.getContext(\"webgl\", options) ||\n      instance.getContext(\"experimental-webgl\", options)\n    );\n  }\n  return bcd.testOptionParam(createContext, null, \"alpha\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl_context.options_desynchronized_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return (\n      instance.getContext(\"webgl\", options) ||\n      instance.getContext(\"experimental-webgl\", options)\n    );\n  }\n  return bcd.testOptionParam(createContext, null, \"desynchronized\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl_context.options_failIfMajorPerformanceCaveat_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return (\n      instance.getContext(\"webgl\", options) ||\n      instance.getContext(\"experimental-webgl\", options)\n    );\n  }\n  return bcd.testOptionParam(\n    createContext,\n    null,\n    \"failIfMajorPerformanceCaveat\",\n    true\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgl_context.options_powerPreference_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  function createContext(options) {\n    return (\n      instance.getContext(\"webgl\", options) ||\n      instance.getContext(\"experimental-webgl\", options)\n    );\n  }\n  return bcd.testOptionParam(createContext, null, \"powerPreference\", \"default\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.getContext.webgpu_context",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  bcd.skipIf(\n    \"Creating a WebGPU context on Safari 16.5 crashes the browser\",\n    \"safari\",\n    \"16.5\"\n  );\n\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgpu\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.mozOpaque",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"mozOpaque\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.mozPrintCallback",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"mozPrintCallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toBlob",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"toBlob\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toBlob.quality_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toBlob\" in instance)) {\n    return { result: false, message: \"instance.toBlob is not defined\" };\n  }\n\n  // Set the size\n  instance.width = \"300\";\n  instance.height = \"300\";\n\n  // Now we need to draw something\n  var ctx = instance.getContext(\"2d\");\n  ctx.lineWidth = 10;\n  ctx.strokeStyle = \"rgb(230, 20, 20)\";\n  ctx.fillStyle = \"rgb(20, 20, 230)\";\n  ctx.strokeRect(75, 140, 150, 110);\n  ctx.fillRect(130, 190, 40, 60);\n  ctx.beginPath();\n  ctx.moveTo(50, 140);\n  ctx.lineTo(150, 60);\n  ctx.lineTo(250, 140);\n  ctx.closePath();\n  ctx.stroke();\n\n  // Get two blobs with different quality and compare them\n  instance.toBlob(\n    function (blob1) {\n      blob1.arrayBuffer().then(function (blob1data) {\n        instance.toBlob(\n          function (blob2) {\n            blob2.arrayBuffer().then(function (blob2data) {\n              if (blob1.size != blob2.size) {\n                success({ result: true, message: \"Blobs are not identical\" });\n                return;\n              }\n\n              for (var i = 0; i < blob1.size; i++) {\n                if (blob1data[i] != blob2data[i]) {\n                  success({ result: true, message: \"Blobs are not identical\" });\n                  return;\n                }\n              }\n\n              success({ result: false, message: \"Blobs are identical\" });\n            });\n          },\n          \"image/jpeg\",\n          0.9\n        );\n      });\n    },\n    \"image/jpeg\",\n    0.5\n  );\n\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toBlob.type_parameter_jpeg",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toBlob\" in instance)) {\n    return { result: false, message: \"instance.toBlob is not defined\" };\n  }\n  function callback(blob) {\n    success(blob.type === \"image/jpeg\");\n  }\n  instance.toBlob(callback, \"image/jpeg\");\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toBlob.type_parameter_png",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toBlob\" in instance)) {\n    return { result: false, message: \"instance.toBlob is not defined\" };\n  }\n  function callback(blob) {\n    success(blob.type === \"image/png\");\n  }\n  instance.toBlob(callback, \"image/png\");\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toBlob.type_parameter_webp",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toBlob\" in instance)) {\n    return { result: false, message: \"instance.toBlob is not defined\" };\n  }\n  function callback(blob) {\n    success(blob.type === \"image/webp\");\n  }\n  instance.toBlob(callback, \"image/webp\");\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toDataURL",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"toDataURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toDataURL.type_parameter_jpeg",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toDataURL\" in instance)) {\n    return { result: false, message: \"instance.toDataURL is not defined\" };\n  }\n  var url = instance.toDataURL(\"image/jpeg\");\n  return url.indexOf(\"data:image/jpeg;\") === 0;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toDataURL.type_parameter_png",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toDataURL\" in instance)) {\n    return { result: false, message: \"instance.toDataURL is not defined\" };\n  }\n  var url = instance.toDataURL(\"image/png\");\n  return url.indexOf(\"data:image/png;\") === 0;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.toDataURL.type_parameter_webp",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  if (!(\"toDataURL\" in instance)) {\n    return { result: false, message: \"instance.toDataURL is not defined\" };\n  }\n  var url = instance.toDataURL(\"image/webp\");\n  return url.indexOf(\"data:image/webp;\") === 0;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.transferControlToOffscreen",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"transferControlToOffscreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCanvasElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"canvas\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCollection",
      "info": {
        "code": "(function () {\n  var instance = document.forms;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCollection.item",
      "info": {
        "code": "(function () {\n  var instance = document.forms;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCollection.length",
      "info": {
        "code": "(function () {\n  var instance = document.forms;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLCollection.namedItem",
      "info": {
        "code": "(function () {\n  var instance = document.forms;\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLContentElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"content\");\n  return bcd.testObjectName(instance, \"HTMLContentElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLContentElement.getDistributedNodes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"content\");\n  return !!instance && \"getDistributedNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLContentElement.select",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"content\");\n  return !!instance && \"select\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDListElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dl\");\n  return bcd.testObjectName(instance, \"HTMLDListElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDListElement.HTMLDListElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDListElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDListElement is not defined"
    },
    {
      "name": "api.HTMLDListElement.compact",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dl\");\n  return !!instance && \"compact\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDataElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"data\");\n  return bcd.testObjectName(instance, \"HTMLDataElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDataElement.HTMLDataElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDataElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDataElement is not defined"
    },
    {
      "name": "api.HTMLDataElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"data\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDataListElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"datalist\");\n  return bcd.testObjectName(instance, \"HTMLDataListElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDataListElement.HTMLDataListElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDataListElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDataListElement is not defined"
    },
    {
      "name": "api.HTMLDataListElement.options",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"datalist\");\n  return !!instance && \"options\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDetailsElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"details\");\n  return bcd.testObjectName(instance, \"HTMLDetailsElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDetailsElement.HTMLDetailsElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDetailsElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDetailsElement is not defined"
    },
    {
      "name": "api.HTMLDetailsElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"details\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDetailsElement.open",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"details\");\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return bcd.testObjectName(instance, \"HTMLDialogElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.HTMLDialogElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDialogElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDialogElement is not defined"
    },
    {
      "name": "api.HTMLDialogElement.close",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.closedBy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"closedBy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.open",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.requestClose",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"requestClose\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.returnValue",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"returnValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.show",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"show\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDialogElement.showModal",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dialog\");\n  return !!instance && \"showModal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDirectoryElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dir\");\n  return bcd.testObjectName(instance, \"HTMLDirectoryElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDirectoryElement.HTMLDirectoryElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDirectoryElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDirectoryElement is not defined"
    },
    {
      "name": "api.HTMLDirectoryElement.compact",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"dir\");\n  return !!instance && \"compact\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDivElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"div\");\n  return bcd.testObjectName(instance, \"HTMLDivElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDivElement.HTMLDivElement",
      "info": {
        "code": "bcd.testConstructor('HTMLDivElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLDivElement is not defined"
    },
    {
      "name": "api.HTMLDivElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"div\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLDocument",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.HTMLElement",
      "info": {
        "code": "bcd.testConstructor('HTMLElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLElement is not defined"
    },
    {
      "name": "api.HTMLElement.accessKey",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"accessKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.accessKeyLabel",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"accessKeyLabel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.anchorElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"anchorElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.attachInternals",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"attachInternals\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.attributeStyleMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"attributeStyleMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.autocapitalize",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"autocapitalize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.autocorrect",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"autocorrect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.autofocus",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"autofocus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.blur",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"blur\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.click",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"click\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.contentEditable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"contentEditable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.contextMenu",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"contextMenu\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.dataset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"dataset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.dir",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"dir\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.draggable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"draggable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.editContext",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"editContext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.enterKeyHint",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"enterKeyHint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.focus",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"focus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.focus.options_focusVisible_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return bcd.testOptionParam(instance, \"focus\", \"focusVisible\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.focus.options_preventScroll_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return bcd.testOptionParam(instance, \"focus\", \"preventScroll\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.headingOffset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"headingOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.headingReset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"headingReset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.hidden",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"hidden\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.hidePopover",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"hidePopover\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.inert",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"inert\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.innerText",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"innerText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.inputMode",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"inputMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.isContentEditable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"isContentEditable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.lang",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"lang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.nonce",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"nonce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.offsetHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"offsetHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.offsetLeft",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"offsetLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.offsetParent",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"offsetParent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.offsetTop",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"offsetTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.offsetWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"offsetWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.outerText",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"outerText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.popover",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"popover\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.scrollParent",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"scrollParent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.showPopover",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"showPopover\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.spellcheck",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"spellcheck\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.style",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.tabIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"tabIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.title",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"title\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.togglePopover",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"togglePopover\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.togglePopover.returns_boolean",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  if (!(\"togglePopover\" in instance)) {\n    return {\n      result: false,\n      message: \"HTMLElement.togglePopover is not defined\"\n    };\n  }\n\n  document.getElementById(\"resources\").appendChild(instance);\n  bcd.addCleanup(function () {\n    document.getElementById(\"resources\").removeChild(instance);\n  });\n\n  instance.popover = \"auto\";\n  var value = instance.togglePopover(false);\n  return typeof value === \"boolean\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.translate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"translate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.virtualKeyboardPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"virtualKeyboardPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLElement.writingSuggestions",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"b\");\n  return !!instance && \"writingSuggestions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return bcd.testObjectName(instance, \"HTMLEmbedElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.HTMLEmbedElement",
      "info": {
        "code": "bcd.testConstructor('HTMLEmbedElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLEmbedElement is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.getSVGDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"getSVGDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLEmbedElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"embed\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFencedFrameElement",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFencedFrameElement.HTMLFencedFrameElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFencedFrameElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFencedFrameElement is not defined"
    },
    {
      "name": "api.HTMLFencedFrameElement.allow",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self && \"allow\" in HTMLFencedFrameElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFencedFrameElement.config",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self && \"config\" in HTMLFencedFrameElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFencedFrameElement.height",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self && \"height\" in HTMLFencedFrameElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFencedFrameElement.sandbox",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self && \"sandbox\" in HTMLFencedFrameElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFencedFrameElement.width",
      "info": {
        "code": "\"HTMLFencedFrameElement\" in self && \"width\" in HTMLFencedFrameElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLFieldSetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return bcd.testObjectName(instance, \"HTMLFieldSetElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.HTMLFieldSetElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFieldSetElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFieldSetElement is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.elements",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"elements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.elements.type_HTMLCollection",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  var els = instance.elements();\n  return bcd.testObjectName(els, \"HTMLCollection\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFieldSetElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"fieldset\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFontElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"font\");\n  return bcd.testObjectName(instance, \"HTMLFontElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFontElement.HTMLFontElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFontElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFontElement is not defined"
    },
    {
      "name": "api.HTMLFontElement.color",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"font\");\n  return !!instance && \"color\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFontElement.face",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"font\");\n  return !!instance && \"face\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFontElement.size",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"font\");\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormControlsCollection",
      "info": {
        "code": "(function () {\n  var form = document.createElement(\"form\");\n  if (!form) {\n    return { result: false, message: \"form is falsy\" };\n  }\n  for (var i = 0; i < 3; i++) {\n    var input = document.createElement(\"input\");\n    input.value = i;\n    form.appendChild(input);\n  }\n  var instance = form.elements;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormControlsCollection.namedItem",
      "info": {
        "code": "(function () {\n  var form = document.createElement(\"form\");\n  if (!form) {\n    return { result: false, message: \"form is falsy\" };\n  }\n  for (var i = 0; i < 3; i++) {\n    var input = document.createElement(\"input\");\n    input.value = i;\n    form.appendChild(input);\n  }\n  var instance = form.elements;\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return bcd.testObjectName(instance, \"HTMLFormElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.HTMLFormElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFormElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFormElement is not defined"
    },
    {
      "name": "api.HTMLFormElement.acceptCharset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"acceptCharset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.action",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"action\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.autocomplete",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"autocomplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.elements",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"elements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.encoding",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"encoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.enctype",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"enctype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.length",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.method",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"method\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.noValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"noValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.rel",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"rel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.relList",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"relList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.requestSubmit",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"requestSubmit\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.reset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"reset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.submit",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"submit\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFormElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"form\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return bcd.testObjectName(instance, \"HTMLFrameElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.HTMLFrameElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFrameElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFrameElement is not defined"
    },
    {
      "name": "api.HTMLFrameElement.contentDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"contentDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.contentWindow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"contentWindow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.frameBorder",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"frameBorder\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.longDesc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"longDesc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.marginHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"marginHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.marginWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"marginWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.noResize",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"noResize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.scrolling",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"scrolling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frame\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameSetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frameset\");\n  return bcd.testObjectName(instance, \"HTMLFrameSetElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameSetElement.HTMLFrameSetElement",
      "info": {
        "code": "bcd.testConstructor('HTMLFrameSetElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLFrameSetElement is not defined"
    },
    {
      "name": "api.HTMLFrameSetElement.cols",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frameset\");\n  return !!instance && \"cols\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLFrameSetElement.rows",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"frameset\");\n  return !!instance && \"rows\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return bcd.testObjectName(instance, \"HTMLHRElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement.HTMLHRElement",
      "info": {
        "code": "bcd.testConstructor('HTMLHRElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLHRElement is not defined"
    },
    {
      "name": "api.HTMLHRElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement.color",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return !!instance && \"color\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement.noShade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return !!instance && \"noShade\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement.size",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHRElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"hr\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHeadElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"head\");\n  return bcd.testObjectName(instance, \"HTMLHeadElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHeadElement.HTMLHeadElement",
      "info": {
        "code": "bcd.testConstructor('HTMLHeadElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLHeadElement is not defined"
    },
    {
      "name": "api.HTMLHeadingElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"h1\");\n  return bcd.testObjectName(instance, \"HTMLHeadingElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHeadingElement.HTMLHeadingElement",
      "info": {
        "code": "bcd.testConstructor('HTMLHeadingElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLHeadingElement is not defined"
    },
    {
      "name": "api.HTMLHeadingElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"h1\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHtmlElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"html\");\n  return bcd.testObjectName(instance, \"HTMLHtmlElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLHtmlElement.HTMLHtmlElement",
      "info": {
        "code": "bcd.testConstructor('HTMLHtmlElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLHtmlElement is not defined"
    },
    {
      "name": "api.HTMLHtmlElement.version",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"html\");\n  return !!instance && \"version\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return bcd.testObjectName(instance, \"HTMLIFrameElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.HTMLIFrameElement",
      "info": {
        "code": "bcd.testConstructor('HTMLIFrameElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLIFrameElement is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.adAuctionHeaders",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"adAuctionHeaders\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.allow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"allow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.allowFullscreen",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"allowFullscreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.allowPaymentRequest",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"allowPaymentRequest\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.browsingTopics",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"browsingTopics\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.contentDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"contentDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.contentWindow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"contentWindow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.credentialless",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"credentialless\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.csp",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"csp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.featurePolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"featurePolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.frameBorder",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"frameBorder\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.getSVGDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"getSVGDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.loading",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"loading\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.longDesc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"longDesc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.marginHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"marginHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.marginWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"marginWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.permissionsPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"permissionsPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.privateToken",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"privateToken\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.sandbox",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"sandbox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.scrolling",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"scrolling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.sharedStorageWritable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"sharedStorageWritable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.srcdoc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"srcdoc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLIFrameElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"iframe\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return bcd.testObjectName(instance, \"HTMLImageElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.HTMLImageElement",
      "info": {
        "code": "bcd.testConstructor('HTMLImageElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLImageElement is not defined"
    },
    {
      "name": "api.HTMLImageElement.Image",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return bcd.testConstructor(\"Image\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.alt",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"alt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.attributionSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"attributionSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.border",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"border\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.complete",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"complete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.currentSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"currentSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.decode",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"decode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.decoding",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"decoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.fetchPriority",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"fetchPriority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.hspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"hspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.isMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"isMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.loading",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"loading\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.longDesc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"longDesc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.lowsrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"lowsrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.naturalHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"naturalHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.naturalWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"naturalWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.sharedStorageWritable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"sharedStorageWritable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.sizes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"sizes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.srcset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"srcset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.useMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"useMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.vspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"vspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLImageElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"img\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return bcd.testObjectName(instance, \"HTMLInputElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.HTMLInputElement",
      "info": {
        "code": "bcd.testConstructor('HTMLInputElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLInputElement is not defined"
    },
    {
      "name": "api.HTMLInputElement.accept",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"accept\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.alpha",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"alpha\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.alt",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"alt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.autocomplete",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"autocomplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.capture",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"capture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.checked",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"checked\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.colorSpace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"colorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.defaultChecked",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"defaultChecked\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.defaultValue",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"defaultValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.dirName",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"dirName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.files",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"files\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.formAction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"formAction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.formEnctype",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"formEnctype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.formMethod",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"formMethod\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.formNoValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"formNoValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.formTarget",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"formTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.incremental",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"incremental\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.indeterminate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"indeterminate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.list",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"list\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.max",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"max\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.maxLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"maxLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.min",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"min\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.minLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"minLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.multiple",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"multiple\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.pattern",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"pattern\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.placeholder",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"placeholder\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.popoverTargetAction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"popoverTargetAction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.popoverTargetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"popoverTargetElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.readOnly",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"readOnly\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.required",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"required\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.select",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"select\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.selectionDirection",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"selectionDirection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.selectionEnd",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"selectionEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.selectionStart",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"selectionStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.setRangeText",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"setRangeText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.setSelectionRange",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"setSelectionRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.showPicker",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"showPicker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.size",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.step",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"step\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.stepDown",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"stepDown\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.stepUp",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"stepUp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.useMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"useMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.valueAsDate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"valueAsDate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.valueAsNumber",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"valueAsNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.webkitEntries",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"webkitEntries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.webkitdirectory",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"webkitdirectory\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLInputElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"input\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLIElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"li\");\n  return bcd.testObjectName(instance, \"HTMLLIElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLIElement.HTMLLIElement",
      "info": {
        "code": "bcd.testConstructor('HTMLLIElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLLIElement is not defined"
    },
    {
      "name": "api.HTMLLIElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"li\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLIElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"li\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLabelElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"label\");\n  return bcd.testObjectName(instance, \"HTMLLabelElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLabelElement.HTMLLabelElement",
      "info": {
        "code": "bcd.testConstructor('HTMLLabelElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLLabelElement is not defined"
    },
    {
      "name": "api.HTMLLabelElement.control",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"label\");\n  return !!instance && \"control\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLabelElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"label\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLabelElement.htmlFor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"label\");\n  return !!instance && \"htmlFor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLegendElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"legend\");\n  return bcd.testObjectName(instance, \"HTMLLegendElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLegendElement.HTMLLegendElement",
      "info": {
        "code": "bcd.testConstructor('HTMLLegendElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLLegendElement is not defined"
    },
    {
      "name": "api.HTMLLegendElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"legend\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLegendElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"legend\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return bcd.testObjectName(instance, \"HTMLLinkElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.HTMLLinkElement",
      "info": {
        "code": "bcd.testConstructor('HTMLLinkElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLLinkElement is not defined"
    },
    {
      "name": "api.HTMLLinkElement.as",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"as\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.blocking",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"blocking\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.charset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"charset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.fetchPriority",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"fetchPriority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.hreflang",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"hreflang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.imageSizes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"imageSizes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.imageSrcset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"imageSrcset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.integrity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"integrity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.media",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.rel",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"rel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.relList",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"relList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.rev",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"rev\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.sheet",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"sheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.sizes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"sizes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLLinkElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"link\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMapElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"map\");\n  return bcd.testObjectName(instance, \"HTMLMapElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMapElement.HTMLMapElement",
      "info": {
        "code": "bcd.testConstructor('HTMLMapElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLMapElement is not defined"
    },
    {
      "name": "api.HTMLMapElement.areas",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"map\");\n  return !!instance && \"areas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMapElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"map\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return bcd.testObjectName(instance, \"HTMLMarqueeElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.HTMLMarqueeElement",
      "info": {
        "code": "bcd.testConstructor('HTMLMarqueeElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLMarqueeElement is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.behavior",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"behavior\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.direction",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"direction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.hspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"hspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.loop",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"loop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.scrollAmount",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"scrollAmount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.scrollDelay",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"scrollDelay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.start",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.stop",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.trueSpeed",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"trueSpeed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.vspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"vspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMarqueeElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"marquee\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return bcd.testObjectName(instance, \"HTMLVideoElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.addTextTrack",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"addTextTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.allowedToPlay",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"allowedToPlay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.audioTracks",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"audioTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.autoplay",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"autoplay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.buffered",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"buffered\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.canPlayType",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"canPlayType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.captureStream",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"captureStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.controller",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"controller\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.controls",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"controls\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.controlsList",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"controlsList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.currentSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"currentSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.currentTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"currentTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.defaultMuted",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"defaultMuted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.defaultPlaybackRate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"defaultPlaybackRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.disableRemotePlayback",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"disableRemotePlayback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.duration",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"duration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.ended",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"ended\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.error",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.fastSeek",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"fastSeek\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.getStartDate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"getStartDate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.load",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"load\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.loop",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"loop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mediaGroup",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mediaGroup\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mediaKeys",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mediaKeys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mozAudioCaptured",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozAudioCaptured\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mozCaptureStreamUntilEnded",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozCaptureStreamUntilEnded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mozFragmentEnd",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozFragmentEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.mozGetMetadata",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozGetMetadata\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.muted",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"muted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.networkState",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"networkState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.pause",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"pause\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.paused",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"paused\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.play",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"play\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.play.returns_promise",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  if (!(instance && instance.play)) {\n    return { result: false, message: \"instance.play is not defined\" };\n  }\n  var value = instance.play();\n  bcd.addCleanup(function () {\n    instance.pause();\n  });\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.playbackRate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"playbackRate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.played",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"played\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.preload",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"preload\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.preservesPitch",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"preservesPitch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.readyState",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.remote",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"remote\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.seekToNextFrame",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"seekToNextFrame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.seekable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"seekable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.seeking",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"seeking\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.setMediaKeys",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"setMediaKeys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.setSinkId",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"setSinkId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.sinkId",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"sinkId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.srcObject",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"srcObject\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.textTracks",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"textTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.videoTracks",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"videoTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMediaElement.volume",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"volume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menu\");\n  return bcd.testObjectName(instance, \"HTMLMenuElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuElement.HTMLMenuElement",
      "info": {
        "code": "bcd.testConstructor('HTMLMenuElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLMenuElement is not defined"
    },
    {
      "name": "api.HTMLMenuElement.compact",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menu\");\n  return !!instance && \"compact\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuElement.label",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menu\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menu\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return bcd.testObjectName(instance, \"HTMLMenuItemElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.checked",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"checked\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.default",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"default\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.icon",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"icon\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.label",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.radiogroup",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"radiogroup\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMenuItemElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"menuitem\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return bcd.testObjectName(instance, \"HTMLMetaElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement.HTMLMetaElement",
      "info": {
        "code": "bcd.testConstructor('HTMLMetaElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLMetaElement is not defined"
    },
    {
      "name": "api.HTMLMetaElement.content",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return !!instance && \"content\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement.httpEquiv",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return !!instance && \"httpEquiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement.media",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMetaElement.scheme",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meta\");\n  return !!instance && \"scheme\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return bcd.testObjectName(instance, \"HTMLMeterElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.HTMLMeterElement",
      "info": {
        "code": "bcd.testConstructor('HTMLMeterElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLMeterElement is not defined"
    },
    {
      "name": "api.HTMLMeterElement.high",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"high\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.low",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"low\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.max",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"max\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.min",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"min\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.optimum",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"optimum\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLMeterElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"meter\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLModElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"del\");\n  return bcd.testObjectName(instance, [\"HTMLModElement\", \"HTMLDelElement\"]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLModElement.HTMLModElement",
      "info": {
        "code": "bcd.testConstructor('HTMLModElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLModElement is not defined"
    },
    {
      "name": "api.HTMLModElement.cite",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"del\");\n  return !!instance && \"cite\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLModElement.dateTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"del\");\n  return !!instance && \"dateTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLModelElement",
      "info": {
        "code": "\"HTMLModelElement\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLOListElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ol\");\n  return bcd.testObjectName(instance, \"HTMLOListElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOListElement.HTMLOListElement",
      "info": {
        "code": "bcd.testConstructor('HTMLOListElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLOListElement is not defined"
    },
    {
      "name": "api.HTMLOListElement.compact",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ol\");\n  return !!instance && \"compact\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOListElement.reversed",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ol\");\n  return !!instance && \"reversed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOListElement.start",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ol\");\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOListElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ol\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return bcd.testObjectName(instance, \"HTMLObjectElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.HTMLObjectElement",
      "info": {
        "code": "bcd.testConstructor('HTMLObjectElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLObjectElement is not defined"
    },
    {
      "name": "api.HTMLObjectElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.archive",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"archive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.border",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"border\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.code",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"code\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.codeBase",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"codeBase\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.codeType",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"codeType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.contentDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"contentDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.contentWindow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"contentWindow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.data",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.declare",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"declare\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.getSVGDocument",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"getSVGDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.hspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"hspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.standby",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"standby\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.useMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"useMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.vspace",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"vspace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLObjectElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"object\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptGroupElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"optgroup\");\n  return bcd.testObjectName(instance, \"HTMLOptGroupElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptGroupElement.HTMLOptGroupElement",
      "info": {
        "code": "bcd.testConstructor('HTMLOptGroupElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLOptGroupElement is not defined"
    },
    {
      "name": "api.HTMLOptGroupElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"optgroup\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptGroupElement.label",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"optgroup\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return bcd.testObjectName(instance, \"HTMLOptionElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.HTMLOptionElement",
      "info": {
        "code": "bcd.testConstructor('HTMLOptionElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLOptionElement is not defined"
    },
    {
      "name": "api.HTMLOptionElement.Option",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return bcd.testConstructor(\"Option\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.defaultSelected",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"defaultSelected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.index",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"index\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.label",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.selected",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"selected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.text",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"option\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionsCollection",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"select\");\n  for (var i = 0; i < 3; i++) {\n    el.appendChild(document.createElement(\"option\"));\n  }\n  var instance = el.options;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionsCollection.add",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"select\");\n  for (var i = 0; i < 3; i++) {\n    el.appendChild(document.createElement(\"option\"));\n  }\n  var instance = el.options;\n  return !!instance && \"add\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionsCollection.length",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"select\");\n  for (var i = 0; i < 3; i++) {\n    el.appendChild(document.createElement(\"option\"));\n  }\n  var instance = el.options;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionsCollection.remove",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"select\");\n  for (var i = 0; i < 3; i++) {\n    el.appendChild(document.createElement(\"option\"));\n  }\n  var instance = el.options;\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOptionsCollection.selectedIndex",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"select\");\n  for (var i = 0; i < 3; i++) {\n    el.appendChild(document.createElement(\"option\"));\n  }\n  var instance = el.options;\n  return !!instance && \"selectedIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return bcd.testObjectName(instance, \"HTMLOutputElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.HTMLOutputElement",
      "info": {
        "code": "bcd.testConstructor('HTMLOutputElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLOutputElement is not defined"
    },
    {
      "name": "api.HTMLOutputElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.defaultValue",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"defaultValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.htmlFor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"htmlFor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLOutputElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"output\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParagraphElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"p\");\n  return bcd.testObjectName(instance, \"HTMLParagraphElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParagraphElement.HTMLParagraphElement",
      "info": {
        "code": "bcd.testConstructor('HTMLParagraphElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLParagraphElement is not defined"
    },
    {
      "name": "api.HTMLParagraphElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"p\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParamElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"param\");\n  return bcd.testObjectName(instance, \"HTMLParamElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParamElement.HTMLParamElement",
      "info": {
        "code": "bcd.testConstructor('HTMLParamElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLParamElement is not defined"
    },
    {
      "name": "api.HTMLParamElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"param\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParamElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"param\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParamElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"param\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLParamElement.valueType",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"param\");\n  return !!instance && \"valueType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPictureElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"picture\");\n  return bcd.testObjectName(instance, \"HTMLPictureElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPictureElement.HTMLPictureElement",
      "info": {
        "code": "bcd.testConstructor('HTMLPictureElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLPictureElement is not defined"
    },
    {
      "name": "api.HTMLPortalElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"portal\");\n  return bcd.testObjectName(instance, \"HTMLPortalElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPortalElement.HTMLPortalElement",
      "info": {
        "code": "bcd.testConstructor('HTMLPortalElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLPortalElement is not defined"
    },
    {
      "name": "api.HTMLPortalElement.activate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"portal\");\n  return !!instance && \"activate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPortalElement.postMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"portal\");\n  return !!instance && \"postMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPortalElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"portal\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPortalElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"portal\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPreElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"pre\");\n  return bcd.testObjectName(instance, \"HTMLPreElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLPreElement.HTMLPreElement",
      "info": {
        "code": "bcd.testConstructor('HTMLPreElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLPreElement is not defined"
    },
    {
      "name": "api.HTMLPreElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"pre\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLProgressElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"progress\");\n  return bcd.testObjectName(instance, \"HTMLProgressElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLProgressElement.HTMLProgressElement",
      "info": {
        "code": "bcd.testConstructor('HTMLProgressElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLProgressElement is not defined"
    },
    {
      "name": "api.HTMLProgressElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"progress\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLProgressElement.max",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"progress\");\n  return !!instance && \"max\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLProgressElement.position",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"progress\");\n  return !!instance && \"position\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLProgressElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"progress\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLQuoteElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"blockquote\");\n  return bcd.testObjectName(instance, [\n    \"HTMLQuoteElement\",\n    \"HTMLBlockElement\",\n    \"HTMLBlockElementConstructor\",\n    \"HTMLBlockquoteElement\",\n    \"HTMLBlockquoteElementConstructor\"\n  ]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLQuoteElement.HTMLQuoteElement",
      "info": {
        "code": "bcd.testConstructor('HTMLQuoteElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLQuoteElement is not defined"
    },
    {
      "name": "api.HTMLQuoteElement.cite",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"blockquote\");\n  return !!instance && \"cite\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return bcd.testObjectName(instance, \"HTMLScriptElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.HTMLScriptElement",
      "info": {
        "code": "bcd.testConstructor('HTMLScriptElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLScriptElement is not defined"
    },
    {
      "name": "api.HTMLScriptElement.async",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"async\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.attributionSrc",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"attributionSrc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.blocking",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"blocking\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.charset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"charset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.defer",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"defer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.event",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"event\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.fetchPriority",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"fetchPriority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.htmlFor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"htmlFor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.integrity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"integrity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.noModule",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"noModule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.referrerPolicy.no-referrer-when-downgrade",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"no-referrer-when-downgrade\";\n  return instance.referrerPolicy == \"no-referrer-when-downgrade\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.referrerPolicy.origin-when-cross-origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"origin-when-cross-origin\";\n  return instance.referrerPolicy == \"origin-when-cross-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.referrerPolicy.unsafe-url",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  if (!(\"referrerPolicy\" in instance)) {\n    return { result: false, message: \"instance.referrerPolicy is not defined\" };\n  }\n  instance.referrerPolicy = \"unsafe-url\";\n  return instance.referrerPolicy == \"unsafe-url\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.supports_static",
      "info": {
        "code": "\"HTMLScriptElement\" in self && \"supports\" in HTMLScriptElement",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HTMLScriptElement.text",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLScriptElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"script\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return bcd.testObjectName(instance, \"HTMLSelectElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.HTMLSelectElement",
      "info": {
        "code": "bcd.testConstructor('HTMLSelectElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLSelectElement is not defined"
    },
    {
      "name": "api.HTMLSelectElement.add",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"add\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.add.index_before_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  var opt1 = document.createElement(\"option\");\n  opt1.value = \"1\";\n  opt1.text = \"Option: Value 1\";\n  instance.add(opt1);\n\n  var opt2 = document.createElement(\"option\");\n  opt2.value = \"2\";\n  opt2.text = \"Option: Value 2\";\n  instance.add(opt2);\n\n  var opt3 = document.createElement(\"option\");\n  opt3.value = \"3\";\n  opt3.text = \"Option: Value 3\";\n\n  try {\n    instance.add(opt3, 1);\n\n    return instance.options[1] === opt3;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.autocomplete",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"autocomplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.item",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.length",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.multiple",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"multiple\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.namedItem",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.options",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"options\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.remove",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"remove\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.required",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"required\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.selectedIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"selectedIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.selectedOptions",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"selectedOptions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.showPicker",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"showPicker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.size",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"select\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectedContentElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"selectedcontent\");\n  return bcd.testObjectName(instance, \"HTMLSelectedContentElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSelectedContentElement.HTMLSelectedContentElement",
      "info": {
        "code": "bcd.testConstructor('HTMLSelectedContentElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLSelectedContentElement is not defined"
    },
    {
      "name": "api.HTMLShadowElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"shadow\");\n  return bcd.testObjectName(instance, \"HTMLShadowElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLShadowElement.getDistributedNodes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"shadow\");\n  return !!instance && \"getDistributedNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSlotElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"slot\");\n  return bcd.testObjectName(instance, \"HTMLSlotElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSlotElement.HTMLSlotElement",
      "info": {
        "code": "bcd.testConstructor('HTMLSlotElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLSlotElement is not defined"
    },
    {
      "name": "api.HTMLSlotElement.assign",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"slot\");\n  return !!instance && \"assign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSlotElement.assignedElements",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"slot\");\n  return !!instance && \"assignedElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSlotElement.assignedNodes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"slot\");\n  return !!instance && \"assignedNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSlotElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"slot\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return bcd.testObjectName(instance, \"HTMLSourceElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.HTMLSourceElement",
      "info": {
        "code": "bcd.testConstructor('HTMLSourceElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLSourceElement is not defined"
    },
    {
      "name": "api.HTMLSourceElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.media",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.sizes",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"sizes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.srcset",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"srcset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSourceElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"source\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSpanElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"span\");\n  return bcd.testObjectName(instance, \"HTMLSpanElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLSpanElement.HTMLSpanElement",
      "info": {
        "code": "bcd.testConstructor('HTMLSpanElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLSpanElement is not defined"
    },
    {
      "name": "api.HTMLStyleElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return bcd.testObjectName(instance, \"HTMLStyleElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLStyleElement.HTMLStyleElement",
      "info": {
        "code": "bcd.testConstructor('HTMLStyleElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLStyleElement is not defined"
    },
    {
      "name": "api.HTMLStyleElement.blocking",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return !!instance && \"blocking\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLStyleElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLStyleElement.media",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLStyleElement.sheet",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return !!instance && \"sheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLStyleElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"style\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCaptionElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"caption\");\n  return bcd.testObjectName(instance, \"HTMLTableCaptionElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCaptionElement.HTMLTableCaptionElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableCaptionElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableCaptionElement is not defined"
    },
    {
      "name": "api.HTMLTableCaptionElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"caption\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return bcd.testObjectName(instance, [\n    \"HTMLTableCellElement\",\n    \"HTMLTableDataCellElement\"\n  ]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.HTMLTableCellElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableCellElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableCellElement is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.abbr",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"abbr\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.axis",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"axis\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.cellIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"cellIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.ch",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"ch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.chOff",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"chOff\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.colSpan",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"colSpan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.headers",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"headers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.noWrap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"noWrap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.rowSpan",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"rowSpan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.scope",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"scope\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.vAlign",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"vAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableCellElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"td\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return bcd.testObjectName(instance, \"HTMLTableColElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.HTMLTableColElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableColElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableColElement is not defined"
    },
    {
      "name": "api.HTMLTableColElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.ch",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"ch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.chOff",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"chOff\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.span",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"span\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.vAlign",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"vAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableColElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"col\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return bcd.testObjectName(instance, \"HTMLTableElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.HTMLTableElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableElement is not defined"
    },
    {
      "name": "api.HTMLTableElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.border",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"border\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.caption",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"caption\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.cellPadding",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"cellPadding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.cellSpacing",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"cellSpacing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.createCaption",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"createCaption\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.createTBody",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"createTBody\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.createTFoot",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"createTFoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.createTHead",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"createTHead\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.deleteCaption",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"deleteCaption\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.deleteRow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"deleteRow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.deleteTFoot",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"deleteTFoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.deleteTHead",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"deleteTHead\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.frame",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"frame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.insertRow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"insertRow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.rows",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"rows\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.rules",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"rules\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.summary",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"summary\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.tBodies",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"tBodies\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.tFoot",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"tFoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.tHead",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"tHead\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"table\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return bcd.testObjectName(instance, \"HTMLTableRowElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.HTMLTableRowElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableRowElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableRowElement is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.bgColor",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"bgColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.cells",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"cells\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.ch",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"ch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.chOff",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"chOff\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.deleteCell",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"deleteCell\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.insertCell",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"insertCell\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.insertCell.index_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  if (!(instance && instance.insertCell)) {\n    return { result: false, message: \"instance.insertCell is not defined\" };\n  }\n  try {\n    instance.insertCell();\n    return true;\n  } catch (e) {\n    if (\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.rowIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"rowIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.sectionRowIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"sectionRowIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableRowElement.vAlign",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tr\");\n  return !!instance && \"vAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return bcd.testObjectName(instance, \"HTMLTableSectionElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.HTMLTableSectionElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTableSectionElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTableSectionElement is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.align",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.ch",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"ch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.chOff",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"chOff\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.deleteRow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"deleteRow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.insertRow",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"insertRow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.rows",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"rows\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTableSectionElement.vAlign",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"tbody\");\n  return !!instance && \"vAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return bcd.testObjectName(instance, \"HTMLTemplateElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.HTMLTemplateElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTemplateElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTemplateElement is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.content",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"content\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.shadowRootClonable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"shadowRootClonable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.shadowRootCustomElementRegistry",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"shadowRootCustomElementRegistry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.shadowRootDelegatesFocus",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"shadowRootDelegatesFocus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.shadowRootMode",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"shadowRootMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTemplateElement.shadowRootSerializable",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"template\");\n  return !!instance && \"shadowRootSerializable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return bcd.testObjectName(instance, \"HTMLTextAreaElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.HTMLTextAreaElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTextAreaElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTextAreaElement is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.autocomplete",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"autocomplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.checkValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"checkValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.cols",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"cols\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.defaultValue",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"defaultValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.dirName",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"dirName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.form",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"form\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.labels",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"labels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.maxLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"maxLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.minLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"minLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.name",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.placeholder",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"placeholder\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.readOnly",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"readOnly\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.reportValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"reportValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.required",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"required\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.rows",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"rows\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.select",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"select\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.selectionDirection",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"selectionDirection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.selectionEnd",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"selectionEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.selectionStart",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"selectionStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.setCustomValidity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"setCustomValidity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.setRangeText",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"setRangeText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.setSelectionRange",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"setSelectionRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.textLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"textLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.validationMessage",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"validationMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.validity",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"validity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.value",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.willValidate",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"willValidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTextAreaElement.wrap",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"textarea\");\n  return !!instance && \"wrap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTimeElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"time\");\n  return bcd.testObjectName(instance, \"HTMLTimeElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTimeElement.HTMLTimeElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTimeElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTimeElement is not defined"
    },
    {
      "name": "api.HTMLTimeElement.dateTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"time\");\n  return !!instance && \"dateTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTitleElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"title\");\n  return bcd.testObjectName(instance, \"HTMLTitleElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTitleElement.HTMLTitleElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTitleElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTitleElement is not defined"
    },
    {
      "name": "api.HTMLTitleElement.text",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"title\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return bcd.testObjectName(instance, \"HTMLTrackElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.HTMLTrackElement",
      "info": {
        "code": "bcd.testConstructor('HTMLTrackElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLTrackElement is not defined"
    },
    {
      "name": "api.HTMLTrackElement.default",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"default\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.kind",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"kind\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.label",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.readyState",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.src",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.srclang",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"srclang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLTrackElement.track",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"track\");\n  return !!instance && \"track\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLUListElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ul\");\n  return bcd.testObjectName(instance, \"HTMLUListElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLUListElement.HTMLUListElement",
      "info": {
        "code": "bcd.testConstructor('HTMLUListElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLUListElement is not defined"
    },
    {
      "name": "api.HTMLUListElement.compact",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ul\");\n  return !!instance && \"compact\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLUListElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"ul\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLUnknownElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"unknown\");\n  return bcd.testObjectName(instance, \"HTMLUnknownElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return bcd.testObjectName(instance, \"HTMLVideoElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.HTMLVideoElement",
      "info": {
        "code": "bcd.testConstructor('HTMLVideoElement')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HTMLVideoElement is not defined"
    },
    {
      "name": "api.HTMLVideoElement.cancelVideoFrameCallback",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"cancelVideoFrameCallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.disablePictureInPicture",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"disablePictureInPicture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.getVideoPlaybackQuality",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"getVideoPlaybackQuality\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozDecodedFrames",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozDecodedFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozFrameDelay",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozFrameDelay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozHasAudio",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozHasAudio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozPaintedFrames",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozPaintedFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozParsedFrames",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozParsedFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.mozPresentedFrames",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"mozPresentedFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.playsInline",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"playsInline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.poster",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"poster\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.requestPictureInPicture",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"requestPictureInPicture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.requestVideoFrameCallback",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"requestVideoFrameCallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.videoHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"videoHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.videoWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"videoWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HTMLVideoElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElement(\"video\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HandwritingDrawing",
      "info": {
        "code": "\"HandwritingDrawing\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingDrawing.addStroke",
      "info": {
        "code": "\"HandwritingDrawing\" in self && \"addStroke\" in HandwritingDrawing.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingDrawing.clear",
      "info": {
        "code": "\"HandwritingDrawing\" in self && \"clear\" in HandwritingDrawing.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingDrawing.getPrediction",
      "info": {
        "code": "\"HandwritingDrawing\" in self && \"getPrediction\" in HandwritingDrawing.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingDrawing.getStrokes",
      "info": {
        "code": "\"HandwritingDrawing\" in self && \"getStrokes\" in HandwritingDrawing.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingDrawing.removeStroke",
      "info": {
        "code": "\"HandwritingDrawing\" in self && \"removeStroke\" in HandwritingDrawing.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingRecognizer",
      "info": {
        "code": "\"HandwritingRecognizer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingRecognizer.finish",
      "info": {
        "code": "\"HandwritingRecognizer\" in self && \"finish\" in HandwritingRecognizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingRecognizer.startDrawing",
      "info": {
        "code": "\"HandwritingRecognizer\" in self && \"startDrawing\" in HandwritingRecognizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingStroke",
      "info": {
        "code": "\"HandwritingStroke\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingStroke.HandwritingStroke",
      "info": {
        "code": "bcd.testConstructor('HandwritingStroke')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HandwritingStroke is not defined"
    },
    {
      "name": "api.HandwritingStroke.addPoint",
      "info": {
        "code": "\"HandwritingStroke\" in self && \"addPoint\" in HandwritingStroke.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingStroke.clear",
      "info": {
        "code": "\"HandwritingStroke\" in self && \"clear\" in HandwritingStroke.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HandwritingStroke.getPoints",
      "info": {
        "code": "\"HandwritingStroke\" in self && \"getPoints\" in HandwritingStroke.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HashChangeEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new HashChangeEvent(\"hashchange\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"HashChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HashChangeEvent.HashChangeEvent",
      "info": {
        "code": "bcd.testConstructor('HashChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: HashChangeEvent is not defined"
    },
    {
      "name": "api.HashChangeEvent.newURL",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new HashChangeEvent(\"hashchange\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"HashChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"newURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.HashChangeEvent.oldURL",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new HashChangeEvent(\"hashchange\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"HashChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"oldURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Headers",
      "info": {
        "code": "\"Headers\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"Headers\" in self && !!(Headers.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.Headers",
      "info": {
        "code": "bcd.testConstructor('Headers')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.Headers.append",
      "info": {
        "code": "\"Headers\" in self && \"append\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.delete",
      "info": {
        "code": "\"Headers\" in self && \"delete\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.entries",
      "info": {
        "code": "\"Headers\" in self && \"entries\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.forEach",
      "info": {
        "code": "\"Headers\" in self && \"forEach\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.get",
      "info": {
        "code": "\"Headers\" in self && \"get\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.getSetCookie",
      "info": {
        "code": "\"Headers\" in self && \"getSetCookie\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.has",
      "info": {
        "code": "\"Headers\" in self && \"has\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.iterate_lexicographically",
      "info": {
        "code": "(function () {\n  if (!(\"Headers\" in self)) {\n    return { result: false, message: \"Headers is not defined\" };\n  }\n  var h = new Headers({ \"X-Framework\": \"web2py\", \"Content-Type\": \"text/xml\" });\n  var entry = h.entries().next().value;\n  // If the headers are sorted, the first entry should be 'Content-Type'\n  return entry[0].toLowerCase() === \"content-type\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.keys",
      "info": {
        "code": "\"Headers\" in self && \"keys\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.set",
      "info": {
        "code": "\"Headers\" in self && \"set\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Headers.values",
      "info": {
        "code": "\"Headers\" in self && \"values\" in Headers.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Highlight",
      "info": {
        "code": "\"Highlight\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"Highlight\" in self && !!(Highlight.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.Highlight",
      "info": {
        "code": "bcd.testConstructor('Highlight')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Highlight is not defined"
    },
    {
      "name": "api.Highlight.add",
      "info": {
        "code": "\"Highlight\" in self && \"add\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.clear",
      "info": {
        "code": "\"Highlight\" in self && \"clear\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.delete",
      "info": {
        "code": "\"Highlight\" in self && \"delete\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.entries",
      "info": {
        "code": "\"Highlight\" in self && \"entries\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.forEach",
      "info": {
        "code": "\"Highlight\" in self && \"forEach\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.has",
      "info": {
        "code": "\"Highlight\" in self && \"has\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.keys",
      "info": {
        "code": "\"Highlight\" in self && \"keys\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.priority",
      "info": {
        "code": "\"Highlight\" in self && \"priority\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.size",
      "info": {
        "code": "\"Highlight\" in self && \"size\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.type",
      "info": {
        "code": "\"Highlight\" in self && \"type\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Highlight.values",
      "info": {
        "code": "\"Highlight\" in self && \"values\" in Highlight.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry",
      "info": {
        "code": "\"HighlightRegistry\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"HighlightRegistry\" in self && !!(HighlightRegistry.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.clear",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"clear\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.delete",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"delete\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.entries",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"entries\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.forEach",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"forEach\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.get",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"get\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.has",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"has\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.highlightsFromPoint",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"highlightsFromPoint\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.keys",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"keys\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.set",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"set\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.size",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"size\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.HighlightRegistry.values",
      "info": {
        "code": "\"HighlightRegistry\" in self && \"values\" in HighlightRegistry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.History",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.back",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"back\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.forward",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"forward\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.go",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"go\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.length",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.pushState",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"pushState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.replaceState",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"replaceState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.scrollRestoration",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"scrollRestoration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.History.state",
      "info": {
        "code": "(function () {\n  var instance = history;\n  return !!instance && \"state\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: history is not defined"
    },
    {
      "name": "api.IDBCursor",
      "info": {
        "code": "\"IDBCursor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.advance",
      "info": {
        "code": "\"IDBCursor\" in self && \"advance\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.continue",
      "info": {
        "code": "\"IDBCursor\" in self && \"continue\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.continuePrimaryKey",
      "info": {
        "code": "\"IDBCursor\" in self && \"continuePrimaryKey\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.delete",
      "info": {
        "code": "\"IDBCursor\" in self && \"delete\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.direction",
      "info": {
        "code": "\"IDBCursor\" in self && \"direction\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.key",
      "info": {
        "code": "\"IDBCursor\" in self && \"key\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.primaryKey",
      "info": {
        "code": "\"IDBCursor\" in self && \"primaryKey\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.request",
      "info": {
        "code": "\"IDBCursor\" in self && \"request\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.source",
      "info": {
        "code": "\"IDBCursor\" in self && \"source\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursor.update",
      "info": {
        "code": "\"IDBCursor\" in self && \"update\" in IDBCursor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursorWithValue",
      "info": {
        "code": "\"IDBCursorWithValue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBCursorWithValue.value",
      "info": {
        "code": "\"IDBCursorWithValue\" in self && \"value\" in IDBCursorWithValue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBDatabase",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.close",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"close\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.createObjectStore",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"createObjectStore\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.deleteObjectStore",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"deleteObjectStore\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.name",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"name\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.objectStoreNames",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"objectStoreNames\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.transaction",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"transaction\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBDatabase.version",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var req = idb.open(\"collector\");\n  if (!req) {\n    return { result: false, message: \"req is falsy\" };\n  }\n  req.onsuccess = function () {\n    callback(req.result);\n  };\n  req.onerror = function (event) {\n    fail(event.message);\n  };\n  function callback(instance) {\n    try {\n      success(!!instance && \"version\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBFactory",
      "info": {
        "code": "(function () {\n  var instance =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBFactory.cmp",
      "info": {
        "code": "(function () {\n  var instance =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  return !!instance && \"cmp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBFactory.databases",
      "info": {
        "code": "(function () {\n  var instance =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  return !!instance && \"databases\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBFactory.deleteDatabase",
      "info": {
        "code": "(function () {\n  var instance =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  return !!instance && \"deleteDatabase\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBFactory.open",
      "info": {
        "code": "(function () {\n  var instance =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex",
      "info": {
        "code": "\"IDBIndex\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.count",
      "info": {
        "code": "\"IDBIndex\" in self && \"count\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.get",
      "info": {
        "code": "\"IDBIndex\" in self && \"get\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.getAll",
      "info": {
        "code": "\"IDBIndex\" in self && \"getAll\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.getAllKeys",
      "info": {
        "code": "\"IDBIndex\" in self && \"getAllKeys\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.getAllRecords",
      "info": {
        "code": "\"IDBIndex\" in self && \"getAllRecords\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.getKey",
      "info": {
        "code": "\"IDBIndex\" in self && \"getKey\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.isAutoLocale",
      "info": {
        "code": "\"IDBIndex\" in self && \"isAutoLocale\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.keyPath",
      "info": {
        "code": "\"IDBIndex\" in self && \"keyPath\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.locale",
      "info": {
        "code": "\"IDBIndex\" in self && \"locale\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.multiEntry",
      "info": {
        "code": "\"IDBIndex\" in self && \"multiEntry\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.name",
      "info": {
        "code": "\"IDBIndex\" in self && \"name\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.objectStore",
      "info": {
        "code": "\"IDBIndex\" in self && \"objectStore\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.openCursor",
      "info": {
        "code": "\"IDBIndex\" in self && \"openCursor\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.openKeyCursor",
      "info": {
        "code": "\"IDBIndex\" in self && \"openKeyCursor\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBIndex.unique",
      "info": {
        "code": "\"IDBIndex\" in self && \"unique\" in IDBIndex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange",
      "info": {
        "code": "\"IDBKeyRange\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.bound_static",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"bound\" in IDBKeyRange",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.includes",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"includes\" in IDBKeyRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.lower",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"lower\" in IDBKeyRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.lowerBound_static",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"lowerBound\" in IDBKeyRange",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.lowerOpen",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"lowerOpen\" in IDBKeyRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.only_static",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"only\" in IDBKeyRange",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.upper",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"upper\" in IDBKeyRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.upperBound_static",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"upperBound\" in IDBKeyRange",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBKeyRange.upperOpen",
      "info": {
        "code": "\"IDBKeyRange\" in self && \"upperOpen\" in IDBKeyRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBLocaleAwareKeyRange",
      "info": {
        "code": "\"IDBLocaleAwareKeyRange\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore",
      "info": {
        "code": "\"IDBObjectStore\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.add",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"add\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.autoIncrement",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"autoIncrement\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.clear",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"clear\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.count",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"count\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.createIndex",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"createIndex\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.delete",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"delete\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.deleteIndex",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"deleteIndex\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.get",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"get\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.getAll",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"getAll\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.getAllKeys",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"getAllKeys\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.getAllRecords",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"getAllRecords\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.getKey",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"getKey\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.index",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"index\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.indexNames",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"indexNames\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.keyPath",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"keyPath\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.name",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"name\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.openCursor",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"openCursor\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.openKeyCursor",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"openKeyCursor\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.put",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"put\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBObjectStore.transaction",
      "info": {
        "code": "\"IDBObjectStore\" in self && \"transaction\" in IDBObjectStore.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBOpenDBRequest",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRecord",
      "info": {
        "code": "\"IDBRecord\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBRecord.key",
      "info": {
        "code": "\"IDBRecord\" in self && \"key\" in IDBRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBRecord.primaryKey",
      "info": {
        "code": "\"IDBRecord\" in self && \"primaryKey\" in IDBRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBRecord.value",
      "info": {
        "code": "\"IDBRecord\" in self && \"value\" in IDBRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBRequest",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRequest.error",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRequest.readyState",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRequest.result",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRequest.source",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance && \"source\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBRequest.transaction",
      "info": {
        "code": "(function () {\n  var idb =\n    self.indexedDB ||\n    self.mozIndexedDB ||\n    self.webkitIndexedDB ||\n    self.msIndexedDB;\n  if (!idb) {\n    return { result: false, message: \"idb is falsy\" };\n  }\n  var instance = idb.open(\"collector\");\n  return !!instance && \"transaction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "idb is falsy"
    },
    {
      "name": "api.IDBTransaction",
      "info": {
        "code": "\"IDBTransaction\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.abort",
      "info": {
        "code": "\"IDBTransaction\" in self && \"abort\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.commit",
      "info": {
        "code": "\"IDBTransaction\" in self && \"commit\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.db",
      "info": {
        "code": "\"IDBTransaction\" in self && \"db\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.durability",
      "info": {
        "code": "\"IDBTransaction\" in self && \"durability\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.error",
      "info": {
        "code": "\"IDBTransaction\" in self && \"error\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.mode",
      "info": {
        "code": "\"IDBTransaction\" in self && \"mode\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.objectStore",
      "info": {
        "code": "\"IDBTransaction\" in self && \"objectStore\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBTransaction.objectStoreNames",
      "info": {
        "code": "\"IDBTransaction\" in self && \"objectStoreNames\" in IDBTransaction.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IDBVersionChangeEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new IDBVersionChangeEvent(\"upgradeneeded\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"IDBVersionChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.IDBVersionChangeEvent.IDBVersionChangeEvent",
      "info": {
        "code": "bcd.testConstructor('IDBVersionChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IDBVersionChangeEvent is not defined"
    },
    {
      "name": "api.IDBVersionChangeEvent.newVersion",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new IDBVersionChangeEvent(\"upgradeneeded\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"IDBVersionChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"newVersion\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.IDBVersionChangeEvent.oldVersion",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new IDBVersionChangeEvent(\"upgradeneeded\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"IDBVersionChangeEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"oldVersion\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.IIRFilterNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createIIRFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createIIRFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createIIRFilter([1], [1]);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.IIRFilterNode.IIRFilterNode",
      "info": {
        "code": "bcd.testConstructor('IIRFilterNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IIRFilterNode is not defined"
    },
    {
      "name": "api.IIRFilterNode.getFrequencyResponse",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createIIRFilter\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createIIRFilter is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createIIRFilter([1], [1]);\n  return !!instance && \"getFrequencyResponse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.IdentityCredential",
      "info": {
        "code": "\"IdentityCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredential.configURL",
      "info": {
        "code": "\"IdentityCredential\" in self && \"configURL\" in IdentityCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredential.disconnect_static",
      "info": {
        "code": "\"IdentityCredential\" in self && \"disconnect\" in IdentityCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredential.isAutoSelected",
      "info": {
        "code": "\"IdentityCredential\" in self && \"isAutoSelected\" in IdentityCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredential.token",
      "info": {
        "code": "\"IdentityCredential\" in self && \"token\" in IdentityCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredentialError",
      "info": {
        "code": "\"IdentityCredentialError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredentialError.IdentityCredentialError",
      "info": {
        "code": "bcd.testConstructor('IdentityCredentialError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IdentityCredentialError is not defined"
    },
    {
      "name": "api.IdentityCredentialError.error",
      "info": {
        "code": "\"IdentityCredentialError\" in self && \"error\" in IdentityCredentialError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityCredentialError.url",
      "info": {
        "code": "\"IdentityCredentialError\" in self && \"url\" in IdentityCredentialError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityProvider",
      "info": {
        "code": "\"IdentityProvider\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityProvider.close_static",
      "info": {
        "code": "\"IdentityProvider\" in self && \"close\" in IdentityProvider",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityProvider.getUserInfo_static",
      "info": {
        "code": "\"IdentityProvider\" in self && \"getUserInfo\" in IdentityProvider",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdentityProvider.resolve_static",
      "info": {
        "code": "\"IdentityProvider\" in self && \"resolve\" in IdentityProvider",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDeadline",
      "info": {
        "code": "\"IdleDeadline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDeadline.didTimeout",
      "info": {
        "code": "\"IdleDeadline\" in self && \"didTimeout\" in IdleDeadline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDeadline.timeRemaining",
      "info": {
        "code": "\"IdleDeadline\" in self && \"timeRemaining\" in IdleDeadline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDetector",
      "info": {
        "code": "\"IdleDetector\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDetector.IdleDetector",
      "info": {
        "code": "bcd.testConstructor('IdleDetector')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IdleDetector is not defined"
    },
    {
      "name": "api.IdleDetector.requestPermission_static",
      "info": {
        "code": "\"IdleDetector\" in self && \"requestPermission\" in IdleDetector",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDetector.screenState",
      "info": {
        "code": "\"IdleDetector\" in self && \"screenState\" in IdleDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDetector.start",
      "info": {
        "code": "\"IdleDetector\" in self && \"start\" in IdleDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IdleDetector.userState",
      "info": {
        "code": "\"IdleDetector\" in self && \"userState\" in IdleDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageBitmap",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmap\n    return {\n      result: null,\n      message: \"Testing ImageBitmap in workers is not yet implemented\"\n    };\n  }\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"Cannot create image bitmap\" };\n  }\n  var promise = createImageBitmap(\n    document.getElementById(\"resource-image-black\")\n  );\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmap in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmap.close",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmap\n    return {\n      result: null,\n      message: \"Testing ImageBitmap in workers is not yet implemented\"\n    };\n  }\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"Cannot create image bitmap\" };\n  }\n  var promise = createImageBitmap(\n    document.getElementById(\"resource-image-black\")\n  );\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"close\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmap in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmap.height",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmap\n    return {\n      result: null,\n      message: \"Testing ImageBitmap in workers is not yet implemented\"\n    };\n  }\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"Cannot create image bitmap\" };\n  }\n  var promise = createImageBitmap(\n    document.getElementById(\"resource-image-black\")\n  );\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"height\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmap in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmap.width",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmap\n    return {\n      result: null,\n      message: \"Testing ImageBitmap in workers is not yet implemented\"\n    };\n  }\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"Cannot create image bitmap\" };\n  }\n  var promise = createImageBitmap(\n    document.getElementById(\"resource-image-black\")\n  );\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"width\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmap in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmapRenderingContext",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmapRenderingContext\n    return {\n      result: null,\n      message:\n        \"Testing ImageBitmapRenderingContext in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"bitmaprenderer\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmapRenderingContext in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmapRenderingContext.canvas",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmapRenderingContext\n    return {\n      result: null,\n      message:\n        \"Testing ImageBitmapRenderingContext in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"bitmaprenderer\");\n  return !!instance && \"canvas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmapRenderingContext in workers is not yet implemented"
    },
    {
      "name": "api.ImageBitmapRenderingContext.transferFromImageBitmap",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for ImageBitmapRenderingContext\n    return {\n      result: null,\n      message:\n        \"Testing ImageBitmapRenderingContext in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var instance = canvas.getContext(\"bitmaprenderer\");\n  return !!instance && \"transferFromImageBitmap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing ImageBitmapRenderingContext in workers is not yet implemented"
    },
    {
      "name": "api.ImageCapture",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageCapture.ImageCapture",
      "info": {
        "code": "bcd.testConstructor('ImageCapture')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ImageCapture is not defined"
    },
    {
      "name": "api.ImageCapture.getPhotoCapabilities",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"getPhotoCapabilities\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageCapture.getPhotoSettings",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"getPhotoSettings\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageCapture.grabFrame",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"grabFrame\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageCapture.takePhoto",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"takePhoto\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageCapture.track",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  if (!(\"ImageCapture\" in self)) {\n    return { result: false, message: \"ImageCapture is not defined\" };\n  }\n  var stream = mediaDevices.getUserMedia({ video: true });\n  stream.then(function () {});\n  var promise = stream.then(function (s) {\n    var tracks = s.getVideoTracks();\n    return new ImageCapture(tracks[0]);\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"track\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ImageData",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageData.ImageData",
      "info": {
        "code": "bcd.testConstructor('ImageData')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ImageData is not defined"
    },
    {
      "name": "api.ImageData.ImageData.settings_parameter",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  if (!(\"ImageData\" in self)) {\n    return { result: false, message: \"ImageData is not defined\" };\n  }\n  instance = new ImageData(new Uint8ClampedArray(4 * 16 * 16), 16, 16, {\n    colorSpace: \"display-p3\"\n  });\n  return instance.colorSpace == \"display-p3\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ImageData is not defined"
    },
    {
      "name": "api.ImageData.ImageData.settings_parameter.colorSpace_option",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  if (!(\"ImageData\" in self)) {\n    return { result: false, message: \"ImageData is not defined\" };\n  }\n  instance = new ImageData(new Uint8ClampedArray(4 * 16 * 16), 16, 16, {\n    colorSpace: \"display-p3\"\n  });\n  return instance.colorSpace == \"display-p3\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ImageData is not defined"
    },
    {
      "name": "api.ImageData.ImageData.settings_parameter.desynchronized_option",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  if (!(\"ImageData\" in self)) {\n    return { result: false, message: \"ImageData is not defined\" };\n  }\n  instance = new ImageData(new Uint8ClampedArray(4 * 16 * 16), 16, 16, {\n    desynchronized: true\n  });\n  return instance.desynchronized == true;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ImageData is not defined"
    },
    {
      "name": "api.ImageData.ImageData.settings_parameter.pixelFormat_option",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  if (!(\"ImageData\" in self)) {\n    return { result: false, message: \"ImageData is not defined\" };\n  }\n  instance = new ImageData(new Uint8ClampedArray(4 * 16 * 16), 16, 16, {\n    pixelFormat: \"rgba-float16\"\n  });\n  return instance.pixelFormat == \"rgba-float16\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ImageData is not defined"
    },
    {
      "name": "api.ImageData.colorSpace",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance && \"colorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageData.data",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageData.height",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageData.pixelFormat",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance && \"pixelFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageData.width",
      "info": {
        "code": "(function () {\n  var instance;\n  if (\"ImageData\" in self) {\n    instance = new ImageData(5, 5);\n  } else if (\"document\" in self) {\n    if (!(\"document\" in self)) {\n      // XXX Implement worker tests for CanvasRenderingContext2D\n      return {\n        result: null,\n        message:\n          \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n      };\n    }\n    var canvas = document.createElement(\"canvas\");\n    if (!canvas) {\n      return { result: false, message: \"Could not create canvas element\" };\n    }\n    var ctx = canvas.getContext(\"2d\");\n    if (!ctx) {\n      return { result: false, message: \"ctx is falsy\" };\n    }\n    instance = ctx.createImageData(16, 16);\n  }\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder",
      "info": {
        "code": "\"ImageDecoder\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.ImageDecoder",
      "info": {
        "code": "bcd.testConstructor('ImageDecoder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ImageDecoder is not defined"
    },
    {
      "name": "api.ImageDecoder.close",
      "info": {
        "code": "\"ImageDecoder\" in self && \"close\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.complete",
      "info": {
        "code": "\"ImageDecoder\" in self && \"complete\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.completed",
      "info": {
        "code": "\"ImageDecoder\" in self && \"completed\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.decode",
      "info": {
        "code": "\"ImageDecoder\" in self && \"decode\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.isTypeSupported_static",
      "info": {
        "code": "\"ImageDecoder\" in self && \"isTypeSupported\" in ImageDecoder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.reset",
      "info": {
        "code": "\"ImageDecoder\" in self && \"reset\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.tracks",
      "info": {
        "code": "\"ImageDecoder\" in self && \"tracks\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageDecoder.type",
      "info": {
        "code": "\"ImageDecoder\" in self && \"type\" in ImageDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrack",
      "info": {
        "code": "\"ImageTrack\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrack.animated",
      "info": {
        "code": "\"ImageTrack\" in self && \"animated\" in ImageTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrack.frameCount",
      "info": {
        "code": "\"ImageTrack\" in self && \"frameCount\" in ImageTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrack.repetitionCount",
      "info": {
        "code": "\"ImageTrack\" in self && \"repetitionCount\" in ImageTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrack.selected",
      "info": {
        "code": "\"ImageTrack\" in self && \"selected\" in ImageTrack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrackList",
      "info": {
        "code": "\"ImageTrackList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrackList.length",
      "info": {
        "code": "\"ImageTrackList\" in self && \"length\" in ImageTrackList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrackList.ready",
      "info": {
        "code": "\"ImageTrackList\" in self && \"ready\" in ImageTrackList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrackList.selectedIndex",
      "info": {
        "code": "\"ImageTrackList\" in self && \"selectedIndex\" in ImageTrackList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ImageTrackList.selectedTrack",
      "info": {
        "code": "\"ImageTrackList\" in self && \"selectedTrack\" in ImageTrackList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Ink",
      "info": {
        "code": "\"Ink\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Ink.requestPresenter",
      "info": {
        "code": "\"Ink\" in self && \"requestPresenter\" in Ink.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InputDeviceCapabilities",
      "info": {
        "code": "\"InputDeviceCapabilities\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InputDeviceCapabilities.InputDeviceCapabilities",
      "info": {
        "code": "bcd.testConstructor('InputDeviceCapabilities')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: InputDeviceCapabilities is not defined"
    },
    {
      "name": "api.InputDeviceCapabilities.firesTouchEvents",
      "info": {
        "code": "\"InputDeviceCapabilities\" in self && \"firesTouchEvents\" in InputDeviceCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InputDeviceCapabilities.pointerMovementScrolls",
      "info": {
        "code": "\"InputDeviceCapabilities\" in self && \"pointerMovementScrolls\" in InputDeviceCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InputDeviceInfo",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      for (var i = 0; i < devices.length; i++) {\n        if (\n          devices[i].kind == \"audioinput\" ||\n          devices[i].kind == \"videoinput\"\n        ) {\n          return devices[i];\n        }\n      }\n    });\n  promise.then(function (inst) {\n    if (!(\"getCapabilities\" in inst)) {\n      return {\n        result: false,\n        message:\n          \"Instance is only parent type MediaDeviceInfo, not InputDeviceInfo\"\n      };\n    }\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.InputDeviceInfo.getCapabilities",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      for (var i = 0; i < devices.length; i++) {\n        if (\n          devices[i].kind == \"audioinput\" ||\n          devices[i].kind == \"videoinput\"\n        ) {\n          return devices[i];\n        }\n      }\n    });\n  promise.then(function (inst) {\n    if (!(\"getCapabilities\" in inst)) {\n      return {\n        result: false,\n        message:\n          \"Instance is only parent type MediaDeviceInfo, not InputDeviceInfo\"\n      };\n    }\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"getCapabilities\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.InputEvent",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.InputEvent",
      "info": {
        "code": "bcd.testConstructor('InputEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.data",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.dataTransfer",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance && \"dataTransfer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.getTargetRanges",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance && \"getTargetRanges\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.inputType",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance && \"inputType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.InputEvent.isComposing",
      "info": {
        "code": "(function () {\n  if (!(\"InputEvent\" in self)) {\n    return { result: false, message: \"InputEvent is not defined\" };\n  }\n  var instance = new InputEvent(\"input\");\n  return !!instance && \"isComposing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InputEvent is not defined"
    },
    {
      "name": "api.IntersectionObserver",
      "info": {
        "code": "\"IntersectionObserver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.IntersectionObserver",
      "info": {
        "code": "bcd.testConstructor('IntersectionObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IntersectionObserver is not defined"
    },
    {
      "name": "api.IntersectionObserver.IntersectionObserver.options_root_parameter_Document",
      "info": {
        "code": "(function () {\n  if (!(\"IntersectionObserver\" in self)) {\n    return { result: false, message: \"IntersectionObserver is not defined\" };\n  }\n  try {\n    new IntersectionObserver(function () {}, { root: document });\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "IntersectionObserver is not defined"
    },
    {
      "name": "api.IntersectionObserver.delay",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"delay\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.disconnect",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"disconnect\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.observe",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"observe\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.root",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"root\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.rootMargin",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"rootMargin\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.scrollMargin",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"scrollMargin\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.takeRecords",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"takeRecords\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.thresholds",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"thresholds\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.trackVisibility",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"trackVisibility\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserver.unobserve",
      "info": {
        "code": "\"IntersectionObserver\" in self && \"unobserve\" in IntersectionObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.IntersectionObserverEntry",
      "info": {
        "code": "bcd.testConstructor('IntersectionObserverEntry')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: IntersectionObserverEntry is not defined"
    },
    {
      "name": "api.IntersectionObserverEntry.boundingClientRect",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"boundingClientRect\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.intersectionRatio",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"intersectionRatio\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.intersectionRect",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"intersectionRect\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.isIntersecting",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"isIntersecting\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.isVisible",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"isVisible\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.rootBounds",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"rootBounds\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.target",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"target\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.IntersectionObserverEntry.time",
      "info": {
        "code": "\"IntersectionObserverEntry\" in self && \"time\" in IntersectionObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InvokeEvent",
      "info": {
        "code": "\"InvokeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InvokeEvent.InvokeEvent",
      "info": {
        "code": "bcd.testConstructor('InvokeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: InvokeEvent is not defined"
    },
    {
      "name": "api.InvokeEvent.action",
      "info": {
        "code": "\"InvokeEvent\" in self && \"action\" in InvokeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.InvokeEvent.invoker",
      "info": {
        "code": "\"InvokeEvent\" in self && \"invoker\" in InvokeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KHR_parallel_shader_compile",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"KHR_parallel_shader_compile\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.Keyboard",
      "info": {
        "code": "\"Keyboard\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Keyboard.getLayoutMap",
      "info": {
        "code": "\"Keyboard\" in self && \"getLayoutMap\" in Keyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Keyboard.lock",
      "info": {
        "code": "\"Keyboard\" in self && \"lock\" in Keyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Keyboard.unlock",
      "info": {
        "code": "\"Keyboard\" in self && \"unlock\" in Keyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.KeyboardEvent",
      "info": {
        "code": "bcd.testConstructor('KeyboardEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: KeyboardEvent is not defined"
    },
    {
      "name": "api.KeyboardEvent.altKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"altKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.charCode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"charCode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.code",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"code\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.ctrlKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"ctrlKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.getModifierState",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"getModifierState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.initKeyboardEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initKeyboardEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.isComposing",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"isComposing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.key",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"key\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.keyCode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"keyCode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.keyIdentifier",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"keyIdentifier\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.location",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"location\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.metaKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"metaKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.repeat",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"repeat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardEvent.shiftKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new KeyboardEvent(\"keypress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"KeyboardEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"shiftKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.KeyboardLayoutMap",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"KeyboardLayoutMap\" in self && !!(KeyboardLayoutMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.entries",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"entries\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.forEach",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"forEach\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.get",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"get\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.has",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"has\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.keys",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"keys\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.size",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"size\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyboardLayoutMap.values",
      "info": {
        "code": "\"KeyboardLayoutMap\" in self && \"values\" in KeyboardLayoutMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect",
      "info": {
        "code": "\"KeyframeEffect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.KeyframeEffect",
      "info": {
        "code": "bcd.testConstructor('KeyframeEffect')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: KeyframeEffect is not defined"
    },
    {
      "name": "api.KeyframeEffect.composite",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"composite\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.getKeyframes",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"getKeyframes\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.iterationComposite",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"iterationComposite\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.pseudoElement",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"pseudoElement\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.setKeyframes",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"setKeyframes\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.KeyframeEffect.target",
      "info": {
        "code": "\"KeyframeEffect\" in self && \"target\" in KeyframeEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector",
      "info": {
        "code": "\"LanguageDetector\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.availability_static",
      "info": {
        "code": "\"LanguageDetector\" in self && \"availability\" in LanguageDetector",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.create_static",
      "info": {
        "code": "\"LanguageDetector\" in self && \"create\" in LanguageDetector",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.destroy",
      "info": {
        "code": "\"LanguageDetector\" in self && \"destroy\" in LanguageDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.detect",
      "info": {
        "code": "\"LanguageDetector\" in self && \"detect\" in LanguageDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.expectedInputLanguages",
      "info": {
        "code": "\"LanguageDetector\" in self && \"expectedInputLanguages\" in LanguageDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.inputQuota",
      "info": {
        "code": "\"LanguageDetector\" in self && \"inputQuota\" in LanguageDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LanguageDetector.measureInputUsage",
      "info": {
        "code": "\"LanguageDetector\" in self && \"measureInputUsage\" in LanguageDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint",
      "info": {
        "code": "\"LargestContentfulPaint\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.element",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"element\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.id",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"id\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.loadTime",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"loadTime\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.paintTime",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"paintTime\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.presentationTime",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"presentationTime\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.renderTime",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"renderTime\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.size",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"size\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.toJSON",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"toJSON\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LargestContentfulPaint.url",
      "info": {
        "code": "\"LargestContentfulPaint\" in self && \"url\" in LargestContentfulPaint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LaunchParams",
      "info": {
        "code": "\"LaunchParams\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LaunchParams.files",
      "info": {
        "code": "\"LaunchParams\" in self && \"files\" in LaunchParams.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LaunchParams.targetURL",
      "info": {
        "code": "\"LaunchParams\" in self && \"targetURL\" in LaunchParams.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LaunchQueue",
      "info": {
        "code": "\"LaunchQueue\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LaunchQueue.setConsumer",
      "info": {
        "code": "\"LaunchQueue\" in self && \"setConsumer\" in LaunchQueue.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift",
      "info": {
        "code": "\"LayoutShift\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift.hadRecentInput",
      "info": {
        "code": "\"LayoutShift\" in self && \"hadRecentInput\" in LayoutShift.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift.lastInputTime",
      "info": {
        "code": "\"LayoutShift\" in self && \"lastInputTime\" in LayoutShift.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift.sources",
      "info": {
        "code": "\"LayoutShift\" in self && \"sources\" in LayoutShift.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift.toJSON",
      "info": {
        "code": "\"LayoutShift\" in self && \"toJSON\" in LayoutShift.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShift.value",
      "info": {
        "code": "\"LayoutShift\" in self && \"value\" in LayoutShift.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShiftAttribution",
      "info": {
        "code": "\"LayoutShiftAttribution\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShiftAttribution.currentRect",
      "info": {
        "code": "\"LayoutShiftAttribution\" in self && \"currentRect\" in LayoutShiftAttribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShiftAttribution.node",
      "info": {
        "code": "\"LayoutShiftAttribution\" in self && \"node\" in LayoutShiftAttribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShiftAttribution.previousRect",
      "info": {
        "code": "\"LayoutShiftAttribution\" in self && \"previousRect\" in LayoutShiftAttribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LayoutShiftAttribution.toJSON",
      "info": {
        "code": "\"LayoutShiftAttribution\" in self && \"toJSON\" in LayoutShiftAttribution.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LinearAccelerationSensor",
      "info": {
        "code": "\"LinearAccelerationSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LinearAccelerationSensor.LinearAccelerationSensor",
      "info": {
        "code": "bcd.testConstructor('LinearAccelerationSensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: LinearAccelerationSensor is not defined"
    },
    {
      "name": "api.Location",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.ancestorOrigins",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"ancestorOrigins\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.assign",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"assign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.hash",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.host",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.hostname",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.href",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.origin",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.pathname",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.port",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.protocol",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.reload",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"reload\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.replace",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"replace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.search",
      "info": {
        "code": "(function () {\n  var instance = location;\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Location.toString",
      "info": {
        "code": "(function () {\n  var instance = location;\n  if (!(\"toString\" in instance)) {\n    return { result: false, message: \"toString is not defined\" };\n  }\n  return instance.toString() == instance.href;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: location is not defined"
    },
    {
      "name": "api.Lock",
      "info": {
        "code": "\"Lock\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Lock.mode",
      "info": {
        "code": "\"Lock\" in self && \"mode\" in Lock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Lock.name",
      "info": {
        "code": "\"Lock\" in self && \"name\" in Lock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LockManager",
      "info": {
        "code": "\"LockManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LockManager.query",
      "info": {
        "code": "\"LockManager\" in self && \"query\" in LockManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.LockManager.request",
      "info": {
        "code": "\"LockManager\" in self && \"request\" in LockManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIAccess",
      "info": {
        "code": "\"MIDIAccess\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIAccess.inputs",
      "info": {
        "code": "\"MIDIAccess\" in self && \"inputs\" in MIDIAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIAccess.outputs",
      "info": {
        "code": "\"MIDIAccess\" in self && \"outputs\" in MIDIAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIAccess.sysexEnabled",
      "info": {
        "code": "\"MIDIAccess\" in self && \"sysexEnabled\" in MIDIAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIConnectionEvent",
      "info": {
        "code": "\"MIDIConnectionEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIConnectionEvent.MIDIConnectionEvent",
      "info": {
        "code": "bcd.testConstructor('MIDIConnectionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MIDIConnectionEvent is not defined"
    },
    {
      "name": "api.MIDIConnectionEvent.port",
      "info": {
        "code": "\"MIDIConnectionEvent\" in self && \"port\" in MIDIConnectionEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInput",
      "info": {
        "code": "\"MIDIInput\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap",
      "info": {
        "code": "\"MIDIInputMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"MIDIInputMap\" in self && !!(MIDIInputMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.entries",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"entries\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.forEach",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"forEach\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.get",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"get\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.has",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"has\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.keys",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"keys\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.size",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"size\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIInputMap.values",
      "info": {
        "code": "\"MIDIInputMap\" in self && \"values\" in MIDIInputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIMessageEvent",
      "info": {
        "code": "\"MIDIMessageEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIMessageEvent.MIDIMessageEvent",
      "info": {
        "code": "bcd.testConstructor('MIDIMessageEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MIDIMessageEvent is not defined"
    },
    {
      "name": "api.MIDIMessageEvent.data",
      "info": {
        "code": "\"MIDIMessageEvent\" in self && \"data\" in MIDIMessageEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutput",
      "info": {
        "code": "\"MIDIOutput\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutput.clear",
      "info": {
        "code": "\"MIDIOutput\" in self && \"clear\" in MIDIOutput.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutput.send",
      "info": {
        "code": "\"MIDIOutput\" in self && \"send\" in MIDIOutput.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap",
      "info": {
        "code": "\"MIDIOutputMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"MIDIOutputMap\" in self && !!(MIDIOutputMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.entries",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"entries\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.forEach",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"forEach\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.get",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"get\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.has",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"has\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.keys",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"keys\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.size",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"size\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIOutputMap.values",
      "info": {
        "code": "\"MIDIOutputMap\" in self && \"values\" in MIDIOutputMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort",
      "info": {
        "code": "\"MIDIPort\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.close",
      "info": {
        "code": "\"MIDIPort\" in self && \"close\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.connection",
      "info": {
        "code": "\"MIDIPort\" in self && \"connection\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.id",
      "info": {
        "code": "\"MIDIPort\" in self && \"id\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.manufacturer",
      "info": {
        "code": "\"MIDIPort\" in self && \"manufacturer\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.name",
      "info": {
        "code": "\"MIDIPort\" in self && \"name\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.open",
      "info": {
        "code": "\"MIDIPort\" in self && \"open\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.state",
      "info": {
        "code": "\"MIDIPort\" in self && \"state\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.type",
      "info": {
        "code": "\"MIDIPort\" in self && \"type\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MIDIPort.version",
      "info": {
        "code": "\"MIDIPort\" in self && \"version\" in MIDIPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ML",
      "info": {
        "code": "\"ML\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ML.createContext",
      "info": {
        "code": "\"ML\" in self && \"createContext\" in ML.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext",
      "info": {
        "code": "\"MLContext\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.createConstantTensor",
      "info": {
        "code": "\"MLContext\" in self && \"createConstantTensor\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.createTensor",
      "info": {
        "code": "\"MLContext\" in self && \"createTensor\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.destroy",
      "info": {
        "code": "\"MLContext\" in self && \"destroy\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.dispatch",
      "info": {
        "code": "\"MLContext\" in self && \"dispatch\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.lost",
      "info": {
        "code": "\"MLContext\" in self && \"lost\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.opSupportLimits",
      "info": {
        "code": "\"MLContext\" in self && \"opSupportLimits\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.readTensor",
      "info": {
        "code": "\"MLContext\" in self && \"readTensor\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLContext.writeTensor",
      "info": {
        "code": "\"MLContext\" in self && \"writeTensor\" in MLContext.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraph",
      "info": {
        "code": "\"MLGraph\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraph.destroy",
      "info": {
        "code": "\"MLGraph\" in self && \"destroy\" in MLGraph.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder",
      "info": {
        "code": "\"MLGraphBuilder\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.MLGraphBuilder",
      "info": {
        "code": "bcd.testConstructor('MLGraphBuilder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MLGraphBuilder is not defined"
    },
    {
      "name": "api.MLGraphBuilder.abs",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"abs\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.add",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"add\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.argMax",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"argMax\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.argMin",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"argMin\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.averagePool2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"averagePool2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.batchNormalization",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"batchNormalization\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.build",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"build\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.cast",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"cast\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.ceil",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"ceil\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.clamp",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"clamp\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.concat",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"concat\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.constant",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"constant\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.conv2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"conv2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.convTranspose2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"convTranspose2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.cos",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"cos\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.cumulativeSum",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"cumulativeSum\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.dequantizeLinear",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"dequantizeLinear\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.div",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"div\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.elu",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"elu\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.equal",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"equal\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.erf",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"erf\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.exp",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"exp\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.expand",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"expand\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.floor",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"floor\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gather",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gather\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gatherElements",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gatherElements\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gatherND",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gatherND\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gelu",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gelu\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gemm",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gemm\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.greater",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"greater\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.greaterOrEqual",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"greaterOrEqual\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gru",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gru\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.gruCell",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"gruCell\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.hardSigmoid",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"hardSigmoid\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.hardSwish",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"hardSwish\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.identity",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"identity\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.input",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"input\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.instanceNormalization",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"instanceNormalization\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.isInfinite",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"isInfinite\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.isNaN",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"isNaN\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.l2Pool2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"l2Pool2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.layerNormalization",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"layerNormalization\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.leakyRelu",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"leakyRelu\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.lesser",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"lesser\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.lesserOrEqual",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"lesserOrEqual\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.linear",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"linear\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.log",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"log\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.logicalAnd",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"logicalAnd\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.logicalNot",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"logicalNot\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.logicalOr",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"logicalOr\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.logicalXor",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"logicalXor\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.lstm",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"lstm\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.lstmCell",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"lstmCell\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.matmul",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"matmul\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.max",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"max\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.maxPool2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"maxPool2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.min",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"min\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.mul",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"mul\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.neg",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"neg\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.notEqual",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"notEqual\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.pad",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"pad\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.pow",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"pow\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.prelu",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"prelu\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.quantizeLinear",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"quantizeLinear\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reciprocal",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reciprocal\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceL1",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceL1\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceL2",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceL2\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceLogSum",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceLogSum\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceLogSumExp",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceLogSumExp\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceMax",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceMax\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceMean",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceMean\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceMin",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceMin\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceProduct",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceProduct\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceSum",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceSum\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reduceSumSquare",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reduceSumSquare\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.relu",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"relu\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.resample2d",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"resample2d\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reshape",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reshape\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.reverse",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"reverse\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.roundEven",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"roundEven\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.scatterElements",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"scatterElements\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.scatterND",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"scatterND\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.sigmoid",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"sigmoid\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.sign",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"sign\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.sin",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"sin\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.slice",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"slice\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.softmax",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"softmax\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.softplus",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"softplus\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.softsign",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"softsign\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.split",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"split\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.sqrt",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"sqrt\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.sub",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"sub\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.tan",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"tan\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.tanh",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"tanh\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.tile",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"tile\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.transpose",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"transpose\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.triangular",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"triangular\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLGraphBuilder.where",
      "info": {
        "code": "\"MLGraphBuilder\" in self && \"where\" in MLGraphBuilder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLOperand",
      "info": {
        "code": "\"MLOperand\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLOperand.dataType",
      "info": {
        "code": "\"MLOperand\" in self && \"dataType\" in MLOperand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLOperand.shape",
      "info": {
        "code": "\"MLOperand\" in self && \"shape\" in MLOperand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor",
      "info": {
        "code": "\"MLTensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.constant",
      "info": {
        "code": "\"MLTensor\" in self && \"constant\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.dataType",
      "info": {
        "code": "\"MLTensor\" in self && \"dataType\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.destroy",
      "info": {
        "code": "\"MLTensor\" in self && \"destroy\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.readable",
      "info": {
        "code": "\"MLTensor\" in self && \"readable\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.shape",
      "info": {
        "code": "\"MLTensor\" in self && \"shape\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MLTensor.writable",
      "info": {
        "code": "\"MLTensor\" in self && \"writable\" in MLTensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Magnetometer",
      "info": {
        "code": "\"Magnetometer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Magnetometer.Magnetometer",
      "info": {
        "code": "bcd.testConstructor('Magnetometer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Magnetometer is not defined"
    },
    {
      "name": "api.Magnetometer.x",
      "info": {
        "code": "\"Magnetometer\" in self && \"x\" in Magnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Magnetometer.y",
      "info": {
        "code": "\"Magnetometer\" in self && \"y\" in Magnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Magnetometer.z",
      "info": {
        "code": "\"Magnetometer\" in self && \"z\" in Magnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ManagedMediaSource",
      "info": {
        "code": "\"ManagedMediaSource\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ManagedMediaSource.ManagedMediaSource",
      "info": {
        "code": "bcd.testConstructor('ManagedMediaSource')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ManagedMediaSource is not defined"
    },
    {
      "name": "api.ManagedMediaSource.streaming",
      "info": {
        "code": "\"ManagedMediaSource\" in self && \"streaming\" in ManagedMediaSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ManagedSourceBuffer",
      "info": {
        "code": "\"ManagedSourceBuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement",
      "info": {
        "code": "\"MathMLElement\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.attributeStyleMap",
      "info": {
        "code": "\"MathMLElement\" in self && \"attributeStyleMap\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.autofocus",
      "info": {
        "code": "\"MathMLElement\" in self && \"autofocus\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.blur",
      "info": {
        "code": "\"MathMLElement\" in self && \"blur\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.dataset",
      "info": {
        "code": "\"MathMLElement\" in self && \"dataset\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.focus",
      "info": {
        "code": "\"MathMLElement\" in self && \"focus\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.nonce",
      "info": {
        "code": "\"MathMLElement\" in self && \"nonce\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.style",
      "info": {
        "code": "\"MathMLElement\" in self && \"style\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MathMLElement.tabIndex",
      "info": {
        "code": "\"MathMLElement\" in self && \"tabIndex\" in MathMLElement.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaCapabilities",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaCapabilities;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaCapabilities.decodingInfo",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaCapabilities;\n  return !!instance && \"decodingInfo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaCapabilities.encodingInfo",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaCapabilities;\n  return !!instance && \"encodingInfo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaController",
      "info": {
        "code": "\"MediaController\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.MediaController",
      "info": {
        "code": "bcd.testConstructor('MediaController')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaController is not defined"
    },
    {
      "name": "api.MediaController.buffered",
      "info": {
        "code": "\"MediaController\" in self && \"buffered\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.currentTime",
      "info": {
        "code": "\"MediaController\" in self && \"currentTime\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.defaultPlaybackRate",
      "info": {
        "code": "\"MediaController\" in self && \"defaultPlaybackRate\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.duration",
      "info": {
        "code": "\"MediaController\" in self && \"duration\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.muted",
      "info": {
        "code": "\"MediaController\" in self && \"muted\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.pause",
      "info": {
        "code": "\"MediaController\" in self && \"pause\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.paused",
      "info": {
        "code": "\"MediaController\" in self && \"paused\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.play",
      "info": {
        "code": "\"MediaController\" in self && \"play\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.playbackRate",
      "info": {
        "code": "\"MediaController\" in self && \"playbackRate\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.playbackState",
      "info": {
        "code": "\"MediaController\" in self && \"playbackState\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.played",
      "info": {
        "code": "\"MediaController\" in self && \"played\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.seekable",
      "info": {
        "code": "\"MediaController\" in self && \"seekable\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.unpause",
      "info": {
        "code": "\"MediaController\" in self && \"unpause\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaController.volume",
      "info": {
        "code": "\"MediaController\" in self && \"volume\" in MediaController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaDeviceInfo",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      return devices[0];\n    });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDeviceInfo.deviceId",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      return devices[0];\n    });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"deviceId\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDeviceInfo.groupId",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      return devices[0];\n    });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"groupId\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDeviceInfo.kind",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      return devices[0];\n    });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"kind\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDeviceInfo.label",
      "info": {
        "code": "(function () {\n  var mediaDevices = navigator.mediaDevices;\n  if (!mediaDevices) {\n    return { result: false, message: \"mediaDevices is falsy\" };\n  }\n  var promise = navigator.mediaDevices\n    .enumerateDevices()\n    .then(function (devices) {\n      return devices[0];\n    });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"label\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDeviceInfo.toJSON",
      "info": {
        "code": "\"MediaDeviceInfo\" in self && \"toJSON\" in MediaDeviceInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaDevices",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.enumerateDevices",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"enumerateDevices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.getDisplayMedia",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"getDisplayMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.getSupportedConstraints",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"getSupportedConstraints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.getUserMedia",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"getUserMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.getViewportMedia",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"getViewportMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.selectAudioOutput",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"selectAudioOutput\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.setCaptureHandleConfig",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"setCaptureHandleConfig\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaDevices.setSupportedCaptureActions",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaDevices;\n  return !!instance && \"setSupportedCaptureActions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaElementAudioSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaElementSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaElementSource is not defined\"\n    };\n  }\n  var el = document.getElementById(\"resource-audio-blip\");\n  // Element is cloned for each test because only one audio source node can be associated with an element\n  var clone = el.cloneNode(true);\n  var instance = reusableInstances.audioContext.createMediaElementSource(clone);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaElementAudioSourceNode.MediaElementAudioSourceNode",
      "info": {
        "code": "bcd.testConstructor('MediaElementAudioSourceNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaElementAudioSourceNode is not defined"
    },
    {
      "name": "api.MediaElementAudioSourceNode.mediaElement",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaElementSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaElementSource is not defined\"\n    };\n  }\n  var el = document.getElementById(\"resource-audio-blip\");\n  // Element is cloned for each test because only one audio source node can be associated with an element\n  var clone = el.cloneNode(true);\n  var instance = reusableInstances.audioContext.createMediaElementSource(clone);\n  return !!instance && \"mediaElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaEncryptedEvent",
      "info": {
        "code": "(function () {\n  if (!(\"MediaEncryptedEvent\" in self)) {\n    return { result: false, message: \"MediaEncryptedEvent is not defined\" };\n  }\n  var instance = new MediaEncryptedEvent(\"encrypted\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaEncryptedEvent is not defined"
    },
    {
      "name": "api.MediaEncryptedEvent.MediaEncryptedEvent",
      "info": {
        "code": "bcd.testConstructor('MediaEncryptedEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaEncryptedEvent is not defined"
    },
    {
      "name": "api.MediaEncryptedEvent.initData",
      "info": {
        "code": "(function () {\n  if (!(\"MediaEncryptedEvent\" in self)) {\n    return { result: false, message: \"MediaEncryptedEvent is not defined\" };\n  }\n  var instance = new MediaEncryptedEvent(\"encrypted\");\n  return !!instance && \"initData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaEncryptedEvent is not defined"
    },
    {
      "name": "api.MediaEncryptedEvent.initDataType",
      "info": {
        "code": "(function () {\n  if (!(\"MediaEncryptedEvent\" in self)) {\n    return { result: false, message: \"MediaEncryptedEvent is not defined\" };\n  }\n  var instance = new MediaEncryptedEvent(\"encrypted\");\n  return !!instance && \"initDataType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaEncryptedEvent is not defined"
    },
    {
      "name": "api.MediaError",
      "info": {
        "code": "\"MediaError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaError.code",
      "info": {
        "code": "\"MediaError\" in self && \"code\" in MediaError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaError.message",
      "info": {
        "code": "\"MediaError\" in self && \"message\" in MediaError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyMessageEvent",
      "info": {
        "code": "(function () {\n  if (!(\"MediaKeyMessageEvent\" in self)) {\n    return { result: false, message: \"MediaKeyMessageEvent is not defined\" };\n  }\n  var instance = new MediaKeyMessageEvent(\"license-request\", {\n    message: new ArrayBuffer(),\n    messageType: \"license-request\"\n  });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaKeyMessageEvent is not defined"
    },
    {
      "name": "api.MediaKeyMessageEvent.MediaKeyMessageEvent",
      "info": {
        "code": "bcd.testConstructor('MediaKeyMessageEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaKeyMessageEvent is not defined"
    },
    {
      "name": "api.MediaKeyMessageEvent.message",
      "info": {
        "code": "(function () {\n  if (!(\"MediaKeyMessageEvent\" in self)) {\n    return { result: false, message: \"MediaKeyMessageEvent is not defined\" };\n  }\n  var instance = new MediaKeyMessageEvent(\"license-request\", {\n    message: new ArrayBuffer(),\n    messageType: \"license-request\"\n  });\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaKeyMessageEvent is not defined"
    },
    {
      "name": "api.MediaKeyMessageEvent.messageType",
      "info": {
        "code": "(function () {\n  if (!(\"MediaKeyMessageEvent\" in self)) {\n    return { result: false, message: \"MediaKeyMessageEvent is not defined\" };\n  }\n  var instance = new MediaKeyMessageEvent(\"license-request\", {\n    message: new ArrayBuffer(),\n    messageType: \"license-request\"\n  });\n  return !!instance && \"messageType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaKeyMessageEvent is not defined"
    },
    {
      "name": "api.MediaKeySession",
      "info": {
        "code": "\"MediaKeySession\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.close",
      "info": {
        "code": "\"MediaKeySession\" in self && \"close\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.closed",
      "info": {
        "code": "\"MediaKeySession\" in self && \"closed\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.expiration",
      "info": {
        "code": "\"MediaKeySession\" in self && \"expiration\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.generateRequest",
      "info": {
        "code": "\"MediaKeySession\" in self && \"generateRequest\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.keyStatuses",
      "info": {
        "code": "\"MediaKeySession\" in self && \"keyStatuses\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.load",
      "info": {
        "code": "\"MediaKeySession\" in self && \"load\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.remove",
      "info": {
        "code": "\"MediaKeySession\" in self && \"remove\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.sessionId",
      "info": {
        "code": "\"MediaKeySession\" in self && \"sessionId\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySession.update",
      "info": {
        "code": "\"MediaKeySession\" in self && \"update\" in MediaKeySession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"MediaKeyStatusMap\" in self && !!(MediaKeyStatusMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.entries",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"entries\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.forEach",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"forEach\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.get",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"get\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.has",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"has\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.keys",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"keys\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.size",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"size\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeyStatusMap.values",
      "info": {
        "code": "\"MediaKeyStatusMap\" in self && \"values\" in MediaKeyStatusMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySystemAccess",
      "info": {
        "code": "\"MediaKeySystemAccess\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySystemAccess.createMediaKeys",
      "info": {
        "code": "\"MediaKeySystemAccess\" in self && \"createMediaKeys\" in MediaKeySystemAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySystemAccess.getConfiguration",
      "info": {
        "code": "\"MediaKeySystemAccess\" in self && \"getConfiguration\" in MediaKeySystemAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeySystemAccess.keySystem",
      "info": {
        "code": "\"MediaKeySystemAccess\" in self && \"keySystem\" in MediaKeySystemAccess.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeys",
      "info": {
        "code": "\"MediaKeys\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeys.createSession",
      "info": {
        "code": "\"MediaKeys\" in self && \"createSession\" in MediaKeys.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeys.getStatusForPolicy",
      "info": {
        "code": "\"MediaKeys\" in self && \"getStatusForPolicy\" in MediaKeys.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaKeys.setServerCertificate",
      "info": {
        "code": "\"MediaKeys\" in self && \"setServerCertificate\" in MediaKeys.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaList",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.appendMedium",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance && \"appendMedium\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.deleteMedium",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance && \"deleteMedium\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.item",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.length",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.mediaText",
      "info": {
        "code": "(function () {\n  var stylesheet = reusableInstances.createStyleSheet(\n    \"@media (max-width: 600px) {body {background-color: #111;color: white;}}\"\n  );\n  var instance = stylesheet.media;\n  return !!instance && \"mediaText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MediaList.toString",
      "info": {
        "code": "\"MediaList\" in self && \"toString\" in MediaList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata",
      "info": {
        "code": "\"MediaMetadata\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata.MediaMetadata",
      "info": {
        "code": "bcd.testConstructor('MediaMetadata')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaMetadata is not defined"
    },
    {
      "name": "api.MediaMetadata.album",
      "info": {
        "code": "\"MediaMetadata\" in self && \"album\" in MediaMetadata.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata.artist",
      "info": {
        "code": "\"MediaMetadata\" in self && \"artist\" in MediaMetadata.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata.artwork",
      "info": {
        "code": "\"MediaMetadata\" in self && \"artwork\" in MediaMetadata.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata.chapterInfo",
      "info": {
        "code": "\"MediaMetadata\" in self && \"chapterInfo\" in MediaMetadata.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaMetadata.title",
      "info": {
        "code": "\"MediaMetadata\" in self && \"title\" in MediaMetadata.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaQueryList",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryList.EventTarget_inheritance",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance && \"addEventListener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryList.addListener",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance && \"addListener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryList.matches",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance && \"matches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryList.media",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryList.removeListener",
      "info": {
        "code": "(function () {\n  var instance = window.matchMedia(\"screen and max-width: 800px;\");\n  return !!instance && \"removeListener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MediaQueryListEvent",
      "info": {
        "code": "(function () {\n  if (!(\"MediaQueryListEvent\" in self)) {\n    return { result: false, message: \"MediaQueryListEvent is not defined\" };\n  }\n  var instance = new MediaQueryListEvent(\"change\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaQueryListEvent is not defined"
    },
    {
      "name": "api.MediaQueryListEvent.MediaQueryListEvent",
      "info": {
        "code": "bcd.testConstructor('MediaQueryListEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaQueryListEvent is not defined"
    },
    {
      "name": "api.MediaQueryListEvent.matches",
      "info": {
        "code": "(function () {\n  if (!(\"MediaQueryListEvent\" in self)) {\n    return { result: false, message: \"MediaQueryListEvent is not defined\" };\n  }\n  var instance = new MediaQueryListEvent(\"change\");\n  return !!instance && \"matches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaQueryListEvent is not defined"
    },
    {
      "name": "api.MediaQueryListEvent.media",
      "info": {
        "code": "(function () {\n  if (!(\"MediaQueryListEvent\" in self)) {\n    return { result: false, message: \"MediaQueryListEvent is not defined\" };\n  }\n  var instance = new MediaQueryListEvent(\"change\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaQueryListEvent is not defined"
    },
    {
      "name": "api.MediaRecorder",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.MediaRecorder",
      "info": {
        "code": "bcd.testConstructor('MediaRecorder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaRecorder is not defined"
    },
    {
      "name": "api.MediaRecorder.MediaRecorder.options_parameter",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  function construct(options) {\n    new MediaRecorder(reusableInstances.mediaStream, options);\n  }\n  return bcd.testOptionParam(construct, null, \"mimeType\", \"\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.audioBitrateMode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"audioBitrateMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.audioBitsPerSecond",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"audioBitsPerSecond\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.isTypeSupported_static",
      "info": {
        "code": "\"MediaRecorder\" in self && \"isTypeSupported\" in MediaRecorder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaRecorder.mimeType",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"mimeType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.pause",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"pause\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.requestData",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"requestData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.resume",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"resume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.start",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.state",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"state\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.stop",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.stream",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"stream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorder.videoBitsPerSecond",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"MediaRecorder\" in self)) {\n    return { result: false, message: \"MediaRecorder is not defined\" };\n  }\n  var instance = new MediaRecorder(reusableInstances.mediaStream);\n  return !!instance && \"videoBitsPerSecond\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaRecorderErrorEvent",
      "info": {
        "code": "\"MediaRecorderErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaRecorderErrorEvent.MediaRecorderErrorEvent",
      "info": {
        "code": "bcd.testConstructor('MediaRecorderErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaRecorderErrorEvent is not defined"
    },
    {
      "name": "api.MediaRecorderErrorEvent.error",
      "info": {
        "code": "\"MediaRecorderErrorEvent\" in self && \"error\" in MediaRecorderErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaSession",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.metadata",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"metadata\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.playbackState",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"playbackState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return !!instance && \"setActionHandler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.hangup_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"hangup\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.nextslide_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"nextslide\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.nexttrack_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"nexttrack\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.pause_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"pause\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.play_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"play\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.previousslide_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"previousslide\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.previoustrack_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"previoustrack\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.seekbackward_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"seekbackward\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.seekforward_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"seekforward\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.seekto_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"seekto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.skipad_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"skipad\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.stop_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"stop\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.togglecamera_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"togglecamera\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setActionHandler.togglemicrophone_type",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  function setActionHandler(type) {\n    if (!(\"setActionHandler\" in instance)) {\n      return {\n        result: false,\n        message: \"MediaSession.setActionHandler is not defined\"\n      };\n    }\n    try {\n      instance.setActionHandler(type, null);\n      return true;\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    }\n  }\n  return setActionHandler(\"togglemicrophone\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setCameraActive",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"setCameraActive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setMicrophoneActive",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"setMicrophoneActive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setPositionState",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"setPositionState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSession.setScreenshareActive",
      "info": {
        "code": "(function () {\n  var instance = navigator.mediaSession;\n  return !!instance && \"setScreenshareActive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MediaSource",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.MediaSource",
      "info": {
        "code": "bcd.testConstructor('MediaSource')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.activeSourceBuffers",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"activeSourceBuffers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.addSourceBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"addSourceBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.canConstructInDedicatedWorker_static",
      "info": {
        "code": "\"MediaSource\" in self && \"canConstructInDedicatedWorker\" in MediaSource",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaSource.clearLiveSeekableRange",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"clearLiveSeekableRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.duration",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"duration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.endOfStream",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"endOfStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.handle",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"handle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.isTypeSupported_static",
      "info": {
        "code": "\"MediaSource\" in self && \"isTypeSupported\" in MediaSource",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaSource.readyState",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.removeSourceBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"removeSourceBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.setLiveSeekableRange",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"setLiveSeekableRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSource.sourceBuffers",
      "info": {
        "code": "(function () {\n  if (!(\"MediaSource\" in self)) {\n    return { result: false, message: \"MediaSource is not defined\" };\n  }\n  var instance = new MediaSource();\n  return !!instance && \"sourceBuffers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MediaSource is not defined"
    },
    {
      "name": "api.MediaSourceHandle",
      "info": {
        "code": "\"MediaSourceHandle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.MediaStream",
      "info": {
        "code": "bcd.testConstructor('MediaStream')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStream is not defined"
    },
    {
      "name": "api.MediaStream.active",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"active\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.addTrack",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"addTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.clone",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"clone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.getAudioTracks",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"getAudioTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.getTrackById",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"getTrackById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.getTracks",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"getTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.getVideoTracks",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"getVideoTracks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.id",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStream.removeTrack",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.mediaStream;\n  return !!instance && \"removeTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStreamAudioDestinationNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaStreamDestination\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamDestination is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createMediaStreamDestination();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaStreamAudioDestinationNode.MediaStreamAudioDestinationNode",
      "info": {
        "code": "bcd.testConstructor('MediaStreamAudioDestinationNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamAudioDestinationNode is not defined"
    },
    {
      "name": "api.MediaStreamAudioDestinationNode.stream",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaStreamDestination\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamDestination is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createMediaStreamDestination();\n  return !!instance && \"stream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaStreamAudioSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"createMediaStreamSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createMediaStreamSource(\n    reusableInstances.mediaStream\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaStreamAudioSourceNode.MediaStreamAudioSourceNode",
      "info": {
        "code": "bcd.testConstructor('MediaStreamAudioSourceNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamAudioSourceNode is not defined"
    },
    {
      "name": "api.MediaStreamAudioSourceNode.mediaStream",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  if (!(\"createMediaStreamSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamSource is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createMediaStreamSource(\n    reusableInstances.mediaStream\n  );\n  return !!instance && \"mediaStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.MediaStreamEvent",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n\n  var instance;\n  try {\n    instance = new MediaStreamEvent(\"addstream\", {\n      stream: reusableInstances.mediaStream\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MediaStreamEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: e.message };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamEvent.MediaStreamEvent",
      "info": {
        "code": "bcd.testConstructor('MediaStreamEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamEvent is not defined"
    },
    {
      "name": "api.MediaStreamEvent.stream",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n\n  var instance;\n  try {\n    instance = new MediaStreamEvent(\"addstream\", {\n      stream: reusableInstances.mediaStream\n    });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MediaStreamEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: e.message };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"stream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.applyConstraints",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"applyConstraints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.clone",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"clone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.contentHint",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"contentHint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.enabled",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"enabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.getCapabilities",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"getCapabilities\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.getCaptureHandle",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"getCaptureHandle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.getConstraints",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"getConstraints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.getSettings",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"getSettings\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.getSupportedCaptureActions",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"getSupportedCaptureActions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.id",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.isolated",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"isolated\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.kind",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"kind\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.label",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.muted",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"muted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.readyState",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.sendCaptureAction",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"sendCaptureAction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrack.stop",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var instance = reusableInstances.mediaStream.getAudioTracks()[0];\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrackAudioSourceNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var msTrack = reusableInstances.mediaStream.getAudioTracks()[0];\n  if (!msTrack) {\n    return { result: false, message: \"msTrack is falsy\" };\n  }\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaStreamTrackSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamTrackSource is not defined\"\n    };\n  }\n  var instance =\n    reusableInstances.audioContext.createMediaStreamTrackSource(msTrack);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrackAudioSourceNode.MediaStreamTrackAudioSourceNode",
      "info": {
        "code": "bcd.testConstructor('MediaStreamTrackAudioSourceNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamTrackAudioSourceNode is not defined"
    },
    {
      "name": "api.MediaStreamTrackAudioSourceNode.mediaStreamTrack",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var msTrack = reusableInstances.mediaStream.getAudioTracks()[0];\n  if (!msTrack) {\n    return { result: false, message: \"msTrack is falsy\" };\n  }\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createMediaStreamTrackSource\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createMediaStreamTrackSource is not defined\"\n    };\n  }\n  var instance =\n    reusableInstances.audioContext.createMediaStreamTrackSource(msTrack);\n  return !!instance && \"mediaStreamTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrackEvent",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var msTrack = reusableInstances.mediaStream.getAudioTracks()[0];\n  if (!msTrack) {\n    return { result: false, message: \"msTrack is falsy\" };\n  }\n\n  var instance;\n  try {\n    instance = new MediaStreamTrackEvent(\"addtrack\", { track: msTrack });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MediaStreamTrackEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: e.message };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrackEvent.MediaStreamTrackEvent",
      "info": {
        "code": "bcd.testConstructor('MediaStreamTrackEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamTrackEvent is not defined"
    },
    {
      "name": "api.MediaStreamTrackEvent.track",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.mediaStream) {\n    return { result: false, message: \"Media stream is not available\" };\n  }\n  var msTrack = reusableInstances.mediaStream.getAudioTracks()[0];\n  if (!msTrack) {\n    return { result: false, message: \"msTrack is falsy\" };\n  }\n\n  var instance;\n  try {\n    instance = new MediaStreamTrackEvent(\"addtrack\", { track: msTrack });\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MediaStreamTrackEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: e.message };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"track\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Media stream is not available"
    },
    {
      "name": "api.MediaStreamTrackGenerator",
      "info": {
        "code": "\"MediaStreamTrackGenerator\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MediaStreamTrackGenerator.MediaStreamTrackGenerator",
      "info": {
        "code": "bcd.testConstructor('MediaStreamTrackGenerator')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MediaStreamTrackGenerator is not defined"
    },
    {
      "name": "api.MediaStreamTrackGenerator.writable",
      "info": {
        "code": "\"MediaStreamTrackGenerator\" in self && \"writable\" in MediaStreamTrackGenerator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MerchantValidationEvent",
      "info": {
        "code": "(function () {\n  if (!(\"MerchantValidationEvent\" in self)) {\n    return { result: false, message: \"MerchantValidationEvent is not defined\" };\n  }\n  var instance = new MerchantValidationEvent(\"merchantvalidation\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MerchantValidationEvent is not defined"
    },
    {
      "name": "api.MerchantValidationEvent.MerchantValidationEvent",
      "info": {
        "code": "bcd.testConstructor('MerchantValidationEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MerchantValidationEvent is not defined"
    },
    {
      "name": "api.MerchantValidationEvent.complete",
      "info": {
        "code": "(function () {\n  if (!(\"MerchantValidationEvent\" in self)) {\n    return { result: false, message: \"MerchantValidationEvent is not defined\" };\n  }\n  var instance = new MerchantValidationEvent(\"merchantvalidation\");\n  return !!instance && \"complete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MerchantValidationEvent is not defined"
    },
    {
      "name": "api.MerchantValidationEvent.methodName",
      "info": {
        "code": "(function () {\n  if (!(\"MerchantValidationEvent\" in self)) {\n    return { result: false, message: \"MerchantValidationEvent is not defined\" };\n  }\n  var instance = new MerchantValidationEvent(\"merchantvalidation\");\n  return !!instance && \"methodName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MerchantValidationEvent is not defined"
    },
    {
      "name": "api.MerchantValidationEvent.validationURL",
      "info": {
        "code": "(function () {\n  if (!(\"MerchantValidationEvent\" in self)) {\n    return { result: false, message: \"MerchantValidationEvent is not defined\" };\n  }\n  var instance = new MerchantValidationEvent(\"merchantvalidation\");\n  return !!instance && \"validationURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "MerchantValidationEvent is not defined"
    },
    {
      "name": "api.MessageChannel",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var instance = new MessageChannel();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageChannel.MessageChannel",
      "info": {
        "code": "bcd.testConstructor('MessageChannel')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.MessageChannel.port1",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var instance = new MessageChannel();\n  return !!instance && \"port1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageChannel.port2",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var instance = new MessageChannel();\n  return !!instance && \"port2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.MessageEvent",
      "info": {
        "code": "bcd.testConstructor('MessageEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.MessageEvent.data",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.initMessageEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initMessageEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MessageEvent.lastEventId",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"lastEventId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.origin",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.ports",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"ports\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.source",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"source\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessageEvent.userActivation",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MessageEvent(\"message\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MessageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"userActivation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MessagePort",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var channel = new MessageChannel();\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  var instance = channel.port1;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessagePort.close",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var channel = new MessageChannel();\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  var instance = channel.port1;\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessagePort.postMessage",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var channel = new MessageChannel();\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  var instance = channel.port1;\n  return !!instance && \"postMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.MessagePort.start",
      "info": {
        "code": "(function () {\n  if (!(\"MessageChannel\" in self)) {\n    return { result: false, message: \"MessageChannel is not defined\" };\n  }\n  var channel = new MessageChannel();\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  var instance = channel.port1;\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Metadata",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fseCallback(fs.root);\n  }\n  function fseCallback(fse) {\n    fse.getMetadata(callback, fail);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.Metadata.modificationTime",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fseCallback(fs.root);\n  }\n  function fseCallback(fse) {\n    fse.getMetadata(callback, fail);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"modificationTime\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.Metadata.size",
      "info": {
        "code": "(function () {\n  if ((!\"webkitRequestFileSystem\") in self) {\n    return { result: false, message: \"webkitRequestFileSystem is not defined\" };\n  }\n  self.webkitRequestFileSystem(\n    TEMPORARY,\n    8 * 1024 /* 8KB */,\n    function (fs) {\n      fsCallback(fs);\n    },\n    function (error) {\n      fail(error.message);\n    }\n  );\n  function fsCallback(fs) {\n    fseCallback(fs.root);\n  }\n  function fseCallback(fse) {\n    fse.getMetadata(callback, fail);\n  }\n  function callback(instance) {\n    try {\n      success(!!instance && \"size\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: TEMPORARY is not defined"
    },
    {
      "name": "api.MimeType",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var mimetypes = navigator.mimeTypes;\n  if (!mimetypes) {\n    return { result: false, message: \"mimetypes is falsy\" };\n  }\n  if (mimetypes.length === 0) {\n    return { result: null, message: \"navigator.mimeTypes is an empty array\" };\n  }\n  var instance = mimeTypes[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeType.description",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var mimetypes = navigator.mimeTypes;\n  if (!mimetypes) {\n    return { result: false, message: \"mimetypes is falsy\" };\n  }\n  if (mimetypes.length === 0) {\n    return { result: null, message: \"navigator.mimeTypes is an empty array\" };\n  }\n  var instance = mimeTypes[0];\n  return !!instance && \"description\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeType.enabledPlugin",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var mimetypes = navigator.mimeTypes;\n  if (!mimetypes) {\n    return { result: false, message: \"mimetypes is falsy\" };\n  }\n  if (mimetypes.length === 0) {\n    return { result: null, message: \"navigator.mimeTypes is an empty array\" };\n  }\n  var instance = mimeTypes[0];\n  return !!instance && \"enabledPlugin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeType.suffixes",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var mimetypes = navigator.mimeTypes;\n  if (!mimetypes) {\n    return { result: false, message: \"mimetypes is falsy\" };\n  }\n  if (mimetypes.length === 0) {\n    return { result: null, message: \"navigator.mimeTypes is an empty array\" };\n  }\n  var instance = mimeTypes[0];\n  return !!instance && \"suffixes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeType.type",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var mimetypes = navigator.mimeTypes;\n  if (!mimetypes) {\n    return { result: false, message: \"mimetypes is falsy\" };\n  }\n  if (mimetypes.length === 0) {\n    return { result: null, message: \"navigator.mimeTypes is an empty array\" };\n  }\n  var instance = mimeTypes[0];\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeTypeArray",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var instance = navigator.mimeTypes;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeTypeArray.item",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var instance = navigator.mimeTypes;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeTypeArray.length",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var instance = navigator.mimeTypes;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MimeTypeArray.namedItem",
      "info": {
        "code": "(function () {\n  if (!(\"mimeTypes\" in navigator)) {\n    return { result: false, message: \"navigator.mimeTypes is not defined\" };\n  }\n  var instance = navigator.mimeTypes;\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.MouseEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.MouseEvent",
      "info": {
        "code": "bcd.testConstructor('MouseEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MouseEvent is not defined"
    },
    {
      "name": "api.MouseEvent.altKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"altKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.button",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"button\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.buttons",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"buttons\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.clientX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"clientX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.clientY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"clientY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.ctrlKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"ctrlKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.getModifierState",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"getModifierState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.initMouseEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initMouseEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.layerX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"layerX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.layerY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"layerY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.metaKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"metaKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.movementX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"movementX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.movementY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"movementY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.offsetX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"offsetX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.offsetY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"offsetY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.pageX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"pageX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.pageY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"pageY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.region",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"region\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.relatedTarget",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"relatedTarget\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.screenX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"screenX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.screenY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"screenY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.shiftKey",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"shiftKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.x",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseEvent.y",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new MouseEvent(\"click\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"MouseEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MouseScrollEvent",
      "info": {
        "code": "\"MouseScrollEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.MutationEvent",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.attrChange",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"attrChange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.attrName",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"attrName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.initMutationEvent",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"initMutationEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.newValue",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"newValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.prevValue",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"prevValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationEvent.relatedNode",
      "info": {
        "code": "(function () {\n  try {\n    var instance = document.createEvent(\"MutationEvent\");\n  } catch (e) {\n    if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    throw e;\n  }\n  return !!instance && \"relatedNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.MutationObserver",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var instance = new constructor(function (mutations) {});\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationObserver.MutationObserver",
      "info": {
        "code": "bcd.testConstructor('MutationObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: MutationObserver is not defined"
    },
    {
      "name": "api.MutationObserver.disconnect",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var instance = new constructor(function (mutations) {});\n  return !!instance && \"disconnect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationObserver.observe",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var instance = new constructor(function (mutations) {});\n  return !!instance && \"observe\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationObserver.takeRecords",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var instance = new constructor(function (mutations) {});\n  return !!instance && \"takeRecords\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.addedNodes",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"addedNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.attributeName",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"attributeName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.attributeNamespace",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"attributeNamespace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.nextSibling",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"nextSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.oldValue",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"oldValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.previousSibling",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"previousSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.removedNodes",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"removedNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.target",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.MutationRecord.type",
      "info": {
        "code": "(function () {\n  var constructor = window.MutationObserver || window.WebKitMutationObserver;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(WebKit)MutationObserver is not defined\"\n    };\n  }\n  var observer = new constructor(function (mutations) {});\n  if (!observer) {\n    return { result: false, message: \"observer is falsy\" };\n  }\n\n  // Create element and observe\n  var targetNode = document.createElement(\"p\");\n  observer.observe(targetNode, {\n    childList: true,\n    attributes: true\n  });\n\n  // Make a change\n  targetNode.innerHTML = \"foo bar\";\n\n  // Get the record\n  var records = observer.takeRecords();\n  var instance = records[0];\n\n  // Finally, disconnect the observer\n  observer.disconnect();\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.NDEFMessage",
      "info": {
        "code": "\"NDEFMessage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFMessage.NDEFMessage",
      "info": {
        "code": "bcd.testConstructor('NDEFMessage')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NDEFMessage is not defined"
    },
    {
      "name": "api.NDEFMessage.records",
      "info": {
        "code": "\"NDEFMessage\" in self && \"records\" in NDEFMessage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReader",
      "info": {
        "code": "\"NDEFReader\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReader.NDEFReader",
      "info": {
        "code": "bcd.testConstructor('NDEFReader')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NDEFReader is not defined"
    },
    {
      "name": "api.NDEFReader.makeReadOnly",
      "info": {
        "code": "\"NDEFReader\" in self && \"makeReadOnly\" in NDEFReader.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReader.scan",
      "info": {
        "code": "\"NDEFReader\" in self && \"scan\" in NDEFReader.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReader.write",
      "info": {
        "code": "\"NDEFReader\" in self && \"write\" in NDEFReader.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReadingEvent",
      "info": {
        "code": "\"NDEFReadingEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReadingEvent.NDEFReadingEvent",
      "info": {
        "code": "bcd.testConstructor('NDEFReadingEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NDEFReadingEvent is not defined"
    },
    {
      "name": "api.NDEFReadingEvent.message",
      "info": {
        "code": "\"NDEFReadingEvent\" in self && \"message\" in NDEFReadingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFReadingEvent.serialNumber",
      "info": {
        "code": "\"NDEFReadingEvent\" in self && \"serialNumber\" in NDEFReadingEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord",
      "info": {
        "code": "\"NDEFRecord\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.NDEFRecord",
      "info": {
        "code": "bcd.testConstructor('NDEFRecord')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NDEFRecord is not defined"
    },
    {
      "name": "api.NDEFRecord.data",
      "info": {
        "code": "\"NDEFRecord\" in self && \"data\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.encoding",
      "info": {
        "code": "\"NDEFRecord\" in self && \"encoding\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.id",
      "info": {
        "code": "\"NDEFRecord\" in self && \"id\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.lang",
      "info": {
        "code": "\"NDEFRecord\" in self && \"lang\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.mediaType",
      "info": {
        "code": "\"NDEFRecord\" in self && \"mediaType\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.recordType",
      "info": {
        "code": "\"NDEFRecord\" in self && \"recordType\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NDEFRecord.toRecords",
      "info": {
        "code": "\"NDEFRecord\" in self && \"toRecords\" in NDEFRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow",
      "info": {
        "code": "\"NamedFlow\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.firstEmptyRegionIndex",
      "info": {
        "code": "\"NamedFlow\" in self && \"firstEmptyRegionIndex\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.getContent",
      "info": {
        "code": "\"NamedFlow\" in self && \"getContent\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.getRegions",
      "info": {
        "code": "\"NamedFlow\" in self && \"getRegions\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.getRegionsByContent",
      "info": {
        "code": "\"NamedFlow\" in self && \"getRegionsByContent\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.name",
      "info": {
        "code": "\"NamedFlow\" in self && \"name\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlow.overset",
      "info": {
        "code": "\"NamedFlow\" in self && \"overset\" in NamedFlow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap",
      "info": {
        "code": "\"NamedFlowMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"NamedFlowMap\" in self && !!(NamedFlowMap.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.clear",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"clear\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.delete",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"delete\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.entries",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"entries\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.forEach",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"forEach\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.get",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"get\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.has",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"has\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.keys",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"keys\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.set",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"set\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.size",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"size\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedFlowMap.values",
      "info": {
        "code": "\"NamedFlowMap\" in self && \"values\" in NamedFlowMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NamedNodeMap",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.getNamedItem",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"getNamedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.getNamedItemNS",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"getNamedItemNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.item",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.length",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.removeNamedItem",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"removeNamedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.removeNamedItemNS",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"removeNamedItemNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.setNamedItem",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"setNamedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NamedNodeMap.setNamedItemNS",
      "info": {
        "code": "(function () {\n  var instance = document.body.attributes;\n  return !!instance && \"setNamedItemNS\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NavigateEvent",
      "info": {
        "code": "\"NavigateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.NavigateEvent",
      "info": {
        "code": "bcd.testConstructor('NavigateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NavigateEvent is not defined"
    },
    {
      "name": "api.NavigateEvent.canIntercept",
      "info": {
        "code": "\"NavigateEvent\" in self && \"canIntercept\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.destination",
      "info": {
        "code": "\"NavigateEvent\" in self && \"destination\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.downloadRequest",
      "info": {
        "code": "\"NavigateEvent\" in self && \"downloadRequest\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.formData",
      "info": {
        "code": "\"NavigateEvent\" in self && \"formData\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.hasUAVisualTransition",
      "info": {
        "code": "\"NavigateEvent\" in self && \"hasUAVisualTransition\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.hashChange",
      "info": {
        "code": "\"NavigateEvent\" in self && \"hashChange\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.info",
      "info": {
        "code": "\"NavigateEvent\" in self && \"info\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.intercept",
      "info": {
        "code": "\"NavigateEvent\" in self && \"intercept\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.navigationType",
      "info": {
        "code": "\"NavigateEvent\" in self && \"navigationType\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.scroll",
      "info": {
        "code": "\"NavigateEvent\" in self && \"scroll\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.signal",
      "info": {
        "code": "\"NavigateEvent\" in self && \"signal\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.sourceElement",
      "info": {
        "code": "\"NavigateEvent\" in self && \"sourceElement\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigateEvent.userInitiated",
      "info": {
        "code": "\"NavigateEvent\" in self && \"userInitiated\" in NavigateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation",
      "info": {
        "code": "\"Navigation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.activation",
      "info": {
        "code": "\"Navigation\" in self && \"activation\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.back",
      "info": {
        "code": "\"Navigation\" in self && \"back\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.canGoBack",
      "info": {
        "code": "\"Navigation\" in self && \"canGoBack\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.canGoForward",
      "info": {
        "code": "\"Navigation\" in self && \"canGoForward\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.currentEntry",
      "info": {
        "code": "\"Navigation\" in self && \"currentEntry\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.entries",
      "info": {
        "code": "\"Navigation\" in self && \"entries\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.forward",
      "info": {
        "code": "\"Navigation\" in self && \"forward\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.navigate",
      "info": {
        "code": "\"Navigation\" in self && \"navigate\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.reload",
      "info": {
        "code": "\"Navigation\" in self && \"reload\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.transition",
      "info": {
        "code": "\"Navigation\" in self && \"transition\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.traverseTo",
      "info": {
        "code": "\"Navigation\" in self && \"traverseTo\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigation.updateCurrentEntry",
      "info": {
        "code": "\"Navigation\" in self && \"updateCurrentEntry\" in Navigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationActivation",
      "info": {
        "code": "(function () {\n  if (!(\"navigation\" in self)) {\n    return { result: false, message: \"navigation is not defined\" };\n  }\n  var instance = navigation.activation;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "navigation is not defined"
    },
    {
      "name": "api.NavigationActivation.entry",
      "info": {
        "code": "(function () {\n  if (!(\"navigation\" in self)) {\n    return { result: false, message: \"navigation is not defined\" };\n  }\n  var instance = navigation.activation;\n  return !!instance && \"entry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "navigation is not defined"
    },
    {
      "name": "api.NavigationActivation.from",
      "info": {
        "code": "(function () {\n  if (!(\"navigation\" in self)) {\n    return { result: false, message: \"navigation is not defined\" };\n  }\n  var instance = navigation.activation;\n  return !!instance && \"from\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "navigation is not defined"
    },
    {
      "name": "api.NavigationActivation.navigationType",
      "info": {
        "code": "(function () {\n  if (!(\"navigation\" in self)) {\n    return { result: false, message: \"navigation is not defined\" };\n  }\n  var instance = navigation.activation;\n  return !!instance && \"navigationType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "navigation is not defined"
    },
    {
      "name": "api.NavigationCurrentEntryChangeEvent",
      "info": {
        "code": "\"NavigationCurrentEntryChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationCurrentEntryChangeEvent.NavigationCurrentEntryChangeEvent",
      "info": {
        "code": "bcd.testConstructor('NavigationCurrentEntryChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NavigationCurrentEntryChangeEvent is not defined"
    },
    {
      "name": "api.NavigationCurrentEntryChangeEvent.from",
      "info": {
        "code": "\"NavigationCurrentEntryChangeEvent\" in self && \"from\" in NavigationCurrentEntryChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationCurrentEntryChangeEvent.navigationType",
      "info": {
        "code": "\"NavigationCurrentEntryChangeEvent\" in self && \"navigationType\" in NavigationCurrentEntryChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination",
      "info": {
        "code": "\"NavigationDestination\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.getState",
      "info": {
        "code": "\"NavigationDestination\" in self && \"getState\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.id",
      "info": {
        "code": "\"NavigationDestination\" in self && \"id\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.index",
      "info": {
        "code": "\"NavigationDestination\" in self && \"index\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.key",
      "info": {
        "code": "\"NavigationDestination\" in self && \"key\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.sameDocument",
      "info": {
        "code": "\"NavigationDestination\" in self && \"sameDocument\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationDestination.url",
      "info": {
        "code": "\"NavigationDestination\" in self && \"url\" in NavigationDestination.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationEvent",
      "info": {
        "code": "\"NavigationEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationEvent.NavigationEvent",
      "info": {
        "code": "bcd.testConstructor('NavigationEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: NavigationEvent is not defined"
    },
    {
      "name": "api.NavigationEvent.dir",
      "info": {
        "code": "\"NavigationEvent\" in self && \"dir\" in NavigationEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationEvent.relatedTarget",
      "info": {
        "code": "\"NavigationEvent\" in self && \"relatedTarget\" in NavigationEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.getState",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"getState\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.id",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"id\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.index",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"index\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.key",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"key\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.sameDocument",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"sameDocument\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationHistoryEntry.url",
      "info": {
        "code": "\"NavigationHistoryEntry\" in self && \"url\" in NavigationHistoryEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPrecommitController",
      "info": {
        "code": "\"NavigationPrecommitController\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPrecommitController.redirect",
      "info": {
        "code": "\"NavigationPrecommitController\" in self && \"redirect\" in NavigationPrecommitController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPreloadManager",
      "info": {
        "code": "\"NavigationPreloadManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPreloadManager.disable",
      "info": {
        "code": "\"NavigationPreloadManager\" in self && \"disable\" in NavigationPreloadManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPreloadManager.enable",
      "info": {
        "code": "\"NavigationPreloadManager\" in self && \"enable\" in NavigationPreloadManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPreloadManager.getState",
      "info": {
        "code": "\"NavigationPreloadManager\" in self && \"getState\" in NavigationPreloadManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationPreloadManager.setHeaderValue",
      "info": {
        "code": "\"NavigationPreloadManager\" in self && \"setHeaderValue\" in NavigationPreloadManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationTransition",
      "info": {
        "code": "\"NavigationTransition\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationTransition.committed",
      "info": {
        "code": "\"NavigationTransition\" in self && \"committed\" in NavigationTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationTransition.finished",
      "info": {
        "code": "\"NavigationTransition\" in self && \"finished\" in NavigationTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationTransition.from",
      "info": {
        "code": "\"NavigationTransition\" in self && \"from\" in NavigationTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigationTransition.navigationType",
      "info": {
        "code": "\"NavigationTransition\" in self && \"navigationType\" in NavigationTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Navigator",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.activeVRDisplays",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"activeVRDisplays\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.adAuctionComponents",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"adAuctionComponents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.appCodeName",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"appCodeName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.appName",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"appName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.appVersion",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"appVersion\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.attribution",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"attribution\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.audioSession",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"audioSession\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.authentication",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"authentication\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.bluetooth",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"bluetooth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.buildID",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"buildID\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.canLoadAdAuctionFencedFrame",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"canLoadAdAuctionFencedFrame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.canShare",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"canShare\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.canShare.data_files_parameter",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return bcd.testOptionParam(instance, \"canShare\", \"files\", [\n    new File([\"foo bar\"], \"foo.txt\")\n  ]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.canShare.data_text_parameter",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return bcd.testOptionParam(instance, \"canShare\", \"text\", \"foo bar\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.clearAppBadge",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"clearAppBadge\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.clearOriginJoinedAdInterestGroups",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"clearOriginJoinedAdInterestGroups\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.clipboard",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"clipboard\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.connection",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"connection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.contacts",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"contacts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.cookieEnabled",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"cookieEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.createAuctionNonce",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"createAuctionNonce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.createHandwritingRecognizer",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"createHandwritingRecognizer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.credentials",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"credentials\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.deprecatedReplaceInURN",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"deprecatedReplaceInURN\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.deprecatedRunAdAuctionEnforcesKAnonymity",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"deprecatedRunAdAuctionEnforcesKAnonymity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.deprecatedURNtoURL",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"deprecatedURNtoURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.deviceMemory",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"deviceMemory\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.devicePosture",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"devicePosture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.doNotTrack",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"doNotTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.geolocation",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"geolocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getAutoplayPolicy",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getAutoplayPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getBattery",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getBattery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getGamepads",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getGamepads\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getInstalledRelatedApps",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getInstalledRelatedApps\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getInterestGroupAdAuctionData",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getInterestGroupAdAuctionData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getUserMedia",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getUserMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.getVRDisplays",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"getVRDisplays\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.globalPrivacyControl",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"globalPrivacyControl\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.gpu",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"gpu\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.hardwareConcurrency",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"hardwareConcurrency\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.hid",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"hid\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.ink",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"ink\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.javaEnabled",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"javaEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.joinAdInterestGroup",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"joinAdInterestGroup\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.keyboard",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"keyboard\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.language",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"language\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.languages",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"languages\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.leaveAdInterestGroup",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"leaveAdInterestGroup\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.locks",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"locks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.login",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"login\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.managed",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"managed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.maxTouchPoints",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"maxTouchPoints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.mediaCapabilities",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"mediaCapabilities\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.mediaDevices",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"mediaDevices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.mediaSession",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"mediaSession\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.mimeTypes",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"mimeTypes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.ml",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"ml\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.onLine",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"onLine\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.oscpu",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"oscpu\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.pdfViewerEnabled",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"pdfViewerEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.permissions",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"permissions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.platform",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"platform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.plugins",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"plugins\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.preferences",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"preferences\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.presentation",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"presentation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.product",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"product\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.productSub",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"productSub\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.protectedAudience",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"protectedAudience\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.queryHandwritingRecognizer",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"queryHandwritingRecognizer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.registerProtocolHandler",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"registerProtocolHandler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.requestMIDIAccess",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"requestMIDIAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.requestMediaKeySystemAccess",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"requestMediaKeySystemAccess\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.runAdAuction",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"runAdAuction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.scheduling",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"scheduling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.sendBeacon",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"sendBeacon\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.serial",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"serial\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.serviceWorker",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"serviceWorker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.setAppBadge",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"setAppBadge\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.share",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"share\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.share.data_files_parameter",
      "info": {
        "code": "(function () {\n  var instance = navigator; // If `canShare` supports the parameter, `share` does\n  return bcd.testOptionParam(instance, \"canShare\", \"files\", [\n    new File([\"foo bar\"], \"foo.txt\")\n  ]);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.share.data_text_parameter",
      "info": {
        "code": "(function () {\n  var instance = navigator; // If `canShare` supports the parameter, `share` does\n  return bcd.testOptionParam(instance, \"canShare\", \"text\", \"foo bar\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.storage",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"storage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.storageBuckets",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"storageBuckets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.taintEnabled",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"taintEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.unregisterProtocolHandler",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"unregisterProtocolHandler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.updateAdInterestGroups",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"updateAdInterestGroups\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.usb",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"usb\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.userActivation",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"userActivation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.userAgent",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"userAgent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.userAgentData",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"userAgentData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.vendor",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"vendor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.vendorSub",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"vendorSub\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.vibrate",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"vibrate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.virtualKeyboard",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"virtualKeyboard\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.wakeLock",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"wakeLock\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.webdriver",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"webdriver\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.windowControlsOverlay",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"windowControlsOverlay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Navigator.xr",
      "info": {
        "code": "(function () {\n  var instance = navigator;\n  return !!instance && \"xr\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.NavigatorLogin",
      "info": {
        "code": "\"NavigatorLogin\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorLogin.setStatus",
      "info": {
        "code": "\"NavigatorLogin\" in self && \"setStatus\" in NavigatorLogin.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData",
      "info": {
        "code": "\"NavigatorManagedData\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getAnnotatedAssetId",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getAnnotatedAssetId\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getAnnotatedLocation",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getAnnotatedLocation\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getDirectoryId",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getDirectoryId\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getHostname",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getHostname\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getManagedConfiguration",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getManagedConfiguration\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorManagedData.getSerialNumber",
      "info": {
        "code": "\"NavigatorManagedData\" in self && \"getSerialNumber\" in NavigatorManagedData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData",
      "info": {
        "code": "\"NavigatorUAData\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData.brands",
      "info": {
        "code": "\"NavigatorUAData\" in self && \"brands\" in NavigatorUAData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData.getHighEntropyValues",
      "info": {
        "code": "\"NavigatorUAData\" in self && \"getHighEntropyValues\" in NavigatorUAData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData.mobile",
      "info": {
        "code": "\"NavigatorUAData\" in self && \"mobile\" in NavigatorUAData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData.platform",
      "info": {
        "code": "\"NavigatorUAData\" in self && \"platform\" in NavigatorUAData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NavigatorUAData.toJSON",
      "info": {
        "code": "\"NavigatorUAData\" in self && \"toJSON\" in NavigatorUAData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation",
      "info": {
        "code": "\"NetworkInformation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.downlink",
      "info": {
        "code": "\"NetworkInformation\" in self && \"downlink\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.downlinkMax",
      "info": {
        "code": "\"NetworkInformation\" in self && \"downlinkMax\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.effectiveType",
      "info": {
        "code": "\"NetworkInformation\" in self && \"effectiveType\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.rtt",
      "info": {
        "code": "\"NetworkInformation\" in self && \"rtt\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.saveData",
      "info": {
        "code": "\"NetworkInformation\" in self && \"saveData\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NetworkInformation.type",
      "info": {
        "code": "\"NetworkInformation\" in self && \"type\" in NetworkInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Node",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.appendChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"appendChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.baseURI",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"baseURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.childNodes",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"childNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.cloneNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"cloneNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.compareDocumentPosition",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"compareDocumentPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.contains",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"contains\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.firstChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"firstChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.getRootNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"getRootNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.hasChildNodes",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"hasChildNodes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.insertBefore",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"insertBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.isConnected",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"isConnected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.isDefaultNamespace",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"isDefaultNamespace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.isEqualNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"isEqualNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.isSameNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"isSameNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.lastChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lastChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.lookupNamespaceURI",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lookupNamespaceURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.lookupPrefix",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"lookupPrefix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.nextSibling",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"nextSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.nodeName",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"nodeName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.nodeType",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"nodeType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.nodeValue",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"nodeValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.normalize",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"normalize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.ownerDocument",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"ownerDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.parentElement",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"parentElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.parentNode",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"parentNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.previousSibling",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"previousSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.removeChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"removeChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.replaceChild",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"replaceChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Node.textContent",
      "info": {
        "code": "(function () {\n  var instance = document;\n  return !!instance && \"textContent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.detach",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"detach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.filter",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"filter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.nextNode",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"nextNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.pointerBeforeReferenceNode",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"pointerBeforeReferenceNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.previousNode",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"previousNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.referenceNode",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"referenceNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.root",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"root\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeIterator.whatToShow",
      "info": {
        "code": "(function () {\n  var instance = document.createNodeIterator(document);\n  return !!instance && \"whatToShow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.@@iterator",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.entries",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.forEach",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.item",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.keys",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.length",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NodeList.values",
      "info": {
        "code": "(function () {\n  var instance = document.childNodes;\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.NotRestoredReasonDetails",
      "info": {
        "code": "\"NotRestoredReasonDetails\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasonDetails.reason",
      "info": {
        "code": "\"NotRestoredReasonDetails\" in self && \"reason\" in NotRestoredReasonDetails.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasonDetails.toJSON",
      "info": {
        "code": "\"NotRestoredReasonDetails\" in self && \"toJSON\" in NotRestoredReasonDetails.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons",
      "info": {
        "code": "\"NotRestoredReasons\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.children",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"children\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.id",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"id\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.name",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"name\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.reasons",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"reasons\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.src",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"src\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.toJSON",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"toJSON\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.NotRestoredReasons.url",
      "info": {
        "code": "\"NotRestoredReasons\" in self && \"url\" in NotRestoredReasons.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Notification",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.Notification",
      "info": {
        "code": "bcd.testConstructor('Notification')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Notification is not defined"
    },
    {
      "name": "api.Notification.actions",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"actions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.badge",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"badge\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.body",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"body\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.close",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.data",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"data\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.dir",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"dir\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.icon",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"icon\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.image",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"image\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.lang",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"lang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.maxActions_static",
      "info": {
        "code": "\"Notification\" in self && \"maxActions\" in Notification",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Notification.navigate",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"navigate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.permission_static",
      "info": {
        "code": "\"Notification\" in self && \"permission\" in Notification",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Notification.renotify",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"renotify\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.requestPermission_static",
      "info": {
        "code": "\"Notification\" in self && \"requestPermission\" in Notification",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Notification.requireInteraction",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"requireInteraction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.silent",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"silent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.tag",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"tag\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.timestamp",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"timestamp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.title",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"title\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.Notification.vibrate",
      "info": {
        "code": "(function () {\n  if (!(\"Notification\" in self)) {\n    return { result: false, message: \"Notification is not defined\" };\n  }\n  var instance = new Notification(\"\");\n  return !!instance && \"vibrate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Notification is not defined"
    },
    {
      "name": "api.OES_draw_buffers_indexed",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.blendEquationSeparateiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"blendEquationSeparateiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.blendEquationiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"blendEquationiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.blendFuncSeparateiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"blendFuncSeparateiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.blendFunciOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"blendFunciOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.colorMaskiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"colorMaskiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.disableiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"disableiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_draw_buffers_indexed.enableiOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_draw_buffers_indexed\"\n  );\n  return !!instance && \"enableiOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_element_index_uint",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_element_index_uint\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_fbo_render_mipmap",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"OES_fbo_render_mipmap\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_standard_derivatives",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_standard_derivatives\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_texture_float",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"OES_texture_float\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_texture_float_linear",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"OES_texture_float_linear\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.OES_texture_half_float",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_texture_half_float\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_texture_half_float_linear",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_texture_half_float_linear\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_vertex_array_object",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_vertex_array_object\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_vertex_array_object.bindVertexArrayOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_vertex_array_object\"\n  );\n  return !!instance && \"bindVertexArrayOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_vertex_array_object.createVertexArrayOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_vertex_array_object\"\n  );\n  return !!instance && \"createVertexArrayOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_vertex_array_object.deleteVertexArrayOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_vertex_array_object\"\n  );\n  return !!instance && \"deleteVertexArrayOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OES_vertex_array_object.isVertexArrayOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"OES_vertex_array_object\"\n  );\n  return !!instance && \"isVertexArrayOES\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.OTPCredential",
      "info": {
        "code": "\"OTPCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OTPCredential.code",
      "info": {
        "code": "\"OTPCredential\" in self && \"code\" in OTPCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OVR_multiview2",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\"OVR_multiview2\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.OVR_multiview2.framebufferTextureMultiviewOVR",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  var instance = reusableInstances.webGL2.getExtension(\"OVR_multiview2\");\n  return !!instance && \"framebufferTextureMultiviewOVR\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.Observable",
      "info": {
        "code": "\"Observable\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.Observable",
      "info": {
        "code": "bcd.testConstructor('Observable')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Observable is not defined"
    },
    {
      "name": "api.Observable.catch",
      "info": {
        "code": "\"Observable\" in self && \"catch\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.drop",
      "info": {
        "code": "\"Observable\" in self && \"drop\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.every",
      "info": {
        "code": "\"Observable\" in self && \"every\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.filter",
      "info": {
        "code": "\"Observable\" in self && \"filter\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.finally",
      "info": {
        "code": "\"Observable\" in self && \"finally\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.find",
      "info": {
        "code": "\"Observable\" in self && \"find\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.first",
      "info": {
        "code": "\"Observable\" in self && \"first\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.flatMap",
      "info": {
        "code": "\"Observable\" in self && \"flatMap\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.forEach",
      "info": {
        "code": "\"Observable\" in self && \"forEach\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.from_static",
      "info": {
        "code": "\"Observable\" in self && \"from\" in Observable",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.inspect",
      "info": {
        "code": "\"Observable\" in self && \"inspect\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.last",
      "info": {
        "code": "\"Observable\" in self && \"last\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.map",
      "info": {
        "code": "\"Observable\" in self && \"map\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.reduce",
      "info": {
        "code": "\"Observable\" in self && \"reduce\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.some",
      "info": {
        "code": "\"Observable\" in self && \"some\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.subscribe",
      "info": {
        "code": "\"Observable\" in self && \"subscribe\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.switchMap",
      "info": {
        "code": "\"Observable\" in self && \"switchMap\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.take",
      "info": {
        "code": "\"Observable\" in self && \"take\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.takeUntil",
      "info": {
        "code": "\"Observable\" in self && \"takeUntil\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Observable.toArray",
      "info": {
        "code": "\"Observable\" in self && \"toArray\" in Observable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OfflineAudioCompletionEvent",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var buffer = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  if (!buffer) {\n    return { result: false, message: \"buffer is falsy\" };\n  }\n  if (!(\"OfflineAudioCompletionEvent\" in self)) {\n    return {\n      result: false,\n      message: \"OfflineAudioCompletionEvent is not defined\"\n    };\n  }\n  var instance = new OfflineAudioCompletionEvent(\"complete\", {\n    renderedBuffer: buffer\n  });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OfflineAudioCompletionEvent.OfflineAudioCompletionEvent",
      "info": {
        "code": "bcd.testConstructor('OfflineAudioCompletionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: OfflineAudioCompletionEvent is not defined"
    },
    {
      "name": "api.OfflineAudioCompletionEvent.renderedBuffer",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var buffer = reusableInstances.audioContext.createBuffer(\n    2,\n    reusableInstances.audioContext.sampleRate * 3,\n    reusableInstances.audioContext.sampleRate\n  );\n  if (!buffer) {\n    return { result: false, message: \"buffer is falsy\" };\n  }\n  if (!(\"OfflineAudioCompletionEvent\" in self)) {\n    return {\n      result: false,\n      message: \"OfflineAudioCompletionEvent is not defined\"\n    };\n  }\n  var instance = new OfflineAudioCompletionEvent(\"complete\", {\n    renderedBuffer: buffer\n  });\n  return !!instance && \"renderedBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OfflineAudioContext",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  return \"OfflineAudioContext\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OfflineAudioContext.OfflineAudioContext",
      "info": {
        "code": "bcd.testConstructor('OfflineAudioContext')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: OfflineAudioContext is not defined"
    },
    {
      "name": "api.OfflineAudioContext.OfflineAudioContext.options_parameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  try {\n    new OfflineAudioContext({\n      numberOfChannels: 2,\n      length: 44100 * 40,\n      sampleRate: 44100\n    });\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OfflineAudioContext is not defined"
    },
    {
      "name": "api.OfflineAudioContext.length",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OfflineAudioContext.resume",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  return !!instance && \"resume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OfflineAudioContext.startRendering",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  return !!instance && \"startRendering\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OfflineAudioContext.startRendering.returns_promise",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  if (!(instance && instance.startRendering)) {\n    return { result: false, message: \"instance.startRendering is not defined\" };\n  }\n  var value = instance.startRendering();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "instance.startRendering is not defined"
    },
    {
      "name": "api.OfflineAudioContext.suspend",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.offlineAudioContext;\n  return !!instance && \"suspend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvas",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.OffscreenCanvas",
      "info": {
        "code": "bcd.testConstructor('OffscreenCanvas')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.convertToBlob",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance && \"convertToBlob\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.convertToBlob.option_type_parameter_webp",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  instance.getContext(\"2d\");\n  if (!(\"convertToBlob\" in instance)) {\n    return { result: false, message: \"instance.convertToBlob is not defined\" };\n  }\n  var blobPromise = instance.convertToBlob({ type: \"image/webp\" });\n  return blobPromise.then(function (blob) {\n    return blob.type === \"image/webp\";\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance && \"getContext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext.2d_context",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"2d\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext.bitmaprenderer_context",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"bitmaprenderer\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext.webgl2_context",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgl2\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext.webgl_context",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgl\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.getContext.webgpu_context",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  bcd.skipIf(\n    \"Generating a WebGPU context in Safari 18.4 causes a browser crash\",\n    \"safari\",\n    \"18.4\"\n  );\n  if (!(instance && instance.getContext)) {\n    return { result: false, message: \"instance.getContext is not defined\" };\n  }\n  try {\n    var ctx = instance.getContext(\"webgpu\");\n    return !!ctx;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.height",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.transferToImageBitmap",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance && \"transferToImageBitmap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvas.width",
      "info": {
        "code": "(function () {\n  if (!(\"OffscreenCanvas\" in self)) {\n    return { result: false, message: \"OffscreenCanvas is not defined\" };\n  }\n  var instance = new OffscreenCanvas(1024, 1024);\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "OffscreenCanvas is not defined"
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.arc",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"arc\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.arcTo",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"arcTo\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.beginPath",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"beginPath\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.bezierCurveTo",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"bezierCurveTo\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.canvas",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"canvas\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.clearRect",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"clearRect\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.clip",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"clip\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.closePath",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"closePath\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.commit",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"commit\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.createConicGradient",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"createConicGradient\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.createImageData",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"createImageData\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.createLinearGradient",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"createLinearGradient\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.createPattern",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"createPattern\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.createRadialGradient",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"createRadialGradient\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.direction",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"direction\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.drawImage",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"drawImage\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.ellipse",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"ellipse\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fill",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fill\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fillRect",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fillRect\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fillStyle",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fillStyle\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fillText",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fillText\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.filter",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"filter\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.font",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"font\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fontKerning",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fontKerning\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fontStretch",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fontStretch\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.fontVariantCaps",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"fontVariantCaps\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.getContextAttributes",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"getContextAttributes\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.getImageData",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"getImageData\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.getLineDash",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"getLineDash\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.getTransform",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"getTransform\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.globalAlpha",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"globalAlpha\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.globalCompositeOperation",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"globalCompositeOperation\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.imageSmoothingEnabled",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"imageSmoothingEnabled\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.imageSmoothingQuality",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"imageSmoothingQuality\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.isContextLost",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"isContextLost\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.isPointInPath",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"isPointInPath\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.isPointInStroke",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"isPointInStroke\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lang",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lang\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.letterSpacing",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"letterSpacing\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lineCap",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lineCap\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lineDashOffset",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lineDashOffset\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lineJoin",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lineJoin\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lineTo",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lineTo\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.lineWidth",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"lineWidth\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.measureText",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"measureText\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.miterLimit",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"miterLimit\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.moveTo",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"moveTo\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.putImageData",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"putImageData\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.quadraticCurveTo",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"quadraticCurveTo\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.rect",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"rect\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.reset",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"reset\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.resetTransform",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"resetTransform\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.restore",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"restore\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.rotate",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"rotate\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.roundRect",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"roundRect\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.save",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"save\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.scale",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"scale\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.setLineDash",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"setLineDash\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.setTransform",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"setTransform\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.shadowBlur",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"shadowBlur\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.shadowColor",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"shadowColor\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.shadowOffsetX",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"shadowOffsetX\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.shadowOffsetY",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"shadowOffsetY\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.stroke",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"stroke\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.strokeRect",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"strokeRect\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.strokeStyle",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"strokeStyle\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.strokeText",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"strokeText\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.textAlign",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"textAlign\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.textBaseline",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"textBaseline\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.textRendering",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"textRendering\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.transform",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"transform\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.translate",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"translate\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OffscreenCanvasRenderingContext2D.wordSpacing",
      "info": {
        "code": "\"OffscreenCanvasRenderingContext2D\" in self && \"wordSpacing\" in OffscreenCanvasRenderingContext2D.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OrientationSensor",
      "info": {
        "code": "\"OrientationSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OrientationSensor.populateMatrix",
      "info": {
        "code": "\"OrientationSensor\" in self && \"populateMatrix\" in OrientationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OrientationSensor.quaternion",
      "info": {
        "code": "\"OrientationSensor\" in self && \"quaternion\" in OrientationSensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OscillatorNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createOscillator\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createOscillator is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createOscillator();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OscillatorNode.OscillatorNode",
      "info": {
        "code": "bcd.testConstructor('OscillatorNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: OscillatorNode is not defined"
    },
    {
      "name": "api.OscillatorNode.detune",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createOscillator\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createOscillator is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createOscillator();\n  return !!instance && \"detune\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OscillatorNode.frequency",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createOscillator\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createOscillator is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createOscillator();\n  return !!instance && \"frequency\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OscillatorNode.setPeriodicWave",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createOscillator\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createOscillator is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createOscillator();\n  return !!instance && \"setPeriodicWave\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OscillatorNode.type",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createOscillator\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createOscillator is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createOscillator();\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.OverconstrainedError",
      "info": {
        "code": "\"OverconstrainedError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.OverconstrainedError.OverconstrainedError",
      "info": {
        "code": "bcd.testConstructor('OverconstrainedError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: OverconstrainedError is not defined"
    },
    {
      "name": "api.OverconstrainedError.constraint",
      "info": {
        "code": "\"OverconstrainedError\" in self && \"constraint\" in OverconstrainedError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageRevealEvent",
      "info": {
        "code": "\"PageRevealEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageRevealEvent.PageRevealEvent",
      "info": {
        "code": "bcd.testConstructor('PageRevealEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PageRevealEvent is not defined"
    },
    {
      "name": "api.PageRevealEvent.viewTransition",
      "info": {
        "code": "\"PageRevealEvent\" in self && \"viewTransition\" in PageRevealEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageSwapEvent",
      "info": {
        "code": "\"PageSwapEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageSwapEvent.PageSwapEvent",
      "info": {
        "code": "bcd.testConstructor('PageSwapEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PageSwapEvent is not defined"
    },
    {
      "name": "api.PageSwapEvent.activation",
      "info": {
        "code": "\"PageSwapEvent\" in self && \"activation\" in PageSwapEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageSwapEvent.viewTransition",
      "info": {
        "code": "\"PageSwapEvent\" in self && \"viewTransition\" in PageSwapEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PageTransitionEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new PageTransitionEvent(\"pageshow\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"PageTransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.PageTransitionEvent.PageTransitionEvent",
      "info": {
        "code": "bcd.testConstructor('PageTransitionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PageTransitionEvent is not defined"
    },
    {
      "name": "api.PageTransitionEvent.persisted",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new PageTransitionEvent(\"pageshow\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"PageTransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"persisted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.PannerNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.PannerNode",
      "info": {
        "code": "bcd.testConstructor('PannerNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PannerNode is not defined"
    },
    {
      "name": "api.PannerNode.coneInnerAngle",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"coneInnerAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.coneOuterAngle",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"coneOuterAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.coneOuterGain",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"coneOuterGain\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.distanceModel",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"distanceModel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.maxDistance",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"maxDistance\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.orientationX",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"orientationX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.orientationY",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"orientationY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.orientationZ",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"orientationZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.panningModel",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"panningModel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.positionX",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"positionX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.positionY",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"positionY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.positionZ",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"positionZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.refDistance",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"refDistance\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.rolloffFactor",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"rolloffFactor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.setOrientation",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"setOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.setPosition",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"setPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PannerNode.setVelocity",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createPanner();\n  return !!instance && \"setVelocity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PasswordCredential",
      "info": {
        "code": "\"PasswordCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PasswordCredential.PasswordCredential",
      "info": {
        "code": "bcd.testConstructor('PasswordCredential')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PasswordCredential is not defined"
    },
    {
      "name": "api.PasswordCredential.iconURL",
      "info": {
        "code": "\"PasswordCredential\" in self && \"iconURL\" in PasswordCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PasswordCredential.name",
      "info": {
        "code": "\"PasswordCredential\" in self && \"name\" in PasswordCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PasswordCredential.password",
      "info": {
        "code": "\"PasswordCredential\" in self && \"password\" in PasswordCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Path2D",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.Path2D",
      "info": {
        "code": "bcd.testConstructor('Path2D')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Path2D is not defined"
    },
    {
      "name": "api.Path2D.addPath",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"addPath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.arc",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"arc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.arcTo",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"arcTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.bezierCurveTo",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"bezierCurveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.closePath",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"closePath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.ellipse",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"ellipse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.lineTo",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"lineTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.moveTo",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"moveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.quadraticCurveTo",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"quadraticCurveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.rect",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"rect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.Path2D.roundRect",
      "info": {
        "code": "(function () {\n  if (!(\"Path2D\" in self)) {\n    return { result: false, message: \"Path2D is not defined\" };\n  }\n  var instance = new Path2D();\n  return !!instance && \"roundRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Path2D is not defined"
    },
    {
      "name": "api.PaymentAddress",
      "info": {
        "code": "\"PaymentAddress\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.addressLine",
      "info": {
        "code": "\"PaymentAddress\" in self && \"addressLine\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.city",
      "info": {
        "code": "\"PaymentAddress\" in self && \"city\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.country",
      "info": {
        "code": "\"PaymentAddress\" in self && \"country\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.dependentLocality",
      "info": {
        "code": "\"PaymentAddress\" in self && \"dependentLocality\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.organization",
      "info": {
        "code": "\"PaymentAddress\" in self && \"organization\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.phone",
      "info": {
        "code": "\"PaymentAddress\" in self && \"phone\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.postalCode",
      "info": {
        "code": "\"PaymentAddress\" in self && \"postalCode\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.recipient",
      "info": {
        "code": "\"PaymentAddress\" in self && \"recipient\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.region",
      "info": {
        "code": "\"PaymentAddress\" in self && \"region\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.sortingCode",
      "info": {
        "code": "\"PaymentAddress\" in self && \"sortingCode\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentAddress.toJSON",
      "info": {
        "code": "\"PaymentAddress\" in self && \"toJSON\" in PaymentAddress.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentManager",
      "info": {
        "code": "\"PaymentManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentManager.enableDelegations",
      "info": {
        "code": "\"PaymentManager\" in self && \"enableDelegations\" in PaymentManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentManager.userHint",
      "info": {
        "code": "\"PaymentManager\" in self && \"userHint\" in PaymentManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentMethodChangeEvent",
      "info": {
        "code": "\"PaymentMethodChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentMethodChangeEvent.PaymentMethodChangeEvent",
      "info": {
        "code": "bcd.testConstructor('PaymentMethodChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PaymentMethodChangeEvent is not defined"
    },
    {
      "name": "api.PaymentMethodChangeEvent.methodDetails",
      "info": {
        "code": "\"PaymentMethodChangeEvent\" in self && \"methodDetails\" in PaymentMethodChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentMethodChangeEvent.methodName",
      "info": {
        "code": "\"PaymentMethodChangeEvent\" in self && \"methodName\" in PaymentMethodChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest",
      "info": {
        "code": "\"PaymentRequest\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.PaymentRequest",
      "info": {
        "code": "bcd.testConstructor('PaymentRequest')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PaymentRequest is not defined"
    },
    {
      "name": "api.PaymentRequest.abort",
      "info": {
        "code": "\"PaymentRequest\" in self && \"abort\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.canMakePayment",
      "info": {
        "code": "\"PaymentRequest\" in self && \"canMakePayment\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.id",
      "info": {
        "code": "\"PaymentRequest\" in self && \"id\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.securePaymentConfirmationAvailability_static",
      "info": {
        "code": "\"PaymentRequest\" in self && \"securePaymentConfirmationAvailability\" in PaymentRequest",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.shippingAddress",
      "info": {
        "code": "\"PaymentRequest\" in self && \"shippingAddress\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.shippingOption",
      "info": {
        "code": "\"PaymentRequest\" in self && \"shippingOption\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.shippingType",
      "info": {
        "code": "\"PaymentRequest\" in self && \"shippingType\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequest.show",
      "info": {
        "code": "\"PaymentRequest\" in self && \"show\" in PaymentRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequestUpdateEvent",
      "info": {
        "code": "\"PaymentRequestUpdateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentRequestUpdateEvent.PaymentRequestUpdateEvent",
      "info": {
        "code": "bcd.testConstructor('PaymentRequestUpdateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PaymentRequestUpdateEvent is not defined"
    },
    {
      "name": "api.PaymentRequestUpdateEvent.updateWith",
      "info": {
        "code": "\"PaymentRequestUpdateEvent\" in self && \"updateWith\" in PaymentRequestUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse",
      "info": {
        "code": "\"PaymentResponse\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.complete",
      "info": {
        "code": "\"PaymentResponse\" in self && \"complete\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.details",
      "info": {
        "code": "\"PaymentResponse\" in self && \"details\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.methodName",
      "info": {
        "code": "\"PaymentResponse\" in self && \"methodName\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.payerEmail",
      "info": {
        "code": "\"PaymentResponse\" in self && \"payerEmail\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.payerName",
      "info": {
        "code": "\"PaymentResponse\" in self && \"payerName\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.payerPhone",
      "info": {
        "code": "\"PaymentResponse\" in self && \"payerPhone\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.requestId",
      "info": {
        "code": "\"PaymentResponse\" in self && \"requestId\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.retry",
      "info": {
        "code": "\"PaymentResponse\" in self && \"retry\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.shippingAddress",
      "info": {
        "code": "\"PaymentResponse\" in self && \"shippingAddress\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.shippingOption",
      "info": {
        "code": "\"PaymentResponse\" in self && \"shippingOption\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PaymentResponse.toJSON",
      "info": {
        "code": "\"PaymentResponse\" in self && \"toJSON\" in PaymentResponse.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Performance",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.clearMarks",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"clearMarks\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.clearMeasures",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"clearMeasures\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.clearResourceTimings",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"clearResourceTimings\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.eventCounts",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"eventCounts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.getEntries",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"getEntries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.getEntriesByName",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"getEntriesByName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.getEntriesByType",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"getEntriesByType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.interactionCount",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"interactionCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.mark",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"mark\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.mark.markOptions_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  if (!(instance && instance.mark)) {\n    return { result: false, message: \"instance.mark is not defined\" };\n  }\n  function mark(options) {\n    instance.mark(\"foo\", options);\n  }\n  return bcd.testOptionParam(mark, null, \"detail\", \"bar\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.mark.returns_performancemark",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance.mark(\"foo\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.measure",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"measure\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.measure.measureOptions_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  if (!(instance && instance.measure)) {\n    return { result: false, message: \"instance.measure is not defined\" };\n  }\n  function measure(options) {\n    instance.measure(\"foo\", options);\n  }\n  try {\n    return bcd.testOptionParam(measure, null, \"detail\", \"bar\", { start: 0 });\n  } catch (e) {\n    if (e instanceof SyntaxError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.measure.returns_performancemeasure",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance.measure(\"foo\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.measureUserAgentSpecificMemory",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"measureUserAgentSpecificMemory\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.memory",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"memory\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.navigation",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"navigation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.now",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"now\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.setResourceTimingBufferSize",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"setResourceTimingBufferSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.timeOrigin",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"timeOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.timing",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var instance = performance;\n  return !!instance && \"timing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.Performance.toJSON",
      "info": {
        "code": "\"Performance\" in self && \"toJSON\" in Performance.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming",
      "info": {
        "code": "\"PerformanceElementTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.element",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"element\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.id",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"id\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.identifier",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"identifier\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.intersectionRect",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"intersectionRect\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.loadTime",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"loadTime\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.naturalHeight",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"naturalHeight\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.naturalWidth",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"naturalWidth\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.paintTime",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"paintTime\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.presentationTime",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"presentationTime\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.renderTime",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"renderTime\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.toJSON",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"toJSON\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceElementTiming.url",
      "info": {
        "code": "\"PerformanceElementTiming\" in self && \"url\" in PerformanceElementTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEntry",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.duration",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"duration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.entryType",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"entryType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.id",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.name",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.navigationId",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"navigationId\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.startTime",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"startTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEntry.toJSON",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"getEntries\" in prf)) {\n    return { result: false, message: \"performance.getEntries is not defined\" };\n  }\n  var instance = prf.getEntries()[0];\n  return !!instance && \"toJSON\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceEventTiming",
      "info": {
        "code": "\"PerformanceEventTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.cancelable",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"cancelable\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.interactionId",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"interactionId\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.processingEnd",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"processingEnd\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.processingStart",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"processingStart\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.target",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"target\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.targetSelector",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"targetSelector\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceEventTiming.toJSON",
      "info": {
        "code": "\"PerformanceEventTiming\" in self && \"toJSON\" in PerformanceEventTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.blockingDuration",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"blockingDuration\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.firstUIEventTimestamp",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"firstUIEventTimestamp\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.paintTime",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"paintTime\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.presentationTime",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"presentationTime\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.renderStart",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"renderStart\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.scripts",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"scripts\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.styleAndLayoutStart",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"styleAndLayoutStart\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongAnimationFrameTiming.toJSON",
      "info": {
        "code": "\"PerformanceLongAnimationFrameTiming\" in self && \"toJSON\" in PerformanceLongAnimationFrameTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongTaskTiming",
      "info": {
        "code": "\"PerformanceLongTaskTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongTaskTiming.attribution",
      "info": {
        "code": "\"PerformanceLongTaskTiming\" in self && \"attribution\" in PerformanceLongTaskTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceLongTaskTiming.toJSON",
      "info": {
        "code": "\"PerformanceLongTaskTiming\" in self && \"toJSON\" in PerformanceLongTaskTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceMark",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"mark\" in prf)) {\n    return { result: false, message: \"performance.mark is not defined\" };\n  }\n  performance.mark(\"mark\");\n  var instance = performance.getEntriesByName(\"mark\")[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceMark.PerformanceMark",
      "info": {
        "code": "bcd.testConstructor('PerformanceMark')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PerformanceMark is not defined"
    },
    {
      "name": "api.PerformanceMark.detail",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  if (!(\"mark\" in prf)) {\n    return { result: false, message: \"performance.mark is not defined\" };\n  }\n  performance.mark(\"mark\");\n  var instance = performance.getEntriesByName(\"mark\")[0];\n  return !!instance && \"detail\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceMeasure",
      "info": {
        "code": "\"PerformanceMeasure\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceMeasure.detail",
      "info": {
        "code": "\"PerformanceMeasure\" in self && \"detail\" in PerformanceMeasure.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigation",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.navigation;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceNavigation.redirectCount",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.navigation;\n  return !!instance && \"redirectCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceNavigation.toJSON",
      "info": {
        "code": "\"PerformanceNavigation\" in self && \"toJSON\" in PerformanceNavigation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigation.type",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.navigation;\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceNavigationTiming",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.activationStart",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"activationStart\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.criticalCHRestart",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"criticalCHRestart\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.domComplete",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"domComplete\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.domContentLoadedEventEnd",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"domContentLoadedEventEnd\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.domContentLoadedEventStart",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"domContentLoadedEventStart\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.domInteractive",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"domInteractive\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.loadEventEnd",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"loadEventEnd\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.loadEventStart",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"loadEventStart\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.notRestoredReasons",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"notRestoredReasons\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.redirectCount",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"redirectCount\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.toJSON",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"toJSON\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.type",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"type\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.unloadEventEnd",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"unloadEventEnd\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceNavigationTiming.unloadEventStart",
      "info": {
        "code": "\"PerformanceNavigationTiming\" in self && \"unloadEventStart\" in PerformanceNavigationTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserver",
      "info": {
        "code": "\"PerformanceObserver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserver.PerformanceObserver",
      "info": {
        "code": "bcd.testConstructor('PerformanceObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PerformanceObserver is not defined"
    },
    {
      "name": "api.PerformanceObserver.PerformanceObserver.droppedEntriesCount",
      "info": {
        "code": "(function () {\n  // Using the \"completed\" variable ensures the callback isn't run multiple times\n  var completed = false;\n\n  function perfObserver(entries, observer, droppedEntriesCount) {\n    if (!completed) {\n      success(typeof droppedEntriesCount != \"undefined\");\n      completed = true;\n    }\n  }\n\n  var observer = new PerformanceObserver(perfObserver);\n  observer.observe({ type: \"resource\", buffered: true });\n\n  bcd.addCleanup(function () {\n    observer.disconnect();\n  });\n\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: PerformanceObserver is not defined"
    },
    {
      "name": "api.PerformanceObserver.disconnect",
      "info": {
        "code": "\"PerformanceObserver\" in self && \"disconnect\" in PerformanceObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserver.observe",
      "info": {
        "code": "\"PerformanceObserver\" in self && \"observe\" in PerformanceObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserver.supportedEntryTypes_static",
      "info": {
        "code": "\"PerformanceObserver\" in self && \"supportedEntryTypes\" in PerformanceObserver",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserver.takeRecords",
      "info": {
        "code": "\"PerformanceObserver\" in self && \"takeRecords\" in PerformanceObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserverEntryList",
      "info": {
        "code": "\"PerformanceObserverEntryList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserverEntryList.getEntries",
      "info": {
        "code": "\"PerformanceObserverEntryList\" in self && \"getEntries\" in PerformanceObserverEntryList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserverEntryList.getEntriesByName",
      "info": {
        "code": "\"PerformanceObserverEntryList\" in self && \"getEntriesByName\" in PerformanceObserverEntryList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceObserverEntryList.getEntriesByType",
      "info": {
        "code": "\"PerformanceObserverEntryList\" in self && \"getEntriesByType\" in PerformanceObserverEntryList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformancePaintTiming",
      "info": {
        "code": "\"PerformancePaintTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformancePaintTiming.paintTime",
      "info": {
        "code": "\"PerformancePaintTiming\" in self && \"paintTime\" in PerformancePaintTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformancePaintTiming.presentationTime",
      "info": {
        "code": "\"PerformancePaintTiming\" in self && \"presentationTime\" in PerformancePaintTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformancePaintTiming.toJSON",
      "info": {
        "code": "\"PerformancePaintTiming\" in self && \"toJSON\" in PerformancePaintTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceResourceTiming",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.connectEnd",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"connectEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.connectStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"connectStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.contentEncoding",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"contentEncoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.contentType",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"contentType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.decodedBodySize",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"decodedBodySize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.deliveryType",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"deliveryType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.domainLookupEnd",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"domainLookupEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.domainLookupStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"domainLookupStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.encodedBodySize",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"encodedBodySize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.fetchStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"fetchStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.finalResponseHeadersStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"finalResponseHeadersStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.firstInterimResponseStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"firstInterimResponseStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.initiatorType",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"initiatorType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.nextHopProtocol",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"nextHopProtocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.redirectEnd",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"redirectEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.redirectStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"redirectStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.renderBlockingStatus",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"renderBlockingStatus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.requestStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"requestStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.responseEnd",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"responseEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.responseStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"responseStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.responseStatus",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"responseStatus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.secureConnectionStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"secureConnectionStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.serverTiming",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"serverTiming\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.toJSON",
      "info": {
        "code": "\"PerformanceResourceTiming\" in self && \"toJSON\" in PerformanceResourceTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceResourceTiming.transferSize",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"transferSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceResourceTiming.workerStart",
      "info": {
        "code": "(function () {\n  var instance = performance.getEntriesByType(\"resource\")[0];\n  return !!instance && \"workerStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: performance is not defined"
    },
    {
      "name": "api.PerformanceScriptTiming",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.executionStart",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"executionStart\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.forcedStyleAndLayoutDuration",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"forcedStyleAndLayoutDuration\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.invoker",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"invoker\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.invokerType",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"invokerType\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.pauseDuration",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"pauseDuration\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.sourceCharPosition",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"sourceCharPosition\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.sourceFunctionName",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"sourceFunctionName\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.sourceURL",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"sourceURL\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.toJSON",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"toJSON\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.window",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"window\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceScriptTiming.windowAttribution",
      "info": {
        "code": "\"PerformanceScriptTiming\" in self && \"windowAttribution\" in PerformanceScriptTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceServerTiming",
      "info": {
        "code": "\"PerformanceServerTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceServerTiming.description",
      "info": {
        "code": "\"PerformanceServerTiming\" in self && \"description\" in PerformanceServerTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceServerTiming.duration",
      "info": {
        "code": "\"PerformanceServerTiming\" in self && \"duration\" in PerformanceServerTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceServerTiming.name",
      "info": {
        "code": "\"PerformanceServerTiming\" in self && \"name\" in PerformanceServerTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceServerTiming.toJSON",
      "info": {
        "code": "\"PerformanceServerTiming\" in self && \"toJSON\" in PerformanceServerTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceTiming",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.connectEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"connectEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.connectStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"connectStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domComplete",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domComplete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domContentLoadedEventEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domContentLoadedEventEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domContentLoadedEventStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domContentLoadedEventStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domInteractive",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domInteractive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domLoading",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domLoading\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domainLookupEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domainLookupEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.domainLookupStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"domainLookupStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.fetchStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"fetchStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.loadEventEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"loadEventEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.loadEventStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"loadEventStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.navigationStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"navigationStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.redirectEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"redirectEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.redirectStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"redirectStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.requestStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"requestStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.responseEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"responseEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.responseStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"responseStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.secureConnectionStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"secureConnectionStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.toJSON",
      "info": {
        "code": "\"PerformanceTiming\" in self && \"toJSON\" in PerformanceTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PerformanceTiming.unloadEventEnd",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"unloadEventEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PerformanceTiming.unloadEventStart",
      "info": {
        "code": "(function () {\n  if (!(\"performance\" in self)) {\n    return { result: false, message: \"performance is not defined\" };\n  }\n  var prf = performance;\n  if (!prf) {\n    return { result: false, message: \"prf is falsy\" };\n  }\n  var instance = performance.timing;\n  return !!instance && \"unloadEventStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "performance is not defined"
    },
    {
      "name": "api.PeriodicSyncManager",
      "info": {
        "code": "\"PeriodicSyncManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PeriodicSyncManager.getTags",
      "info": {
        "code": "\"PeriodicSyncManager\" in self && \"getTags\" in PeriodicSyncManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PeriodicSyncManager.register",
      "info": {
        "code": "\"PeriodicSyncManager\" in self && \"register\" in PeriodicSyncManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PeriodicSyncManager.unregister",
      "info": {
        "code": "\"PeriodicSyncManager\" in self && \"unregister\" in PeriodicSyncManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PeriodicWave",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  var real = new Float32Array(2);\n  var imag = new Float32Array(2);\n  var instance = reusableInstances.audioContext.createPeriodicWave(real, imag);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.PeriodicWave.PeriodicWave",
      "info": {
        "code": "bcd.testConstructor('PeriodicWave')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PeriodicWave is not defined"
    },
    {
      "name": "api.PermissionStatus",
      "info": {
        "code": "\"PermissionStatus\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionStatus.name",
      "info": {
        "code": "\"PermissionStatus\" in self && \"name\" in PermissionStatus.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionStatus.state",
      "info": {
        "code": "\"PermissionStatus\" in self && \"state\" in PermissionStatus.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Permissions",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_accelerometer",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"accelerometer\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_accessibility-events",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"accessibility-events\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_ambient-light-sensor",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"ambient-light-sensor\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_background-sync",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"background-sync\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_camera",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"camera\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_clipboard-read",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"clipboard-read\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_clipboard-write",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"clipboard-write\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_compute-pressure",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"compute-pressure\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_geolocation",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"geolocation\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_gyroscope",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"gyroscope\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_local-fonts",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"local-fonts\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_magnetometer",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"magnetometer\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_microphone",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"microphone\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_midi",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"midi\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_notifications",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"notifications\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_payment-handler",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"payment-handler\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_persistent-storage",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"persistent-storage\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_push",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"push\", userVisibleOnly: true })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_screen-wake-lock",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"screen-wake-lock\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_storage-access",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"storage-access\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_top-level-storage-access",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"top-level-storage-access\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.permission_window-management",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  if (!(instance && \"query\" in instance)) {\n    return { result: false, message: \"Permissions.query is not defined\" };\n  }\n  return instance\n    .query({ name: \"window-management\" })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.query",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  return !!instance && \"query\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.request",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  return !!instance && \"request\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.requestAll",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  return !!instance && \"requestAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Permissions.revoke",
      "info": {
        "code": "(function () {\n  var instance = navigator.permissions;\n  return !!instance && \"revoke\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PermissionsPolicy",
      "info": {
        "code": "\"PermissionsPolicy\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionsPolicy.allowedFeatures",
      "info": {
        "code": "\"PermissionsPolicy\" in self && \"allowedFeatures\" in PermissionsPolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionsPolicy.allowsFeature",
      "info": {
        "code": "\"PermissionsPolicy\" in self && \"allowsFeature\" in PermissionsPolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionsPolicy.features",
      "info": {
        "code": "\"PermissionsPolicy\" in self && \"features\" in PermissionsPolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PermissionsPolicy.getAllowlistForFeature",
      "info": {
        "code": "\"PermissionsPolicy\" in self && \"getAllowlistForFeature\" in PermissionsPolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PictureInPictureEvent",
      "info": {
        "code": "\"PictureInPictureEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PictureInPictureEvent.PictureInPictureEvent",
      "info": {
        "code": "bcd.testConstructor('PictureInPictureEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PictureInPictureEvent is not defined"
    },
    {
      "name": "api.PictureInPictureEvent.pictureInPictureWindow",
      "info": {
        "code": "\"PictureInPictureEvent\" in self && \"pictureInPictureWindow\" in PictureInPictureEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PictureInPictureWindow",
      "info": {
        "code": "\"PictureInPictureWindow\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PictureInPictureWindow.height",
      "info": {
        "code": "\"PictureInPictureWindow\" in self && \"height\" in PictureInPictureWindow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PictureInPictureWindow.width",
      "info": {
        "code": "\"PictureInPictureWindow\" in self && \"width\" in PictureInPictureWindow.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Plugin",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.description",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"description\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.filename",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"filename\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.item",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.length",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.name",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.namedItem",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.Plugin.version",
      "info": {
        "code": "(function () {\n  if (!navigator.plugins.length) {\n    throw new Error(\"navigator.plugins is empty\");\n  }\n  var instance = navigator.plugins[0];\n  return !!instance && \"version\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PluginArray",
      "info": {
        "code": "(function () {\n  var instance = navigator.plugins;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PluginArray.item",
      "info": {
        "code": "(function () {\n  var instance = navigator.plugins;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PluginArray.length",
      "info": {
        "code": "(function () {\n  var instance = navigator.plugins;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PluginArray.namedItem",
      "info": {
        "code": "(function () {\n  var instance = navigator.plugins;\n  return !!instance && \"namedItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PluginArray.refresh",
      "info": {
        "code": "(function () {\n  var instance = navigator.plugins;\n  return !!instance && \"refresh\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.PointerEvent",
      "info": {
        "code": "\"PointerEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.PointerEvent",
      "info": {
        "code": "bcd.testConstructor('PointerEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PointerEvent is not defined"
    },
    {
      "name": "api.PointerEvent.altitudeAngle",
      "info": {
        "code": "\"PointerEvent\" in self && \"altitudeAngle\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.azimuthAngle",
      "info": {
        "code": "\"PointerEvent\" in self && \"azimuthAngle\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.getCoalescedEvents",
      "info": {
        "code": "\"PointerEvent\" in self && \"getCoalescedEvents\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.getPredictedEvents",
      "info": {
        "code": "\"PointerEvent\" in self && \"getPredictedEvents\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.height",
      "info": {
        "code": "\"PointerEvent\" in self && \"height\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.isPrimary",
      "info": {
        "code": "\"PointerEvent\" in self && \"isPrimary\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.persistentDeviceId",
      "info": {
        "code": "\"PointerEvent\" in self && \"persistentDeviceId\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.pointerId",
      "info": {
        "code": "\"PointerEvent\" in self && \"pointerId\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.pointerType",
      "info": {
        "code": "\"PointerEvent\" in self && \"pointerType\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.pressure",
      "info": {
        "code": "\"PointerEvent\" in self && \"pressure\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.tangentialPressure",
      "info": {
        "code": "\"PointerEvent\" in self && \"tangentialPressure\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.tiltX",
      "info": {
        "code": "\"PointerEvent\" in self && \"tiltX\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.tiltY",
      "info": {
        "code": "\"PointerEvent\" in self && \"tiltY\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.twist",
      "info": {
        "code": "\"PointerEvent\" in self && \"twist\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerEvent.width",
      "info": {
        "code": "\"PointerEvent\" in self && \"width\" in PointerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerTimeline",
      "info": {
        "code": "\"PointerTimeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerTimeline.PointerTimeline",
      "info": {
        "code": "bcd.testConstructor('PointerTimeline')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PointerTimeline is not defined"
    },
    {
      "name": "api.PointerTimeline.axis",
      "info": {
        "code": "\"PointerTimeline\" in self && \"axis\" in PointerTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PointerTimeline.source",
      "info": {
        "code": "\"PointerTimeline\" in self && \"source\" in PointerTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PopStateEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new PopStateEvent(\"popstate\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"PopStateEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.PopStateEvent.PopStateEvent",
      "info": {
        "code": "bcd.testConstructor('PopStateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PopStateEvent is not defined"
    },
    {
      "name": "api.PopStateEvent.hasUAVisualTransition",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new PopStateEvent(\"popstate\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"PopStateEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"hasUAVisualTransition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.PopStateEvent.state",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new PopStateEvent(\"popstate\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"PopStateEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"state\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.PortalActivateEvent",
      "info": {
        "code": "\"PortalActivateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PortalActivateEvent.PortalActivateEvent",
      "info": {
        "code": "bcd.testConstructor('PortalActivateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PortalActivateEvent is not defined"
    },
    {
      "name": "api.PortalActivateEvent.adoptPredecessor",
      "info": {
        "code": "\"PortalActivateEvent\" in self && \"adoptPredecessor\" in PortalActivateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PortalActivateEvent.data",
      "info": {
        "code": "\"PortalActivateEvent\" in self && \"data\" in PortalActivateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PortalHost",
      "info": {
        "code": "\"PortalHost\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PortalHost.postMessage",
      "info": {
        "code": "\"PortalHost\" in self && \"postMessage\" in PortalHost.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PositionSensorVRDevice",
      "info": {
        "code": "\"PositionSensorVRDevice\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PositionSensorVRDevice.getImmediateState",
      "info": {
        "code": "\"PositionSensorVRDevice\" in self && \"getImmediateState\" in PositionSensorVRDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PositionSensorVRDevice.getState",
      "info": {
        "code": "\"PositionSensorVRDevice\" in self && \"getState\" in PositionSensorVRDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PositionSensorVRDevice.resetSensor",
      "info": {
        "code": "\"PositionSensorVRDevice\" in self && \"resetSensor\" in PositionSensorVRDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager",
      "info": {
        "code": "\"PreferenceManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager.colorScheme",
      "info": {
        "code": "\"PreferenceManager\" in self && \"colorScheme\" in PreferenceManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager.contrast",
      "info": {
        "code": "\"PreferenceManager\" in self && \"contrast\" in PreferenceManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager.reducedData",
      "info": {
        "code": "\"PreferenceManager\" in self && \"reducedData\" in PreferenceManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager.reducedMotion",
      "info": {
        "code": "\"PreferenceManager\" in self && \"reducedMotion\" in PreferenceManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceManager.reducedTransparency",
      "info": {
        "code": "\"PreferenceManager\" in self && \"reducedTransparency\" in PreferenceManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject",
      "info": {
        "code": "\"PreferenceObject\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject.clearOverride",
      "info": {
        "code": "\"PreferenceObject\" in self && \"clearOverride\" in PreferenceObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject.override",
      "info": {
        "code": "\"PreferenceObject\" in self && \"override\" in PreferenceObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject.requestOverride",
      "info": {
        "code": "\"PreferenceObject\" in self && \"requestOverride\" in PreferenceObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject.validValues",
      "info": {
        "code": "\"PreferenceObject\" in self && \"validValues\" in PreferenceObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PreferenceObject.value",
      "info": {
        "code": "\"PreferenceObject\" in self && \"value\" in PreferenceObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Presentation",
      "info": {
        "code": "\"Presentation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Presentation.defaultRequest",
      "info": {
        "code": "\"Presentation\" in self && \"defaultRequest\" in Presentation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Presentation.receiver",
      "info": {
        "code": "\"Presentation\" in self && \"receiver\" in Presentation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationAvailability",
      "info": {
        "code": "\"PresentationAvailability\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationAvailability.value",
      "info": {
        "code": "\"PresentationAvailability\" in self && \"value\" in PresentationAvailability.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection",
      "info": {
        "code": "\"PresentationConnection\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.binaryType",
      "info": {
        "code": "\"PresentationConnection\" in self && \"binaryType\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.close",
      "info": {
        "code": "\"PresentationConnection\" in self && \"close\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.id",
      "info": {
        "code": "\"PresentationConnection\" in self && \"id\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.send",
      "info": {
        "code": "\"PresentationConnection\" in self && \"send\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.state",
      "info": {
        "code": "\"PresentationConnection\" in self && \"state\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.terminate",
      "info": {
        "code": "\"PresentationConnection\" in self && \"terminate\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnection.url",
      "info": {
        "code": "\"PresentationConnection\" in self && \"url\" in PresentationConnection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionAvailableEvent",
      "info": {
        "code": "\"PresentationConnectionAvailableEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionAvailableEvent.PresentationConnectionAvailableEvent",
      "info": {
        "code": "bcd.testConstructor('PresentationConnectionAvailableEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PresentationConnectionAvailableEvent is not defined"
    },
    {
      "name": "api.PresentationConnectionAvailableEvent.connection",
      "info": {
        "code": "\"PresentationConnectionAvailableEvent\" in self && \"connection\" in PresentationConnectionAvailableEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionCloseEvent",
      "info": {
        "code": "\"PresentationConnectionCloseEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionCloseEvent.PresentationConnectionCloseEvent",
      "info": {
        "code": "bcd.testConstructor('PresentationConnectionCloseEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PresentationConnectionCloseEvent is not defined"
    },
    {
      "name": "api.PresentationConnectionCloseEvent.message",
      "info": {
        "code": "\"PresentationConnectionCloseEvent\" in self && \"message\" in PresentationConnectionCloseEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionCloseEvent.reason",
      "info": {
        "code": "\"PresentationConnectionCloseEvent\" in self && \"reason\" in PresentationConnectionCloseEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionList",
      "info": {
        "code": "\"PresentationConnectionList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationConnectionList.connections",
      "info": {
        "code": "\"PresentationConnectionList\" in self && \"connections\" in PresentationConnectionList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationReceiver",
      "info": {
        "code": "\"PresentationReceiver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationReceiver.connectionList",
      "info": {
        "code": "\"PresentationReceiver\" in self && \"connectionList\" in PresentationReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationRequest",
      "info": {
        "code": "\"PresentationRequest\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationRequest.PresentationRequest",
      "info": {
        "code": "bcd.testConstructor('PresentationRequest')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PresentationRequest is not defined"
    },
    {
      "name": "api.PresentationRequest.getAvailability",
      "info": {
        "code": "\"PresentationRequest\" in self && \"getAvailability\" in PresentationRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationRequest.reconnect",
      "info": {
        "code": "\"PresentationRequest\" in self && \"reconnect\" in PresentationRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PresentationRequest.start",
      "info": {
        "code": "\"PresentationRequest\" in self && \"start\" in PresentationRequest.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver",
      "info": {
        "code": "\"PressureObserver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver.PressureObserver",
      "info": {
        "code": "bcd.testConstructor('PressureObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: PressureObserver is not defined"
    },
    {
      "name": "api.PressureObserver.disconnect",
      "info": {
        "code": "\"PressureObserver\" in self && \"disconnect\" in PressureObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver.knownSources_static",
      "info": {
        "code": "\"PressureObserver\" in self && \"knownSources\" in PressureObserver",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver.observe",
      "info": {
        "code": "\"PressureObserver\" in self && \"observe\" in PressureObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver.takeRecords",
      "info": {
        "code": "\"PressureObserver\" in self && \"takeRecords\" in PressureObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureObserver.unobserve",
      "info": {
        "code": "\"PressureObserver\" in self && \"unobserve\" in PressureObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureRecord",
      "info": {
        "code": "\"PressureRecord\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureRecord.source",
      "info": {
        "code": "\"PressureRecord\" in self && \"source\" in PressureRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureRecord.state",
      "info": {
        "code": "\"PressureRecord\" in self && \"state\" in PressureRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureRecord.time",
      "info": {
        "code": "\"PressureRecord\" in self && \"time\" in PressureRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PressureRecord.toJSON",
      "info": {
        "code": "\"PressureRecord\" in self && \"toJSON\" in PressureRecord.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProcessingInstruction",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var parser = new DOMParser();\n  if (!parser) {\n    return { result: false, message: \"parser is falsy\" };\n  }\n  var doc = parser.parseFromString(\"<foo />\", \"application/xml\");\n  var instance = doc.createProcessingInstruction(\n    \"xml-stylesheet\",\n    'href=\"mycss.css\" type=\"text/css\"'\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.ProcessingInstruction.sheet",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var parser = new DOMParser();\n  if (!parser) {\n    return { result: false, message: \"parser is falsy\" };\n  }\n  var doc = parser.parseFromString(\"<foo />\", \"application/xml\");\n  var instance = doc.createProcessingInstruction(\n    \"xml-stylesheet\",\n    'href=\"mycss.css\" type=\"text/css\"'\n  );\n  return !!instance && \"sheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.ProcessingInstruction.target",
      "info": {
        "code": "(function () {\n  if (!(\"DOMParser\" in self)) {\n    return { result: false, message: \"DOMParser is not defined\" };\n  }\n  var parser = new DOMParser();\n  if (!parser) {\n    return { result: false, message: \"parser is falsy\" };\n  }\n  var doc = parser.parseFromString(\"<foo />\", \"application/xml\");\n  var instance = doc.createProcessingInstruction(\n    \"xml-stylesheet\",\n    'href=\"mycss.css\" type=\"text/css\"'\n  );\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DOMParser is not defined"
    },
    {
      "name": "api.Profiler",
      "info": {
        "code": "\"Profiler\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Profiler.Profiler",
      "info": {
        "code": "bcd.testConstructor('Profiler')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Profiler is not defined"
    },
    {
      "name": "api.Profiler.sampleInterval",
      "info": {
        "code": "\"Profiler\" in self && \"sampleInterval\" in Profiler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Profiler.stop",
      "info": {
        "code": "\"Profiler\" in self && \"stop\" in Profiler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Profiler.stopped",
      "info": {
        "code": "\"Profiler\" in self && \"stopped\" in Profiler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProgressEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ProgressEvent(\"progress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ProgressEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ProgressEvent.ProgressEvent",
      "info": {
        "code": "bcd.testConstructor('ProgressEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.ProgressEvent.lengthComputable",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ProgressEvent(\"progress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ProgressEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"lengthComputable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ProgressEvent.loaded",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ProgressEvent(\"progress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ProgressEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"loaded\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ProgressEvent.total",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new ProgressEvent(\"progress\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"ProgressEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"total\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.PromiseRejectionEvent",
      "info": {
        "code": "\"PromiseRejectionEvent\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.PromiseRejectionEvent.PromiseRejectionEvent",
      "info": {
        "code": "bcd.testConstructor('PromiseRejectionEvent')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.PromiseRejectionEvent.promise",
      "info": {
        "code": "\"PromiseRejectionEvent\" in self && \"promise\" in PromiseRejectionEvent.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.PromiseRejectionEvent.reason",
      "info": {
        "code": "\"PromiseRejectionEvent\" in self && \"reason\" in PromiseRejectionEvent.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ProtectedAudience",
      "info": {
        "code": "\"ProtectedAudience\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProtectedAudience.queryFeatureSupport",
      "info": {
        "code": "\"ProtectedAudience\" in self && \"queryFeatureSupport\" in ProtectedAudience.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProximitySensor",
      "info": {
        "code": "\"ProximitySensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProximitySensor.ProximitySensor",
      "info": {
        "code": "bcd.testConstructor('ProximitySensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ProximitySensor is not defined"
    },
    {
      "name": "api.ProximitySensor.distance",
      "info": {
        "code": "\"ProximitySensor\" in self && \"distance\" in ProximitySensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProximitySensor.max",
      "info": {
        "code": "\"ProximitySensor\" in self && \"max\" in ProximitySensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ProximitySensor.near",
      "info": {
        "code": "\"ProximitySensor\" in self && \"near\" in ProximitySensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential",
      "info": {
        "code": "\"PublicKeyCredential\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.authenticatorAttachment",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"authenticatorAttachment\" in PublicKeyCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.getClientCapabilities_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"getClientCapabilities\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.getClientExtensionResults",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"getClientExtensionResults\" in PublicKeyCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.isConditionalMediationAvailable_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"isConditionalMediationAvailable\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"isUserVerifyingPlatformAuthenticatorAvailable\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.parseCreationOptionsFromJSON_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"parseCreationOptionsFromJSON\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.parseRequestOptionsFromJSON_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"parseRequestOptionsFromJSON\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.rawId",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"rawId\" in PublicKeyCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.response",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"response\" in PublicKeyCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.signalAllAcceptedCredentials_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"signalAllAcceptedCredentials\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.signalCurrentUserDetails_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"signalCurrentUserDetails\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.signalUnknownCredential_static",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"signalUnknownCredential\" in PublicKeyCredential",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PublicKeyCredential.toJSON",
      "info": {
        "code": "\"PublicKeyCredential\" in self && \"toJSON\" in PublicKeyCredential.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager",
      "info": {
        "code": "\"PushManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.getSubscription",
      "info": {
        "code": "\"PushManager\" in self && \"getSubscription\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.hasPermission",
      "info": {
        "code": "\"PushManager\" in self && \"hasPermission\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.permissionState",
      "info": {
        "code": "\"PushManager\" in self && \"permissionState\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.register",
      "info": {
        "code": "\"PushManager\" in self && \"register\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.registrations",
      "info": {
        "code": "\"PushManager\" in self && \"registrations\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.subscribe",
      "info": {
        "code": "\"PushManager\" in self && \"subscribe\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.supportedContentEncodings_static",
      "info": {
        "code": "\"PushManager\" in self && \"supportedContentEncodings\" in PushManager",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushManager.unregister",
      "info": {
        "code": "\"PushManager\" in self && \"unregister\" in PushManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription",
      "info": {
        "code": "\"PushSubscription\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.endpoint",
      "info": {
        "code": "\"PushSubscription\" in self && \"endpoint\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.expirationTime",
      "info": {
        "code": "\"PushSubscription\" in self && \"expirationTime\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.getKey",
      "info": {
        "code": "\"PushSubscription\" in self && \"getKey\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.options",
      "info": {
        "code": "\"PushSubscription\" in self && \"options\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.subscriptionId",
      "info": {
        "code": "\"PushSubscription\" in self && \"subscriptionId\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.toJSON",
      "info": {
        "code": "\"PushSubscription\" in self && \"toJSON\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscription.unsubscribe",
      "info": {
        "code": "\"PushSubscription\" in self && \"unsubscribe\" in PushSubscription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscriptionOptions",
      "info": {
        "code": "\"PushSubscriptionOptions\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscriptionOptions.applicationServerKey",
      "info": {
        "code": "\"PushSubscriptionOptions\" in self && \"applicationServerKey\" in PushSubscriptionOptions.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.PushSubscriptionOptions.userVisibleOnly",
      "info": {
        "code": "\"PushSubscriptionOptions\" in self && \"userVisibleOnly\" in PushSubscriptionOptions.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.QuotaExceededError",
      "info": {
        "code": "\"QuotaExceededError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.QuotaExceededError.QuotaExceededError",
      "info": {
        "code": "bcd.testConstructor('QuotaExceededError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: QuotaExceededError is not defined"
    },
    {
      "name": "api.QuotaExceededError.quota",
      "info": {
        "code": "\"QuotaExceededError\" in self && \"quota\" in QuotaExceededError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.QuotaExceededError.requested",
      "info": {
        "code": "\"QuotaExceededError\" in self && \"requested\" in QuotaExceededError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RGBColor",
      "info": {
        "code": "\"RGBColor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RGBColor.blue",
      "info": {
        "code": "\"RGBColor\" in self && \"blue\" in RGBColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RGBColor.green",
      "info": {
        "code": "\"RGBColor\" in self && \"green\" in RGBColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RGBColor.red",
      "info": {
        "code": "\"RGBColor\" in self && \"red\" in RGBColor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCCertificate",
      "info": {
        "code": "\"RTCCertificate\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCCertificate.expires",
      "info": {
        "code": "\"RTCCertificate\" in self && \"expires\" in RTCCertificate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCCertificate.getFingerprints",
      "info": {
        "code": "\"RTCCertificate\" in self && \"getFingerprints\" in RTCCertificate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDTMFSender",
      "info": {
        "code": "\"RTCDTMFSender\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDTMFSender.canInsertDTMF",
      "info": {
        "code": "\"RTCDTMFSender\" in self && \"canInsertDTMF\" in RTCDTMFSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDTMFSender.insertDTMF",
      "info": {
        "code": "\"RTCDTMFSender\" in self && \"insertDTMF\" in RTCDTMFSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDTMFSender.toneBuffer",
      "info": {
        "code": "\"RTCDTMFSender\" in self && \"toneBuffer\" in RTCDTMFSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDTMFToneChangeEvent",
      "info": {
        "code": "(function () {\n  if (!(\"RTCDTMFToneChangeEvent\" in self)) {\n    return { result: false, message: \"RTCDTMFToneChangeEvent is not defined\" };\n  }\n  var instance = new RTCDTMFToneChangeEvent(\"tonechange\", { tone: \"\" });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "RTCDTMFToneChangeEvent is not defined"
    },
    {
      "name": "api.RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent",
      "info": {
        "code": "bcd.testConstructor('RTCDTMFToneChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCDTMFToneChangeEvent is not defined"
    },
    {
      "name": "api.RTCDTMFToneChangeEvent.tone",
      "info": {
        "code": "(function () {\n  if (!(\"RTCDTMFToneChangeEvent\" in self)) {\n    return { result: false, message: \"RTCDTMFToneChangeEvent is not defined\" };\n  }\n  var instance = new RTCDTMFToneChangeEvent(\"tonechange\", { tone: \"\" });\n  return !!instance && \"tone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "RTCDTMFToneChangeEvent is not defined"
    },
    {
      "name": "api.RTCDataChannel",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.binaryType",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"binaryType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.binaryType.arraybuffer_value",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  try {\n    instance.binaryType = \"arraybuffer\";\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.binaryType.blob_value",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  try {\n    instance.binaryType = \"blob\";\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.bufferedAmount",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"bufferedAmount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.bufferedAmountLowThreshold",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"bufferedAmountLowThreshold\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.close",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.id",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.label",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.maxPacketLifeTime",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"maxPacketLifeTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.maxRetransmits",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"maxRetransmits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.negotiated",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"negotiated\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.ordered",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"ordered\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.priority",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"priority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.protocol",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.readyState",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.reliable",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"reliable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannel.send",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var instance = connection.createDataChannel(\"channel\");\n  return !!instance && \"send\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannelEvent",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var channel = connection.createDataChannel(\"channel\");\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  if (!(\"RTCDataChannelEvent\" in self)) {\n    return { result: false, message: \"RTCDataChannelEvent is not defined\" };\n  }\n  var instance = new RTCDataChannelEvent(\"datachannel\", { channel: channel });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDataChannelEvent.RTCDataChannelEvent",
      "info": {
        "code": "bcd.testConstructor('RTCDataChannelEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCDataChannelEvent is not defined"
    },
    {
      "name": "api.RTCDataChannelEvent.channel",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var connection = new constructor({ iceServers: [] });\n  if (!connection) {\n    return { result: false, message: \"connection is falsy\" };\n  }\n  var channel = connection.createDataChannel(\"channel\");\n  if (!channel) {\n    return { result: false, message: \"channel is falsy\" };\n  }\n  if (!(\"RTCDataChannelEvent\" in self)) {\n    return { result: false, message: \"RTCDataChannelEvent is not defined\" };\n  }\n  var instance = new RTCDataChannelEvent(\"datachannel\", { channel: channel });\n  return !!instance && \"channel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCDtlsTransport",
      "info": {
        "code": "\"RTCDtlsTransport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDtlsTransport.getRemoteCertificates",
      "info": {
        "code": "\"RTCDtlsTransport\" in self && \"getRemoteCertificates\" in RTCDtlsTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDtlsTransport.iceTransport",
      "info": {
        "code": "\"RTCDtlsTransport\" in self && \"iceTransport\" in RTCDtlsTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCDtlsTransport.state",
      "info": {
        "code": "\"RTCDtlsTransport\" in self && \"state\" in RTCDtlsTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedAudioFrame",
      "info": {
        "code": "\"RTCEncodedAudioFrame\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedAudioFrame.RTCEncodedAudioFrame",
      "info": {
        "code": "bcd.testConstructor('RTCEncodedAudioFrame')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCEncodedAudioFrame is not defined"
    },
    {
      "name": "api.RTCEncodedAudioFrame.data",
      "info": {
        "code": "\"RTCEncodedAudioFrame\" in self && \"data\" in RTCEncodedAudioFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedAudioFrame.getMetadata",
      "info": {
        "code": "\"RTCEncodedAudioFrame\" in self && \"getMetadata\" in RTCEncodedAudioFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedAudioFrame.timestamp",
      "info": {
        "code": "\"RTCEncodedAudioFrame\" in self && \"timestamp\" in RTCEncodedAudioFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedVideoFrame",
      "info": {
        "code": "\"RTCEncodedVideoFrame\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedVideoFrame.RTCEncodedVideoFrame",
      "info": {
        "code": "bcd.testConstructor('RTCEncodedVideoFrame')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCEncodedVideoFrame is not defined"
    },
    {
      "name": "api.RTCEncodedVideoFrame.data",
      "info": {
        "code": "\"RTCEncodedVideoFrame\" in self && \"data\" in RTCEncodedVideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedVideoFrame.getMetadata",
      "info": {
        "code": "\"RTCEncodedVideoFrame\" in self && \"getMetadata\" in RTCEncodedVideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedVideoFrame.timestamp",
      "info": {
        "code": "\"RTCEncodedVideoFrame\" in self && \"timestamp\" in RTCEncodedVideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCEncodedVideoFrame.type",
      "info": {
        "code": "\"RTCEncodedVideoFrame\" in self && \"type\" in RTCEncodedVideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError",
      "info": {
        "code": "\"RTCError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.RTCError",
      "info": {
        "code": "bcd.testConstructor('RTCError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCError is not defined"
    },
    {
      "name": "api.RTCError.errorDetail",
      "info": {
        "code": "\"RTCError\" in self && \"errorDetail\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.httpRequestStatusCode",
      "info": {
        "code": "\"RTCError\" in self && \"httpRequestStatusCode\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.receivedAlert",
      "info": {
        "code": "\"RTCError\" in self && \"receivedAlert\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.sctpCauseCode",
      "info": {
        "code": "\"RTCError\" in self && \"sctpCauseCode\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.sdpLineNumber",
      "info": {
        "code": "\"RTCError\" in self && \"sdpLineNumber\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCError.sentAlert",
      "info": {
        "code": "\"RTCError\" in self && \"sentAlert\" in RTCError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCErrorEvent",
      "info": {
        "code": "\"RTCErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCErrorEvent.RTCErrorEvent",
      "info": {
        "code": "bcd.testConstructor('RTCErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCErrorEvent is not defined"
    },
    {
      "name": "api.RTCErrorEvent.error",
      "info": {
        "code": "\"RTCErrorEvent\" in self && \"error\" in RTCErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidate",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.RTCIceCandidate",
      "info": {
        "code": "bcd.testConstructor('RTCIceCandidate')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCIceCandidate is not defined"
    },
    {
      "name": "api.RTCIceCandidate.address",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"address\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.candidate",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"candidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.component",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"component\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.foundation",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"foundation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.port",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.priority",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"priority\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.protocol",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.relatedAddress",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"relatedAddress\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.relatedPort",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"relatedPort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.relayProtocol",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"relayProtocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.sdpMLineIndex",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"sdpMLineIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.sdpMid",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"sdpMid\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.tcpType",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"tcpType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.toJSON",
      "info": {
        "code": "\"RTCIceCandidate\" in self && \"toJSON\" in RTCIceCandidate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidate.type",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.url",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"url\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidate.usernameFragment",
      "info": {
        "code": "(function () {\n  var instance = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  return !!instance && \"usernameFragment\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: (self.RTCIceCandidate || self.mozRTCIceCandidate) is not a constructor"
    },
    {
      "name": "api.RTCIceCandidatePair",
      "info": {
        "code": "\"RTCIceCandidatePair\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidatePair.local",
      "info": {
        "code": "\"RTCIceCandidatePair\" in self && \"local\" in RTCIceCandidatePair.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidatePair.remote",
      "info": {
        "code": "\"RTCIceCandidatePair\" in self && \"remote\" in RTCIceCandidatePair.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidatePairEvent",
      "info": {
        "code": "\"RTCIceCandidatePairEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidatePairEvent.RTCIceCandidatePairEvent",
      "info": {
        "code": "bcd.testConstructor('RTCIceCandidatePairEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCIceCandidatePairEvent is not defined"
    },
    {
      "name": "api.RTCIceCandidatePairEvent.local",
      "info": {
        "code": "\"RTCIceCandidatePairEvent\" in self && \"local\" in RTCIceCandidatePairEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceCandidatePairEvent.remote",
      "info": {
        "code": "\"RTCIceCandidatePairEvent\" in self && \"remote\" in RTCIceCandidatePairEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport",
      "info": {
        "code": "\"RTCIceTransport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.RTCIceTransport",
      "info": {
        "code": "bcd.testConstructor('RTCIceTransport')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCIceTransport is not defined"
    },
    {
      "name": "api.RTCIceTransport.addRemoteCandidate",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"addRemoteCandidate\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.component",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"component\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.gather",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"gather\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.gatheringState",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"gatheringState\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.getLocalCandidates",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"getLocalCandidates\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.getLocalParameters",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"getLocalParameters\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.getRemoteCandidates",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"getRemoteCandidates\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.getRemoteParameters",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"getRemoteParameters\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.getSelectedCandidatePair",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"getSelectedCandidatePair\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.removeCandidatePair",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"removeCandidatePair\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.role",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"role\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.selectCandidatePair",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"selectCandidatePair\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.start",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"start\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.state",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"state\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIceTransport.stop",
      "info": {
        "code": "\"RTCIceTransport\" in self && \"stop\" in RTCIceTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCIdentityAssertion",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var rpc = new constructor({ iceServers: [] });\n  if (!rpc) {\n    return { result: false, message: \"rpc is falsy\" };\n  }\n  if (!(\"getIdentityAssertion\" in rpc)) {\n    return {\n      result: false,\n      message: \"RTCPeerConnection.prototype.getIdentityAssertion is not defined\"\n    };\n  }\n  var promise = rpc.getIdentityAssertion();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCIdentityAssertion.RTCIdentityAssertion",
      "info": {
        "code": "bcd.testConstructor('RTCIdentityAssertion')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCIdentityAssertion is not defined"
    },
    {
      "name": "api.RTCIdentityAssertion.idp",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var rpc = new constructor({ iceServers: [] });\n  if (!rpc) {\n    return { result: false, message: \"rpc is falsy\" };\n  }\n  if (!(\"getIdentityAssertion\" in rpc)) {\n    return {\n      result: false,\n      message: \"RTCPeerConnection.prototype.getIdentityAssertion is not defined\"\n    };\n  }\n  var promise = rpc.getIdentityAssertion();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"idp\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCIdentityAssertion.name",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var rpc = new constructor({ iceServers: [] });\n  if (!rpc) {\n    return { result: false, message: \"rpc is falsy\" };\n  }\n  if (!(\"getIdentityAssertion\" in rpc)) {\n    return {\n      result: false,\n      message: \"RTCPeerConnection.prototype.getIdentityAssertion is not defined\"\n    };\n  }\n  var promise = rpc.getIdentityAssertion();\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"name\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection",
      "info": {
        "code": "bcd.testConstructor('RTCPeerConnection')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCPeerConnection is not defined"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_bundlePolicy_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(\n    constructor,\n    \"constructor\",\n    \"bundlePolicy\",\n    \"balanced\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_certificates_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(constructor, \"constructor\", \"certificates\", []);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_iceCandidatePoolSize_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(\n    constructor,\n    \"constructor\",\n    \"iceCandidatePoolSize\",\n    0\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(constructor, \"constructor\", \"iceServers\", []);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_iceTransportPolicy_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(\n    constructor,\n    \"constructor\",\n    \"iceTransportPolicy\",\n    \"all\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_peerIdentity_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(\n    constructor,\n    \"constructor\",\n    \"peerIdentity\",\n    \"foobar\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.RTCPeerConnection.configuration_rtcpMuxPolicy_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return bcd.testOptionParam(\n    constructor,\n    \"constructor\",\n    \"rtcpMuxPolicy\",\n    \"negotiate\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addIceCandidate",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"addIceCandidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addIceCandidate.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  var candidate = new (self.RTCIceCandidate || self.mozRTCIceCandidate)({\n    candidate:\n      \"candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host\",\n    sdpMid: \"\"\n  });\n  if (!candidate) {\n    return { result: false, message: \"candidate is falsy\" };\n  }\n  if (!(instance && instance.addIceCandidate)) {\n    return {\n      result: false,\n      message: \"instance.addIceCandidate is not defined\"\n    };\n  }\n  var value = instance.addIceCandidate(candidate);\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addStream",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"addStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addTrack",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"addTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addTransceiver",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"addTransceiver\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addTransceiver.init_direction_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.addTransceiver)) {\n    return { result: false, message: \"instance.addTransceiver is not defined\" };\n  }\n  function addTransceiver(init) {\n    instance.addTransceiver(\"audio\", init);\n  }\n  return bcd.testOptionParam(addTransceiver, null, \"direction\", \"sendrecv\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.addTransceiver.init_sendEncodings_parameter",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.addTransceiver)) {\n    return { result: false, message: \"instance.addTransceiver is not defined\" };\n  }\n  function addTransceiver(init) {\n    instance.addTransceiver(\"audio\", init);\n  }\n  return bcd.testOptionParam(addTransceiver, null, \"sendEncodings\", [\n    { maxBitrate: 44100 }\n  ]);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.canTrickleIceCandidates",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"canTrickleIceCandidates\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.close",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.connectionState",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"connectionState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createAnswer",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"createAnswer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createAnswer.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.createAnswer)) {\n    return { result: false, message: \"instance.createAnswer is not defined\" };\n  }\n  var value = instance.createAnswer();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createDTMFSender",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"createDTMFSender\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createDataChannel",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"createDataChannel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createOffer",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"createOffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.createOffer.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.createOffer)) {\n    return { result: false, message: \"instance.createOffer is not defined\" };\n  }\n  var value = instance.createOffer();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.currentLocalDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"currentLocalDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.currentRemoteDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"currentRemoteDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.generateCertificate_static",
      "info": {
        "code": "\"RTCPeerConnection\" in self && \"generateCertificate\" in RTCPeerConnection",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnection.getConfiguration",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getConfiguration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getIdentityAssertion",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getIdentityAssertion\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getLocalStreams",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getLocalStreams\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getReceivers",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getReceivers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getRemoteStreams",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getRemoteStreams\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getSenders",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getSenders\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getStats",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getStats\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getStats.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.getStats)) {\n    return { result: false, message: \"instance.getStats is not defined\" };\n  }\n  var value = instance.getStats();\n  return !!value && \"then\" in value;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.getTransceivers",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"getTransceivers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.iceConnectionState",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"iceConnectionState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.iceGatheringState",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"iceGatheringState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.idpErrorInfo",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"idpErrorInfo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.idpLoginUrl",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"idpLoginUrl\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.localDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"localDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.peerIdentity",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"peerIdentity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.pendingLocalDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"pendingLocalDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.pendingRemoteDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"pendingRemoteDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.remoteDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"remoteDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.removeStream",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"removeStream\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.removeTrack",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"removeTrack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.restartIce",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"restartIce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.sctp",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"sctp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setConfiguration",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"setConfiguration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setIdentityProvider",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"setIdentityProvider\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setLocalDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"setLocalDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setLocalDescription.description_parameter_optional",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  if (!(instance && instance.setLocalDescription)) {\n    return {\n      result: false,\n      message: \"instance.setLocalDescription is not defined\"\n    };\n  }\n  return instance\n    .setLocalDescription()\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      if (\n        e instanceof TypeError ||\n        stringIncludes(e.message, [\n          \"WRONG_ARGUMENTS_ERR\",\n          \"Not enough arguments\"\n        ])\n      ) {\n        return { result: false, message: e.message };\n      }\n      return e;\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setLocalDescription.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  var description = new RTCSessionDescription({ type: \"offer\" });\n  if (!description) {\n    return { result: false, message: \"description is falsy\" };\n  }\n  if (!(instance && instance.setLocalDescription)) {\n    return {\n      result: false,\n      message: \"instance.setLocalDescription is not defined\"\n    };\n  }\n  var value = instance.setLocalDescription(description);\n  if (\"then\" in value) {\n    value.catch(function () {});\n    return true;\n  }\n  return false;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setRemoteDescription",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"setRemoteDescription\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.setRemoteDescription.returns_promise",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  var description = new RTCSessionDescription({ type: \"offer\" });\n  if (!description) {\n    return { result: false, message: \"description is falsy\" };\n  }\n  if (!(instance && instance.setRemoteDescription)) {\n    return {\n      result: false,\n      message: \"instance.setRemoteDescription is not defined\"\n    };\n  }\n  var value = instance.setRemoteDescription(description);\n  if (\"then\" in value) {\n    value.catch(function () {});\n    return true;\n  }\n  return false;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnection.signalingState",
      "info": {
        "code": "(function () {\n  /* Firefox briefly defines RTCPeerConnection in older versions, but it is not a valid constructor until later versions. */\n  var constructor =\n    self.mozRTCPeerConnection ||\n    self.RTCPeerConnection ||\n    self.webkitRTCPeerConnection;\n  if (!constructor) {\n    return {\n      result: false,\n      message: \"(moz/webkit)RTCPeerConnection is not defined or is falsy\"\n    };\n  }\n  var instance = new constructor({ iceServers: [] });\n  return !!instance && \"signalingState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(moz/webkit)RTCPeerConnection is not defined or is falsy"
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.RTCPeerConnectionIceErrorEvent",
      "info": {
        "code": "bcd.testConstructor('RTCPeerConnectionIceErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.address",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"address\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.errorCode",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"errorCode\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.errorText",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"errorText\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.hostCandidate",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"hostCandidate\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.port",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"port\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceErrorEvent.url",
      "info": {
        "code": "\"RTCPeerConnectionIceErrorEvent\" in self && \"url\" in RTCPeerConnectionIceErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceEvent",
      "info": {
        "code": "\"RTCPeerConnectionIceEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceEvent.RTCPeerConnectionIceEvent",
      "info": {
        "code": "bcd.testConstructor('RTCPeerConnectionIceEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCPeerConnectionIceEvent is not defined"
    },
    {
      "name": "api.RTCPeerConnectionIceEvent.candidate",
      "info": {
        "code": "\"RTCPeerConnectionIceEvent\" in self && \"candidate\" in RTCPeerConnectionIceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCPeerConnectionIceEvent.url",
      "info": {
        "code": "\"RTCPeerConnectionIceEvent\" in self && \"url\" in RTCPeerConnectionIceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver",
      "info": {
        "code": "\"RTCRtpReceiver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.createEncodedStreams",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"createEncodedStreams\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.disableHardwareDecoding_static",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"disableHardwareDecoding\" in RTCRtpReceiver",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.getCapabilities_static",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"getCapabilities\" in RTCRtpReceiver",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.getContributingSources",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"getContributingSources\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.getParameters",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"getParameters\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.getStats",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"getStats\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.getSynchronizationSources",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"getSynchronizationSources\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.jitterBufferTarget",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"jitterBufferTarget\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.rtcpTransport",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"rtcpTransport\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.track",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"track\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.transform",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"transform\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpReceiver.transport",
      "info": {
        "code": "\"RTCRtpReceiver\" in self && \"transport\" in RTCRtpReceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpScriptTransform",
      "info": {
        "code": "\"RTCRtpScriptTransform\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpScriptTransform.RTCRtpScriptTransform",
      "info": {
        "code": "bcd.testConstructor('RTCRtpScriptTransform')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCRtpScriptTransform is not defined"
    },
    {
      "name": "api.RTCRtpSender",
      "info": {
        "code": "\"RTCRtpSender\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.createEncodedStreams",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"createEncodedStreams\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.disableHardwareEncoding_static",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"disableHardwareEncoding\" in RTCRtpSender",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.dtmf",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"dtmf\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.getCapabilities_static",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"getCapabilities\" in RTCRtpSender",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.getParameters",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"getParameters\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.getStats",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"getStats\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.replaceTrack",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"replaceTrack\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.rtcpTransport",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"rtcpTransport\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.setParameters",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"setParameters\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.setStreams",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"setStreams\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.track",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"track\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.transform",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"transform\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpSender.transport",
      "info": {
        "code": "\"RTCRtpSender\" in self && \"transport\" in RTCRtpSender.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.currentDirection",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"currentDirection\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.direction",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"direction\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.getHeaderExtensionsToNegotiate",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"getHeaderExtensionsToNegotiate\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.getNegotiatedHeaderExtensions",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"getNegotiatedHeaderExtensions\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.mid",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"mid\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.receiver",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"receiver\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.rtpHeaderEncryptionNegotiated",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"rtpHeaderEncryptionNegotiated\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.sender",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"sender\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.setCodecPreferences",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"setCodecPreferences\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.setHeaderExtensionsToNegotiate",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"setHeaderExtensionsToNegotiate\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.stop",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"stop\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCRtpTransceiver.stopped",
      "info": {
        "code": "\"RTCRtpTransceiver\" in self && \"stopped\" in RTCRtpTransceiver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSctpTransport",
      "info": {
        "code": "\"RTCSctpTransport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSctpTransport.maxChannels",
      "info": {
        "code": "\"RTCSctpTransport\" in self && \"maxChannels\" in RTCSctpTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSctpTransport.maxMessageSize",
      "info": {
        "code": "\"RTCSctpTransport\" in self && \"maxMessageSize\" in RTCSctpTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSctpTransport.state",
      "info": {
        "code": "\"RTCSctpTransport\" in self && \"state\" in RTCSctpTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSctpTransport.transport",
      "info": {
        "code": "\"RTCSctpTransport\" in self && \"transport\" in RTCSctpTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSessionDescription",
      "info": {
        "code": "(function () {\n  var instance = new RTCSessionDescription({ type: \"offer\" });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: RTCSessionDescription is not defined"
    },
    {
      "name": "api.RTCSessionDescription.RTCSessionDescription",
      "info": {
        "code": "bcd.testConstructor('RTCSessionDescription')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCSessionDescription is not defined"
    },
    {
      "name": "api.RTCSessionDescription.sdp",
      "info": {
        "code": "(function () {\n  var instance = new RTCSessionDescription({ type: \"offer\" });\n  return !!instance && \"sdp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: RTCSessionDescription is not defined"
    },
    {
      "name": "api.RTCSessionDescription.toJSON",
      "info": {
        "code": "\"RTCSessionDescription\" in self && \"toJSON\" in RTCSessionDescription.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCSessionDescription.type",
      "info": {
        "code": "(function () {\n  var instance = new RTCSessionDescription({ type: \"offer\" });\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: RTCSessionDescription is not defined"
    },
    {
      "name": "api.RTCStatsReport",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.@@iterator",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.entries",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.forEach",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.get",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.has",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.keys",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.size",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.availableIncomingBitrate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return { result: null, message: \"Untestable property\" };\n  return !!getStatByType(\"candidate-pair\", \"availableIncomingBitrate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.availableOutgoingBitrate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"availableOutgoingBitrate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.bytesDiscardedOnSend",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"bytesDiscardedOnSend\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.bytesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"bytesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.bytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"bytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.consentRequestsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"consentRequestsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.currentRoundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"currentRoundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.lastPacketReceivedTimestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"lastPacketReceivedTimestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.lastPacketSentTimestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"lastPacketSentTimestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.localCandidateId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"localCandidateId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.nominated",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"nominated\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.packetsDiscardedOnSend",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"packetsDiscardedOnSend\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.packetsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"packetsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.packetsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"packetsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.priority",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"priority\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.remoteCandidateId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"remoteCandidateId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.requestsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"requestsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.requestsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"requestsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.responsesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"responsesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.responsesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"responsesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.state",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"state\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.totalRoundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"totalRoundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_candidate-pair.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"candidate-pair\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.base64Certificate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"base64Certificate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.fingerprint",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"fingerprint\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.fingerprintAlgorithm",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"fingerprintAlgorithm\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.issuerCertificateId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"issuerCertificateId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_certificate.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"certificate\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.channels",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"channels\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.clockRate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"clockRate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.mimeType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"mimeType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.payloadType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"payloadType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.sdpFmtpLine",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"sdpFmtpLine\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_codec.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"codec\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.bytesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"bytesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.bytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"bytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.dataChannelIdentifier",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"dataChannelIdentifier\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.label",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"label\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.messagesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"messagesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.messagesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"messagesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.protocol",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"protocol\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.state",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"state\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_data-channel.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"data-channel\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.audioLevel",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"audioLevel\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.bytesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"bytesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.codecId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"codecId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.concealedSamples",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"concealedSamples\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.concealmentEvents",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"concealmentEvents\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.decoderImplementation",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"decoderImplementation\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.estimatedPlayoutTimestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"estimatedPlayoutTimestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.fecPacketsDiscarded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"fecPacketsDiscarded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.fecPacketsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"fecPacketsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.firCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"firCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.frameHeight",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"frameHeight\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.frameWidth",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"frameWidth\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesAssembledFromMultiplePackets",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesAssembledFromMultiplePackets\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesDecoded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesDecoded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesDropped",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesDropped\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesPerSecond",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesPerSecond\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.framesRendered",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"framesRendered\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.freezeCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"freezeCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.headerBytesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"headerBytesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.insertedSamplesForDeceleration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"insertedSamplesForDeceleration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.jitter",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"jitter\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.jitterBufferDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"jitterBufferDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.jitterBufferEmittedCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"jitterBufferEmittedCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.jitterBufferMinimumDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"jitterBufferMinimumDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.jitterBufferTargetDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"jitterBufferTargetDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.keyFramesDecoded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"keyFramesDecoded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.lastPacketReceivedTimestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"lastPacketReceivedTimestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.mid",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"mid\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.nackCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"nackCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.packetsDiscarded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"packetsDiscarded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.packetsLost",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"packetsLost\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.packetsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"packetsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.pauseCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"pauseCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.playoutId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"playoutId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.pliCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"pliCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.powerEfficientDecoder",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"powerEfficientDecoder\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.qpSum",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"qpSum\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.remoteId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"remoteId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.removedSamplesForAcceleration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"removedSamplesForAcceleration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.silentConcealedSamples",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"silentConcealedSamples\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.ssrc",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"ssrc\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalAssemblyTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalAssemblyTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalAudioEnergy",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalAudioEnergy\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalDecodeTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalDecodeTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalFreezesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalFreezesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalInterFrameDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalInterFrameDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalPausesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalPausesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalProcessingDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalProcessingDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalSamplesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalSamplesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalSamplesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalSamplesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.totalSquaredInterFrameDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"totalSquaredInterFrameDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.trackIdentifier",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"trackIdentifier\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_inbound-rtp.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"inbound-rtp\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.address",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"address\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.candidateType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"candidateType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.foundation",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"foundation\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.port",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"port\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.priority",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"priority\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.protocol",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"protocol\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.relatedAddress",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"local-candidate\", \"relatedAddress\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.relatedPort",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"local-candidate\", \"relatedPort\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.relayProtocol",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"local-candidate\", \"relayProtocol\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.tcpType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"tcpType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.url",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"local-candidate\", \"url\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_local-candidate.usernameFragment",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"local-candidate\", \"usernameFragment\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.synthesizedSamplesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"synthesizedSamplesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.synthesizedSamplesEvents",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"synthesizedSamplesEvents\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.totalPlayoutDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"totalPlayoutDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.totalSamplesCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"totalSamplesCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.totalSamplesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"totalSamplesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-playout.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-playout\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.audioLevel",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"audioLevel\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.droppedSamplesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"droppedSamplesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.droppedSamplesEvents",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"droppedSamplesEvents\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.echoReturnLoss",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"echoReturnLoss\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.echoReturnLossEnhancement",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"echoReturnLossEnhancement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.frames",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"frames\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.framesPerSecond",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"framesPerSecond\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.height",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"height\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.totalAudioEnergy",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"totalAudioEnergy\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.totalCaptureDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"totalCaptureDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.totalSamplesCaptured",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"totalSamplesCaptured\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.totalSamplesDuration",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"totalSamplesDuration\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.trackIdentifier",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"trackIdentifier\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_media-source.width",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"media-source\", \"width\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.active",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"active\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.bytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"bytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.codecId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"codecId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.encoderImplementation",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"encoderImplementation\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.firCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"firCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.frameHeight",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"frameHeight\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.frameWidth",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"frameWidth\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.framesEncoded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"framesEncoded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.framesPerSecond",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"framesPerSecond\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.framesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"framesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.headerBytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"headerBytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.hugeFramesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"hugeFramesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.keyFramesEncoded",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"keyFramesEncoded\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.mediaSourceId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"mediaSourceId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.mid",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"mid\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.nackCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"nackCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.packetsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"packetsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.pliCount",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"pliCount\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.powerEfficientEncoder",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"powerEfficientEncoder\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.qpSum",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"qpSum\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.qualityLimitationDurations",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"qualityLimitationDurations\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.qualityLimitationReason",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"qualityLimitationReason\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.qualityLimitationResolutionChanges",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"qualityLimitationResolutionChanges\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.remoteId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"remoteId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.retransmittedBytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"retransmittedBytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.retransmittedPacketsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"retransmittedPacketsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.rid",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return { result: null, message: \"Untestable property; requires simulcast\" };\n  return !!getStatByType(\"outbound-rtp\", \"rid\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.scalabilityMode",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"scalabilityMode\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.ssrc",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"ssrc\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.targetBitrate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"targetBitrate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.totalEncodeTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"totalEncodeTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.totalEncodedBytesTarget",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"totalEncodedBytesTarget\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.totalPacketSendDelay",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"totalPacketSendDelay\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_outbound-rtp.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"outbound-rtp\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection.dataChannelsClosed",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\", \"dataChannelsClosed\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection.dataChannelsOpened",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\", \"dataChannelsOpened\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_peer-connection.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"peer-connection\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.address",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"address\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.candidateType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"candidateType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.foundation",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"foundation\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.port",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"port\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.priority",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"priority\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.protocol",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"protocol\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.relatedAddress",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"relatedAddress\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.relatedPort",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"relatedPort\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.relayProtocol",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"relayProtocol\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.tcpType",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"tcpType\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.url",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return {\n    result: null,\n    message: \"Untestable property; requires a STUN/TURN server\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"url\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-candidate.usernameFragment",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-candidate\", \"usernameFragment\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.codecId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"codecId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.fractionLost",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"fractionLost\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.jitter",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"jitter\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.localId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"localId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.packetsLost",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"packetsLost\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.packetsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"packetsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.roundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"roundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.roundTripTimeMeasurements",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"roundTripTimeMeasurements\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.ssrc",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"ssrc\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.totalRoundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"totalRoundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-inbound-rtp.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-inbound-rtp\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.bytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"bytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.codecId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"codecId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.kind",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"kind\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.localId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"localId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.packetsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"packetsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.remoteTimestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"remoteTimestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.reportsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"reportsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.roundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"roundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.roundTripTimeMeasurements",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"roundTripTimeMeasurements\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.ssrc",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"ssrc\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.totalRoundTripTime",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"totalRoundTripTime\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.transportId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"transportId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_remote-outbound-rtp.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"remote-outbound-rtp\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.bytesReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"bytesReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.bytesSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"bytesSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.dtlsCipher",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"dtlsCipher\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.dtlsRole",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"dtlsRole\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.dtlsState",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"dtlsState\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.iceLocalUsernameFragment",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"iceLocalUsernameFragment\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.iceRole",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"iceRole\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.iceState",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"iceState\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.id",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"id\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.localCertificateId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"localCertificateId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.packetsReceived",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"packetsReceived\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.packetsSent",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"packetsSent\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.remoteCertificateId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"remoteCertificateId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.selectedCandidatePairChanges",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"selectedCandidatePairChanges\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.selectedCandidatePairId",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"selectedCandidatePairId\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.srtpCipher",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"srtpCipher\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.timestamp",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"timestamp\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.tlsVersion",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"tlsVersion\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.type_transport.type",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!getStatByType(\"transport\", \"type\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCStatsReport.values",
      "info": {
        "code": "(function () {\n  if (\n    reusableInstances.rtcStats === \"callback\" ||\n    reusableInstances.rtcStats === null\n  ) {\n    return { result: null, message: \"Could not generate RTC stats in time\" };\n  } else if (!reusableInstances.rtcStats) {\n    return { result: false, message: \"Could not generate RTC stats\" };\n  }\n\n  // The following object is created for easy access to individual stats entries\n  var stats = Array.from(reusableInstances.rtcStats.values());\n\n  // The following function is defined to help obtain individual stats types\n  // and entries\n  function getStatByType(type, entry) {\n    for (var i = 0; i < stats.length; i++) {\n      if (stats[i].type === type) {\n        if (!entry || !!stats[i][entry]) {\n          return stats[i];\n        }\n      }\n    }\n\n    return false;\n  }\n\n  var instance = reusableInstances.rtcStats;\n\n  // XXX There's a lot of issues with these tests\n  return {\n    result: null,\n    message:\n      \"These tests have been disabled due to too many issues. They will be re-enabled once the issues have been resolved.\"\n  };\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Could not generate RTC stats in time"
    },
    {
      "name": "api.RTCTrackEvent",
      "info": {
        "code": "\"RTCTrackEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCTrackEvent.RTCTrackEvent",
      "info": {
        "code": "bcd.testConstructor('RTCTrackEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RTCTrackEvent is not defined"
    },
    {
      "name": "api.RTCTrackEvent.receiver",
      "info": {
        "code": "\"RTCTrackEvent\" in self && \"receiver\" in RTCTrackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCTrackEvent.streams",
      "info": {
        "code": "\"RTCTrackEvent\" in self && \"streams\" in RTCTrackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCTrackEvent.track",
      "info": {
        "code": "\"RTCTrackEvent\" in self && \"track\" in RTCTrackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RTCTrackEvent.transceiver",
      "info": {
        "code": "\"RTCTrackEvent\" in self && \"transceiver\" in RTCTrackEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RadioNodeList",
      "info": {
        "code": "(function () {\n  var form = document.createElement(\"form\");\n  if (!form) {\n    return { result: false, message: \"form is falsy\" };\n  }\n  for (var i = 0; i < 3; i++) {\n    var input = document.createElement(\"input\");\n    input.value = i;\n    input.type = \"radio\";\n    input.name = \"radio\";\n    form.appendChild(input);\n  }\n  var instance = form.elements.namedItem(\"radio\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.RadioNodeList.value",
      "info": {
        "code": "(function () {\n  var form = document.createElement(\"form\");\n  if (!form) {\n    return { result: false, message: \"form is falsy\" };\n  }\n  for (var i = 0; i < 3; i++) {\n    var input = document.createElement(\"input\");\n    input.value = i;\n    input.type = \"radio\";\n    input.name = \"radio\";\n    form.appendChild(input);\n  }\n  var instance = form.elements.namedItem(\"radio\");\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.Range",
      "info": {
        "code": "bcd.testConstructor('Range')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Range is not defined"
    },
    {
      "name": "api.Range.cloneContents",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"cloneContents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.cloneRange",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"cloneRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.collapse",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"collapse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.collapse.toStart_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  if (!(instance && instance.collapse)) {\n    return { result: false, message: \"instance.collapse is not defined\" };\n  }\n  try {\n    instance.collapse();\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.collapsed",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"collapsed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.commonAncestorContainer",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"commonAncestorContainer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.compareBoundaryPoints",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"compareBoundaryPoints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.compareNode",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"compareNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.comparePoint",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"comparePoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.createContextualFragment",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"createContextualFragment\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.deleteContents",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"deleteContents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.detach",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"detach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.endContainer",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"endContainer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.endOffset",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"endOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.extractContents",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"extractContents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.getBoundingClientRect",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"getBoundingClientRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.getClientRects",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"getClientRects\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.insertNode",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"insertNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.intersectsNode",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"intersectsNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.isPointInRange",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"isPointInRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.selectNode",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"selectNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.selectNodeContents",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"selectNodeContents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setEnd",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setEndAfter",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setEndAfter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setEndBefore",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setEndBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setStart",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setStartAfter",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setStartAfter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.setStartBefore",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"setStartBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.startContainer",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"startContainer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.startOffset",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"startOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.surroundContents",
      "info": {
        "code": "(function () {\n  var instance = document.createRange();\n  return !!instance && \"surroundContents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Range.toString",
      "info": {
        "code": "\"Range\" in self && \"toString\" in Range.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ReadableByteStreamController",
      "info": {
        "code": "\"ReadableByteStreamController\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableByteStreamController.byobRequest",
      "info": {
        "code": "\"ReadableByteStreamController\" in self && \"byobRequest\" in ReadableByteStreamController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableByteStreamController.close",
      "info": {
        "code": "\"ReadableByteStreamController\" in self && \"close\" in ReadableByteStreamController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableByteStreamController.desiredSize",
      "info": {
        "code": "\"ReadableByteStreamController\" in self && \"desiredSize\" in ReadableByteStreamController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableByteStreamController.enqueue",
      "info": {
        "code": "\"ReadableByteStreamController\" in self && \"enqueue\" in ReadableByteStreamController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableByteStreamController.error",
      "info": {
        "code": "\"ReadableByteStreamController\" in self && \"error\" in ReadableByteStreamController.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStream.ReadableStream",
      "info": {
        "code": "bcd.testConstructor('ReadableStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.ReadableStream.from_static",
      "info": {
        "code": "\"ReadableStream\" in self && \"from\" in ReadableStream",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBReader",
      "info": {
        "code": "\"ReadableStreamBYOBReader\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBReader.ReadableStreamBYOBReader",
      "info": {
        "code": "bcd.testConstructor('ReadableStreamBYOBReader')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'ReadableStreamBYOBReader': 1 argument required, but only 0 present."
    },
    {
      "name": "api.ReadableStreamBYOBReader.cancel",
      "info": {
        "code": "\"ReadableStreamBYOBReader\" in self && \"cancel\" in ReadableStreamBYOBReader.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBReader.closed",
      "info": {
        "code": "\"ReadableStreamBYOBReader\" in self && \"closed\" in ReadableStreamBYOBReader.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBReader.read",
      "info": {
        "code": "\"ReadableStreamBYOBReader\" in self && \"read\" in ReadableStreamBYOBReader.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBReader.releaseLock",
      "info": {
        "code": "\"ReadableStreamBYOBReader\" in self && \"releaseLock\" in ReadableStreamBYOBReader.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBRequest",
      "info": {
        "code": "\"ReadableStreamBYOBRequest\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBRequest.respond",
      "info": {
        "code": "\"ReadableStreamBYOBRequest\" in self && \"respond\" in ReadableStreamBYOBRequest.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBRequest.respondWithNewView",
      "info": {
        "code": "\"ReadableStreamBYOBRequest\" in self && \"respondWithNewView\" in ReadableStreamBYOBRequest.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamBYOBRequest.view",
      "info": {
        "code": "\"ReadableStreamBYOBRequest\" in self && \"view\" in ReadableStreamBYOBRequest.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultController",
      "info": {
        "code": "(function () {\n  if (!(\"ReadableStream\" in self)) {\n    return {\n      result: false,\n      message: \"ReadableStream constructor is not defined\"\n    };\n  }\n\n  var instance;\n  try {\n    var stream = new ReadableStream({\n      start(controller) {\n        instance = controller;\n      }\n    });\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultController.close",
      "info": {
        "code": "(function () {\n  if (!(\"ReadableStream\" in self)) {\n    return {\n      result: false,\n      message: \"ReadableStream constructor is not defined\"\n    };\n  }\n\n  var instance;\n  try {\n    var stream = new ReadableStream({\n      start(controller) {\n        instance = controller;\n      }\n    });\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultController.desiredSize",
      "info": {
        "code": "(function () {\n  if (!(\"ReadableStream\" in self)) {\n    return {\n      result: false,\n      message: \"ReadableStream constructor is not defined\"\n    };\n  }\n\n  var instance;\n  try {\n    var stream = new ReadableStream({\n      start(controller) {\n        instance = controller;\n      }\n    });\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n  return !!instance && \"desiredSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultController.enqueue",
      "info": {
        "code": "(function () {\n  if (!(\"ReadableStream\" in self)) {\n    return {\n      result: false,\n      message: \"ReadableStream constructor is not defined\"\n    };\n  }\n\n  var instance;\n  try {\n    var stream = new ReadableStream({\n      start(controller) {\n        instance = controller;\n      }\n    });\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n  return !!instance && \"enqueue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultController.error",
      "info": {
        "code": "(function () {\n  if (!(\"ReadableStream\" in self)) {\n    return {\n      result: false,\n      message: \"ReadableStream constructor is not defined\"\n    };\n  }\n\n  var instance;\n  try {\n    var stream = new ReadableStream({\n      start(controller) {\n        instance = controller;\n      }\n    });\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ReadableStreamDefaultReader.ReadableStreamDefaultReader",
      "info": {
        "code": "bcd.testConstructor('ReadableStreamDefaultReader')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'ReadableStreamDefaultReader': 1 argument required, but only 0 present."
    },
    {
      "name": "api.Rect",
      "info": {
        "code": "\"Rect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rect.bottom",
      "info": {
        "code": "\"Rect\" in self && \"bottom\" in Rect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rect.left",
      "info": {
        "code": "\"Rect\" in self && \"left\" in Rect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rect.right",
      "info": {
        "code": "\"Rect\" in self && \"right\" in Rect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rect.top",
      "info": {
        "code": "\"Rect\" in self && \"top\" in Rect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RelativeOrientationSensor",
      "info": {
        "code": "\"RelativeOrientationSensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RelativeOrientationSensor.RelativeOrientationSensor",
      "info": {
        "code": "bcd.testConstructor('RelativeOrientationSensor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: RelativeOrientationSensor is not defined"
    },
    {
      "name": "api.RemotePlayback",
      "info": {
        "code": "\"RemotePlayback\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RemotePlayback.cancelWatchAvailability",
      "info": {
        "code": "\"RemotePlayback\" in self && \"cancelWatchAvailability\" in RemotePlayback.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RemotePlayback.prompt",
      "info": {
        "code": "\"RemotePlayback\" in self && \"prompt\" in RemotePlayback.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RemotePlayback.state",
      "info": {
        "code": "\"RemotePlayback\" in self && \"state\" in RemotePlayback.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RemotePlayback.watchAvailability",
      "info": {
        "code": "\"RemotePlayback\" in self && \"watchAvailability\" in RemotePlayback.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ReportingObserver",
      "info": {
        "code": "\"ReportingObserver\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ReportingObserver.ReportingObserver",
      "info": {
        "code": "bcd.testConstructor('ReportingObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ReportingObserver is not defined"
    },
    {
      "name": "api.ReportingObserver.disconnect",
      "info": {
        "code": "\"ReportingObserver\" in self && \"disconnect\" in ReportingObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ReportingObserver.observe",
      "info": {
        "code": "\"ReportingObserver\" in self && \"observe\" in ReportingObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ReportingObserver.takeRecords",
      "info": {
        "code": "\"ReportingObserver\" in self && \"takeRecords\" in ReportingObserver.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.Request",
      "info": {
        "code": "bcd.testConstructor('Request')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'Request': 1 argument required, but only 0 present."
    },
    {
      "name": "api.Request.Request.init_priority_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  function construct(options) {\n    new Request(\"https://example.com\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"priority\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.Request.init_referrer_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  function construct(options) {\n    new Request(\"https://example.com\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"referrer\", \"no-referrer\");\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.arrayBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"arrayBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.blob",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"blob\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.body",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"body\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.bodyUsed",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"bodyUsed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.bytes",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"bytes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.cache",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"cache\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.cache.only-if-cached",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  instance = new Request(\"https://example.com\", {\n    mode: \"same-origin\",\n    cache: \"only-if-cached\"\n  });\n  return instance.cache === \"only-if-cached\";\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.clone",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"clone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.credentials",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"credentials\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.credentials.default_same-origin",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return instance.credentials === \"same-origin\";\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.destination",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"destination\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.duplex",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"duplex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.formData",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"formData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.headers",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"headers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.integrity",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"integrity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.isHistoryNavigation",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"isHistoryNavigation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.isReloadNavigation",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"isReloadNavigation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.json",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"json\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.keepalive",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"keepalive\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.method",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"method\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.mode",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"mode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.redirect",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"redirect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.referrer",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"referrer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.referrerPolicy",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.signal",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"signal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.targetAddressSpace",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"targetAddressSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Request.text",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Request.url",
      "info": {
        "code": "(function () {\n  if (!(\"Request\" in self)) {\n    return { result: false, message: \"Request is not defined\" };\n  }\n  var instance = new Request(\"https://example.com\");\n  return !!instance && \"url\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.ResizeObserver",
      "info": {
        "code": "(function () {\n  if (!(\"ResizeObserver\" in self)) {\n    return { result: false, message: \"ResizeObserver is not defined\" };\n  }\n  var instance = new ResizeObserver(function () {});\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserver.ResizeObserver",
      "info": {
        "code": "bcd.testConstructor('ResizeObserver')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserver.disconnect",
      "info": {
        "code": "(function () {\n  if (!(\"ResizeObserver\" in self)) {\n    return { result: false, message: \"ResizeObserver is not defined\" };\n  }\n  var instance = new ResizeObserver(function () {});\n  return !!instance && \"disconnect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserver.observe",
      "info": {
        "code": "(function () {\n  if (!(\"ResizeObserver\" in self)) {\n    return { result: false, message: \"ResizeObserver is not defined\" };\n  }\n  var instance = new ResizeObserver(function () {});\n  return !!instance && \"observe\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserver.observe.options_box_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"ResizeObserver\" in self)) {\n    return { result: false, message: \"ResizeObserver is not defined\" };\n  }\n  var instance = new ResizeObserver(function () {});\n  var el;\n  try {\n    el = document.createElementNS(\"\", \"el\");\n  } catch (e) {\n    el = document.createElement(\"b\");\n  }\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  if (!(\"observe\" in instance)) {\n    return { result: false, message: \"ResizeObserver.observe is not defined\" };\n  }\n  function observe(options) {\n    instance.observe(el, options);\n  }\n  return bcd.testOptionParam(observe, null, \"box\", \"content-box\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserver.unobserve",
      "info": {
        "code": "(function () {\n  if (!(\"ResizeObserver\" in self)) {\n    return { result: false, message: \"ResizeObserver is not defined\" };\n  }\n  var instance = new ResizeObserver(function () {});\n  return !!instance && \"unobserve\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "ResizeObserver is not defined"
    },
    {
      "name": "api.ResizeObserverEntry",
      "info": {
        "code": "\"ResizeObserverEntry\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverEntry.borderBoxSize",
      "info": {
        "code": "\"ResizeObserverEntry\" in self && \"borderBoxSize\" in ResizeObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverEntry.contentBoxSize",
      "info": {
        "code": "\"ResizeObserverEntry\" in self && \"contentBoxSize\" in ResizeObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverEntry.contentRect",
      "info": {
        "code": "\"ResizeObserverEntry\" in self && \"contentRect\" in ResizeObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverEntry.devicePixelContentBoxSize",
      "info": {
        "code": "\"ResizeObserverEntry\" in self && \"devicePixelContentBoxSize\" in ResizeObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverEntry.target",
      "info": {
        "code": "\"ResizeObserverEntry\" in self && \"target\" in ResizeObserverEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverSize",
      "info": {
        "code": "\"ResizeObserverSize\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverSize.blockSize",
      "info": {
        "code": "\"ResizeObserverSize\" in self && \"blockSize\" in ResizeObserverSize.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ResizeObserverSize.inlineSize",
      "info": {
        "code": "\"ResizeObserverSize\" in self && \"inlineSize\" in ResizeObserverSize.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Response",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.Response",
      "info": {
        "code": "bcd.testConstructor('Response')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.Response.Response.body_parameter_optional",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  try {\n    new Response();\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.arrayBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"arrayBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.blob",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"blob\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.body",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"body\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.body.readable_byte_stream",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  if (!instance.body) {\n    return { result: false, message: \"Response.body is not defined\" };\n  }\n  if (!(\"getReader\" in instance.body)) {\n    return { result: false, message: \"Response.body.getReader is not defined\" };\n  }\n  try {\n    instance.body.getReader({ mode: \"byob\" });\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot use a BYOB reader with a non-byte stream"
    },
    {
      "name": "api.Response.bodyUsed",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"bodyUsed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.bytes",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"bytes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Response.clone",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"clone\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.error_static",
      "info": {
        "code": "\"Response\" in self && \"error\" in Response",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.formData",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"formData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.headers",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"headers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.json",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"json\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.json_static",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return \"Response\" in self && \"json\" in Response;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.ok",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"ok\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.redirect_static",
      "info": {
        "code": "\"Response\" in self && \"redirect\" in Response",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.redirected",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"redirected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.status",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"status\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.statusText",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"statusText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.text",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.type",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Response.url",
      "info": {
        "code": "(function () {\n  if (!(\"Response\" in self)) {\n    return { result: false, message: \"Response is not defined\" };\n  }\n  var instance = new Response(\"\");\n  return !!instance && \"url\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.RestrictionTarget",
      "info": {
        "code": "\"RestrictionTarget\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.RestrictionTarget.fromElement_static",
      "info": {
        "code": "\"RestrictionTarget\" in self && \"fromElement\" in RestrictionTarget",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter",
      "info": {
        "code": "\"Rewriter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.availability_static",
      "info": {
        "code": "\"Rewriter\" in self && \"availability\" in Rewriter",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.create_static",
      "info": {
        "code": "\"Rewriter\" in self && \"create\" in Rewriter",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.destroy",
      "info": {
        "code": "\"Rewriter\" in self && \"destroy\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.expectedContextLanguages",
      "info": {
        "code": "\"Rewriter\" in self && \"expectedContextLanguages\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.expectedInputLanguages",
      "info": {
        "code": "\"Rewriter\" in self && \"expectedInputLanguages\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.format",
      "info": {
        "code": "\"Rewriter\" in self && \"format\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.inputQuota",
      "info": {
        "code": "\"Rewriter\" in self && \"inputQuota\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.length",
      "info": {
        "code": "\"Rewriter\" in self && \"length\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.measureInputUsage",
      "info": {
        "code": "\"Rewriter\" in self && \"measureInputUsage\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.outputLanguage",
      "info": {
        "code": "\"Rewriter\" in self && \"outputLanguage\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.rewrite",
      "info": {
        "code": "\"Rewriter\" in self && \"rewrite\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.rewriteStreaming",
      "info": {
        "code": "\"Rewriter\" in self && \"rewriteStreaming\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.sharedContext",
      "info": {
        "code": "\"Rewriter\" in self && \"sharedContext\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Rewriter.tone",
      "info": {
        "code": "\"Rewriter\" in self && \"tone\" in Rewriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameDecrypterStream",
      "info": {
        "code": "\"SFrameDecrypterStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameDecrypterStream.SFrameDecrypterStream",
      "info": {
        "code": "bcd.testConstructor('SFrameDecrypterStream')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SFrameDecrypterStream is not defined"
    },
    {
      "name": "api.SFrameDecrypterStream.readable",
      "info": {
        "code": "\"SFrameDecrypterStream\" in self && \"readable\" in SFrameDecrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameDecrypterStream.setEncryptionKey",
      "info": {
        "code": "\"SFrameDecrypterStream\" in self && \"setEncryptionKey\" in SFrameDecrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameDecrypterStream.writable",
      "info": {
        "code": "\"SFrameDecrypterStream\" in self && \"writable\" in SFrameDecrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameEncrypterStream",
      "info": {
        "code": "\"SFrameEncrypterStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameEncrypterStream.SFrameEncrypterStream",
      "info": {
        "code": "bcd.testConstructor('SFrameEncrypterStream')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SFrameEncrypterStream is not defined"
    },
    {
      "name": "api.SFrameEncrypterStream.readable",
      "info": {
        "code": "\"SFrameEncrypterStream\" in self && \"readable\" in SFrameEncrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameEncrypterStream.setEncryptionKey",
      "info": {
        "code": "\"SFrameEncrypterStream\" in self && \"setEncryptionKey\" in SFrameEncrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameEncrypterStream.writable",
      "info": {
        "code": "\"SFrameEncrypterStream\" in self && \"writable\" in SFrameEncrypterStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransform",
      "info": {
        "code": "\"SFrameTransform\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransform.SFrameTransform",
      "info": {
        "code": "bcd.testConstructor('SFrameTransform')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SFrameTransform is not defined"
    },
    {
      "name": "api.SFrameTransform.setEncryptionKey",
      "info": {
        "code": "\"SFrameTransform\" in self && \"setEncryptionKey\" in SFrameTransform.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransformErrorEvent",
      "info": {
        "code": "\"SFrameTransformErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransformErrorEvent.SFrameTransformErrorEvent",
      "info": {
        "code": "bcd.testConstructor('SFrameTransformErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SFrameTransformErrorEvent is not defined"
    },
    {
      "name": "api.SFrameTransformErrorEvent.errorType",
      "info": {
        "code": "\"SFrameTransformErrorEvent\" in self && \"errorType\" in SFrameTransformErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransformErrorEvent.frame",
      "info": {
        "code": "\"SFrameTransformErrorEvent\" in self && \"frame\" in SFrameTransformErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SFrameTransformErrorEvent.keyID",
      "info": {
        "code": "\"SFrameTransformErrorEvent\" in self && \"keyID\" in SFrameTransformErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGAElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return bcd.testObjectName(instance, \"SVGAElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.download",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"download\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.hash",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.host",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.hostname",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.hreflang",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"hreflang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.origin",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.password",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"password\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.pathname",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.ping",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"ping\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.port",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.protocol",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.referrerPolicy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"referrerPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.rel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"rel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.relList",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"relList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.search",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.target",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"target\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAElement.username",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n  return !!instance && \"username\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.convertToSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"convertToSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.newValueSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"newValueSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.unitType",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"unitType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.value",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.valueAsString",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"valueAsString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAngle.valueInSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGAngle();\n  return !!instance && \"valueInSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimateColorElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animateColor\"\n  );\n  return bcd.testObjectName(instance, \"SVGAnimateColorElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimateElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return bcd.testObjectName(instance, \"SVGAnimateElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimateMotionElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animateMotion\"\n  );\n  return bcd.testObjectName(instance, \"SVGAnimateMotionElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimateTransformElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animateTransform\"\n  );\n  return bcd.testObjectName(instance, \"SVGAnimateTransformElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedAngle",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientAngle;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedAngle.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientAngle;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedAngle.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientAngle;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedBoolean",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAlpha;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedBoolean.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAlpha;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedBoolean.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAlpha;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedEnumeration",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientType;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedEnumeration.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientType;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedEnumeration.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orientType;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedInteger",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orderX;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedInteger.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orderX;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedInteger.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.orderX;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLength",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.refX;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLength.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.refX;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLength.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"marker\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.refX;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLengthList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.x;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLengthList.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.x;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedLengthList.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.x;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumber",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.offset;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumber.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.offset;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumber.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.offset;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumberList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.kernelMatrix;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumberList.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.kernelMatrix;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedNumberList.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.kernelMatrix;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedPreserveAspectRatio",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"feImage\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedPreserveAspectRatio.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"feImage\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedPreserveAspectRatio.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"feImage\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedRect",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.viewBox;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedRect.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.viewBox;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedRect.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.viewBox;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedString",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"title\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.className;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedString.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"title\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.className;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedString.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"title\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.className;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedTransformList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.transform;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedTransformList.animVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.transform;\n  return !!instance && \"animVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimatedTransformList.baseVal",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.transform;\n  return !!instance && \"baseVal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return bcd.testObjectName(instance, \"SVGAnimateElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.beginElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"beginElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.beginElementAt",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"beginElementAt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.endElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"endElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.endElementAt",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"endElementAt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.getCurrentTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"getCurrentTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.getSimpleDuration",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"getSimpleDuration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.getStartTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"getStartTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.requiredExtensions",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"requiredExtensions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.systemLanguage",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"systemLanguage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGAnimationElement.targetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"animate\"\n  );\n  return !!instance && \"targetElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGCircleElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"circle\"\n  );\n  return bcd.testObjectName(instance, \"SVGCircleElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGCircleElement.cx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"circle\"\n  );\n  return !!instance && \"cx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGCircleElement.cy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"circle\"\n  );\n  return !!instance && \"cy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGCircleElement.r",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"circle\"\n  );\n  return !!instance && \"r\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGClipPathElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"clipPath\"\n  );\n  return bcd.testObjectName(instance, \"SVGClipPathElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGClipPathElement.clipPathUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"clipPath\"\n  );\n  return !!instance && \"clipPathUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGClipPathElement.transform",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"clipPath\"\n  );\n  return !!instance && \"transform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFuncAElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.amplitude",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"amplitude\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.exponent",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"exponent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.intercept",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"intercept\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.offset",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"offset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.slope",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"slope\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.tableValues",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"tableValues\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGComponentTransferFunctionElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGDefsElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"defs\");\n  return bcd.testObjectName(instance, \"SVGDefsElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGDescElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"desc\");\n  return bcd.testObjectName(instance, \"SVGDescElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.attributeStyleMap",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"attributeStyleMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.autofocus",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"autofocus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.blur",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"blur\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.className",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"className\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.correspondingElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"correspondingElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.correspondingUseElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"correspondingUseElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.dataset",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"dataset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.focus",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"focus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.focus.options_preventScroll_parameter",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return bcd.testOptionParam(instance, \"focus\", \"preventScroll\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.nonce",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"nonce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.ownerSVGElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"ownerSVGElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.style",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"style\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.tabIndex",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"tabIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGElement.viewportElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return !!instance && \"viewportElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGEllipseElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"ellipse\"\n  );\n  return bcd.testObjectName(instance, \"SVGEllipseElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGEllipseElement.cx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"ellipse\"\n  );\n  return !!instance && \"cx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGEllipseElement.cy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"ellipse\"\n  );\n  return !!instance && \"cy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGEllipseElement.rx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"ellipse\"\n  );\n  return !!instance && \"rx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGEllipseElement.ry",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"ellipse\"\n  );\n  return !!instance && \"ry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEBlendElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.in2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"in2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.mode",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"mode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEBlendElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feBlend\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEColorMatrixElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.values",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEColorMatrixElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feColorMatrix\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEComponentTransferElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEComponentTransferElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComponentTransfer\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return bcd.testObjectName(instance, \"SVGFECompositeElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.in2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"in2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.k1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"k1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.k2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"k2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.k3",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"k3\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.k4",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"k4\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.operator",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"operator\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFECompositeElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feComposite\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEConvolveMatrixElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.bias",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"bias\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.divisor",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"divisor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.edgeMode",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"edgeMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.kernelMatrix",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"kernelMatrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.kernelUnitLengthX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"kernelUnitLengthX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.kernelUnitLengthY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"kernelUnitLengthY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.orderX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"orderX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.orderY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"orderY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.preserveAlpha",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"preserveAlpha\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.targetX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"targetX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.targetY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"targetY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEConvolveMatrixElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEDiffuseLightingElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.diffuseConstant",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"diffuseConstant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.kernelUnitLengthX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"kernelUnitLengthX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.kernelUnitLengthY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"kernelUnitLengthY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.surfaceScale",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"surfaceScale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDiffuseLightingElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDiffuseLighting\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEDisplacementMapElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.in2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"in2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.scale",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"scale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.xChannelSelector",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"xChannelSelector\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDisplacementMapElement.yChannelSelector",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDisplacementMap\"\n  );\n  return !!instance && \"yChannelSelector\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDistantLightElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDistantLight\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEDistantLightElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDistantLightElement.azimuth",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDistantLight\"\n  );\n  return !!instance && \"azimuth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDistantLightElement.elevation",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDistantLight\"\n  );\n  return !!instance && \"elevation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEDropShadowElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.dx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"dx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.dy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"dy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.setStdDeviation",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"setStdDeviation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.stdDeviationX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"stdDeviationX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.stdDeviationY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"stdDeviationY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEDropShadowElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feDropShadow\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFloodElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFloodElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFlood\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFuncAElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncA\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFuncAElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFuncBElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncB\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFuncBElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFuncGElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncG\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFuncGElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEFuncRElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feFuncR\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEFuncRElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEGaussianBlurElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.edgeMode",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"edgeMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.setStdDeviation",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"setStdDeviation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.stdDeviationX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"stdDeviationX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.stdDeviationY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"stdDeviationY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEGaussianBlurElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feGaussianBlur\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEImageElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEImageElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feImage\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEMergeElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMerge\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeNodeElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMergeNode\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEMergeNodeElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMergeNodeElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMergeNode\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEMorphologyElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.operator",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"operator\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.radiusX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"radiusX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.radiusY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"radiusY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEMorphologyElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feMorphology\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEOffsetElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.dx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"dx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.dy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"dy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEOffsetElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feOffset\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEPointLightElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"fePointLight\"\n  );\n  return bcd.testObjectName(instance, \"SVGFEPointLightElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEPointLightElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"fePointLight\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEPointLightElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"fePointLight\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFEPointLightElement.z",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"fePointLight\"\n  );\n  return !!instance && \"z\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return bcd.testObjectName(instance, \"SVGFESpecularLightingElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.kernelUnitLengthX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"kernelUnitLengthX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.kernelUnitLengthY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"kernelUnitLengthY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.specularConstant",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"specularConstant\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.specularExponent",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"specularExponent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.surfaceScale",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"surfaceScale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpecularLightingElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpecularLighting\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return bcd.testObjectName(instance, \"SVGFESpotLightElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.limitingConeAngle",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"limitingConeAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.pointsAtX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"pointsAtX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.pointsAtY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"pointsAtY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.pointsAtZ",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"pointsAtZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.specularExponent",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"specularExponent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFESpotLightElement.z",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feSpotLight\"\n  );\n  return !!instance && \"z\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return bcd.testObjectName(instance, \"SVGFETileElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.in1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"in1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETileElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTile\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return bcd.testObjectName(instance, \"SVGFETurbulenceElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.baseFrequencyX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"baseFrequencyX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.baseFrequencyY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"baseFrequencyY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.numOctaves",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"numOctaves\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.result",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"result\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.seed",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"seed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.stitchTiles",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"stitchTiles\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFETurbulenceElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feTurbulence\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return bcd.testObjectName(instance, \"SVGFilterElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.filterUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"filterUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.primitiveUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"primitiveUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGFilterElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"filter\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGForeignObjectElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"foreignObject\"\n  );\n  return bcd.testObjectName(instance, \"SVGForeignObjectElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGForeignObjectElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"foreignObject\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGForeignObjectElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"foreignObject\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGForeignObjectElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"foreignObject\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGForeignObjectElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"foreignObject\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  return bcd.testObjectName(instance, \"SVGGElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return bcd.testObjectName(instance, \"SVGPathElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.getPointAtLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getPointAtLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.getTotalLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getTotalLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.isPointInFill",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"isPointInFill\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.isPointInFill.point_parameter_DOMPoint",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  try {\n    instance.isPointInFill(new DOMPoint(20, 20));\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.isPointInStroke",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"isPointInStroke\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.isPointInStroke.point_parameter_DOMPoint",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  try {\n    instance.isPointInStroke(new DOMPoint(20, 20));\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGeometryElement.pathLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"pathLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGradientElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return bcd.testObjectName(instance, \"SVGLinearGradientElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGradientElement.gradientTransform",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"gradientTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGradientElement.gradientUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"gradientUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGradientElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGradientElement.spreadMethod",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"spreadMethod\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn bcd.testObjectName(instance, 'SVGImageElement');\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.getBBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"getBBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.getCTM",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"getCTM\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.getScreenCTM",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"getScreenCTM\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.requiredExtensions",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"requiredExtensions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.systemLanguage",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"systemLanguage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGGraphicsElement.transform",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"transform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn bcd.testObjectName(instance, 'SVGImageElement');\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.decode",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"decode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.decoding",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"decoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGImageElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"image\"\n  );\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain testsreturn !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.convertToSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"convertToSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.newValueSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"newValueSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.unitType",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"unitType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.value",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.valueAsString",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"valueAsString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLength.valueInSpecifiedUnits",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGLength();\n  return !!instance && \"valueInSpecifiedUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.appendItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"appendItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.clear",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.getItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"getItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.initialize",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.insertItemBefore",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"insertItemBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.numberOfItems",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"numberOfItems\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.removeItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"removeItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLengthList.replaceItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.x;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"replaceItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLineElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"line\");\n  return bcd.testObjectName(instance, \"SVGLineElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLineElement.x1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"line\");\n  return !!instance && \"x1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLineElement.x2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"line\");\n  return !!instance && \"x2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLineElement.y1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"line\");\n  return !!instance && \"y1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLineElement.y2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"line\");\n  return !!instance && \"y2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLinearGradientElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return bcd.testObjectName(instance, \"SVGLinearGradientElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLinearGradientElement.x1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"x1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLinearGradientElement.x2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"x2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLinearGradientElement.y1",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"y1\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGLinearGradientElement.y2",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"linearGradient\"\n  );\n  return !!instance && \"y2\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMPathElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"mpath\"\n  );\n  return bcd.testObjectName(instance, \"SVGMPathElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMPathElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"mpath\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return bcd.testObjectName(instance, \"SVGMarkerElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.markerHeight",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"markerHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.markerUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"markerUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.markerWidth",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"markerWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.orient",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"orient\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.orientAngle",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"orientAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.orientType",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"orientType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.refX",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"refX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.refY",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"refY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.setOrientToAngle",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"setOrientToAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.setOrientToAuto",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"setOrientToAuto\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMarkerElement.viewBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"marker\"\n  );\n  return !!instance && \"viewBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return bcd.testObjectName(instance, \"SVGMaskElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.maskContentUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"maskContentUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.maskUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"maskUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMaskElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"mask\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGMetadataElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"metadata\"\n  );\n  return bcd.testObjectName(instance, \"SVGMetadataElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumber",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGNumber();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumber.value",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGNumber();\n  return !!instance && \"value\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.appendItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"appendItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.clear",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.getItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"getItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.initialize",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.insertItemBefore",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"insertItemBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.numberOfItems",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"numberOfItems\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.removeItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"removeItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGNumberList.replaceItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"feConvolveMatrix\"\n  );\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.kernelMatrix;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"replaceItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return bcd.testObjectName(instance, \"SVGPathElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegArcAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegArcAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegArcRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegArcRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegClosePath",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegClosePath\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoCubicAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoCubicAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoCubicRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoCubicRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoCubicSmoothAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoCubicSmoothRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoQuadraticAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoQuadraticAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoQuadraticRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoQuadraticRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoQuadraticSmoothAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegCurvetoQuadraticSmoothRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoHorizontalAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoHorizontalAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoHorizontalRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoHorizontalRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoVerticalAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoVerticalAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegLinetoVerticalRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegLinetoVerticalRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegMovetoAbs",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegMovetoAbs\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.createSVGPathSegMovetoRel",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"createSVGPathSegMovetoRel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.getPathData",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getPathData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.getPathSegAtLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getPathSegAtLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.getPathSegmentAtLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getPathSegmentAtLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.getPointAtLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getPointAtLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.getTotalLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"getTotalLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.pathLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"pathLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathElement.setPathData",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  return !!instance && \"setPathData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPathSegment",
      "info": {
        "code": "\"SVGPathSegment\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGPathSegment.type",
      "info": {
        "code": "\"SVGPathSegment\" in self && \"type\" in SVGPathSegment.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGPathSegment.values",
      "info": {
        "code": "\"SVGPathSegment\" in self && \"values\" in SVGPathSegment.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGPatternElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return bcd.testObjectName(instance, \"SVGPatternElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.patternContentUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"patternContentUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.patternTransform",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"patternTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.patternUnits",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"patternUnits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.viewBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"viewBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPatternElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"pattern\"\n  );\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPoint",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGPoint();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPoint.matrixTransform",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGPoint();\n  return !!instance && \"matrixTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPoint.x",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGPoint();\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPoint.y",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGPoint();\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.appendItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"appendItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.clear",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.getItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"getItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.initialize",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.insertItemBefore",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"insertItemBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.numberOfItems",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"numberOfItems\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.removeItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"removeItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPointList.replaceItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.points;\n  return !!instance && \"replaceItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolygonElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polygon\"\n  );\n  return bcd.testObjectName(instance, \"SVGPolygonElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolygonElement.animatedPoints",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polygon\"\n  );\n  return !!instance && \"animatedPoints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolygonElement.points",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polygon\"\n  );\n  return !!instance && \"points\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolylineElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polyline\"\n  );\n  return bcd.testObjectName(instance, \"SVGPolylineElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolylineElement.animatedPoints",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polyline\"\n  );\n  return !!instance && \"animatedPoints\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPolylineElement.points",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"polyline\"\n  );\n  return !!instance && \"points\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPreserveAspectRatio",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio.baseVal;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPreserveAspectRatio.align",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio.baseVal;\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGPreserveAspectRatio.meetOrSlice",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.preserveAspectRatio.baseVal;\n  return !!instance && \"meetOrSlice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return bcd.testObjectName(instance, \"SVGRadialGradientElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.cx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"cx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.cy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"cy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.fr",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"fr\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.fx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"fx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.fy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"fy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRadialGradientElement.r",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"radialGradient\"\n  );\n  return !!instance && \"r\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRect",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGRect();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRect.height",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGRect();\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRect.width",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGRect();\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRect.x",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGRect();\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRect.y",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGRect();\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return bcd.testObjectName(instance, \"SVGRectElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.rx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"rx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.ry",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"ry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRectElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGRenderingIntent",
      "info": {
        "code": "\"SVGRenderingIntent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGSVGElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return bcd.testObjectName(instance, \"SVGSVGElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.animationsPaused",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"animationsPaused\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.checkEnclosure",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"checkEnclosure\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.checkIntersection",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"checkIntersection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGAngle",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGAngle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGMatrix",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGMatrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGNumber",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGPoint",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGRect",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGRect\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGTransform",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGTransform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.createSVGTransformFromMatrix",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"createSVGTransformFromMatrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.currentScale",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"currentScale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.currentTranslate",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"currentTranslate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.currentView",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"currentView\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.deselectAll",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"deselectAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.forceRedraw",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"forceRedraw\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.getCurrentTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"getCurrentTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.getElementById",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"getElementById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.getEnclosureList",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"getEnclosureList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.getIntersectionList",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"getIntersectionList\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.pauseAnimations",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"pauseAnimations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.setCurrentTime",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"setCurrentTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.suspendRedraw",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"suspendRedraw\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.unpauseAnimations",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"unpauseAnimations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.unsuspendRedraw",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"unsuspendRedraw\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.unsuspendRedrawAll",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"unsuspendRedrawAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.useCurrentView",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"useCurrentView\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.viewBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"viewBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSVGElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return bcd.testObjectName(instance, \"SVGScriptElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement.async",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return !!instance && \"async\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement.crossOrigin",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return !!instance && \"crossOrigin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement.defer",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return !!instance && \"defer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGScriptElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"script\"\n  );\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSetElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"set\");\n  return bcd.testObjectName(instance, \"SVGSetElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStopElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n  return bcd.testObjectName(instance, \"SVGStopElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStopElement.offset",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n  return !!instance && \"offset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.appendItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"appendItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.clear",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.getItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"getItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.initialize",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.insertItemBefore",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"insertItemBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.numberOfItems",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"numberOfItems\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.removeItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"removeItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStringList.replaceItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.systemLanguage;\n  return !!instance && \"replaceItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return bcd.testObjectName(instance, \"SVGStyleElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement.disabled",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement.media",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement.sheet",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return !!instance && \"sheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement.title",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return !!instance && \"title\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGStyleElement.type",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"style\"\n  );\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSwitchElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"switch\"\n  );\n  return bcd.testObjectName(instance, \"SVGSwitchElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSymbolElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"symbol\"\n  );\n  return bcd.testObjectName(instance, \"SVGSymbolElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSymbolElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"symbol\"\n  );\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGSymbolElement.viewBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"symbol\"\n  );\n  return !!instance && \"viewBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTSpanElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"tspan\"\n  );\n  return bcd.testObjectName(instance, \"SVGTSpanElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return bcd.testObjectName(instance, \"SVGTextElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getCharNumAtPosition",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getCharNumAtPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getComputedTextLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getComputedTextLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getEndPositionOfChar",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getEndPositionOfChar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getExtentOfChar",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getExtentOfChar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getNumberOfChars",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getNumberOfChars\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getRotationOfChar",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getRotationOfChar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getStartPositionOfChar",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getStartPositionOfChar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.getSubStringLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"getSubStringLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.lengthAdjust",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"lengthAdjust\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.selectSubString",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"selectSubString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextContentElement.textLength",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"textLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return bcd.testObjectName(instance, \"SVGTextElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPathElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"textPath\"\n  );\n  return bcd.testObjectName(instance, \"SVGTextPathElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPathElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"textPath\"\n  );\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPathElement.method",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"textPath\"\n  );\n  return !!instance && \"method\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPathElement.spacing",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"textPath\"\n  );\n  return !!instance && \"spacing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPathElement.startOffset",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"textPath\"\n  );\n  return !!instance && \"startOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return bcd.testObjectName(instance, \"SVGTextElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement.dx",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"dx\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement.dy",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"dy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement.rotate",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"rotate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTextPositioningElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTitleElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\n    \"http://www.w3.org/2000/svg\",\n    \"title\"\n  );\n  return bcd.testObjectName(instance, \"SVGTitleElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.angle",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"angle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.matrix",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"matrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setMatrix",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setMatrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setRotate",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setRotate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setScale",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setScale\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setSkewX",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setSkewX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setSkewY",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setSkewY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.setTranslate",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"setTranslate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransform.type",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.createSVGTransform();\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.appendItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"appendItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.clear",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.consolidate",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"consolidate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.createSVGTransformFromMatrix",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"createSVGTransformFromMatrix\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.getItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"getItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.initialize",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"initialize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.insertItemBefore",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"insertItemBefore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.length",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.numberOfItems",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"numberOfItems\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.removeItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"removeItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGTransformList.replaceItem",
      "info": {
        "code": "(function () {\n  var el = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var list = el.transform;\n  if (!list) {\n    return { result: false, message: \"list is falsy\" };\n  }\n  var instance = list.baseVal;\n  return !!instance && \"replaceItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUnitTypes",
      "info": {
        "code": "\"SVGUnitTypes\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGUseElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return bcd.testObjectName(instance, \"SVGUseElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.animatedInstanceRoot",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"animatedInstanceRoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.height",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.href",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.instanceRoot",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"instanceRoot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.width",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.x",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"x\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElement.y",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"use\");\n  return !!instance && \"y\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGUseElementShadowRoot",
      "info": {
        "code": "\"SVGUseElementShadowRoot\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SVGViewElement",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"view\");\n  return bcd.testObjectName(instance, \"SVGViewElement\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGViewElement.preserveAspectRatio",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"view\");\n  return !!instance && \"preserveAspectRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SVGViewElement.viewBox",
      "info": {
        "code": "(function () {\n  var instance = document.createElementNS(\"http://www.w3.org/2000/svg\", \"view\");\n  return !!instance && \"viewBox\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Sanitizer",
      "info": {
        "code": "\"Sanitizer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.Sanitizer",
      "info": {
        "code": "bcd.testConstructor('Sanitizer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Sanitizer is not defined"
    },
    {
      "name": "api.Sanitizer.allowAttribute",
      "info": {
        "code": "\"Sanitizer\" in self && \"allowAttribute\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.allowElement",
      "info": {
        "code": "\"Sanitizer\" in self && \"allowElement\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.get",
      "info": {
        "code": "\"Sanitizer\" in self && \"get\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.removeAttribute",
      "info": {
        "code": "\"Sanitizer\" in self && \"removeAttribute\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.removeElement",
      "info": {
        "code": "\"Sanitizer\" in self && \"removeElement\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.removeUnsafe",
      "info": {
        "code": "\"Sanitizer\" in self && \"removeUnsafe\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.replaceElementWithChildren",
      "info": {
        "code": "\"Sanitizer\" in self && \"replaceElementWithChildren\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.setComments",
      "info": {
        "code": "\"Sanitizer\" in self && \"setComments\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sanitizer.setDataAttributes",
      "info": {
        "code": "\"Sanitizer\" in self && \"setDataAttributes\" in Sanitizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Scheduler",
      "info": {
        "code": "\"Scheduler\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Scheduler.postTask",
      "info": {
        "code": "\"Scheduler\" in self && \"postTask\" in Scheduler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Scheduler.yield",
      "info": {
        "code": "\"Scheduler\" in self && \"yield\" in Scheduler.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Scheduling",
      "info": {
        "code": "\"Scheduling\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Scheduling.isInputPending",
      "info": {
        "code": "\"Scheduling\" in self && \"isInputPending\" in Scheduling.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Screen",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.availHeight",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"availHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.availLeft",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"availLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.availTop",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"availTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.availWidth",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"availWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.colorDepth",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"colorDepth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.height",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"height\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.isExtended",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"isExtended\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.left",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"left\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.lockOrientation",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"lockOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.mozBrightness",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"mozBrightness\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.mozEnabled",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"mozEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.orientation",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"orientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.pixelDepth",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"pixelDepth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.top",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"top\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.unlockOrientation",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"unlockOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Screen.width",
      "info": {
        "code": "(function () {\n  var instance = window.screen;\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.ScreenDetailed",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.availLeft",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"availLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.availTop",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"availTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.devicePixelRatio",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"devicePixelRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.isInternal",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"isInternal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.isPrimary",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"isPrimary\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.label",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.left",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"left\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetailed.top",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetailed\" in self)) {\n    return { result: false, message: \"ScreenDetailed is not defined\" };\n  }\n  var instance = ScreenDetailed.prototype;\n  return !!instance && \"top\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetails",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetails\" in self)) {\n    return { result: false, message: \"ScreenDetails is not defined\" };\n  }\n  var instance = ScreenDetails.prototype;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetails.currentScreen",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetails\" in self)) {\n    return { result: false, message: \"ScreenDetails is not defined\" };\n  }\n  var instance = ScreenDetails.prototype;\n  return !!instance && \"currentScreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenDetails.screens",
      "info": {
        "code": "(function () {\n  // Chrome Android had exposed the API without support\n  if (!(\"getScreenDetails\" in self)) {\n    return { result: false, message: \"window.getScreenDetails is not defined\" };\n  }\n  // window.getScreenDetails() requires user action, so we'll avoid running it\n  if (!(\"ScreenDetails\" in self)) {\n    return { result: false, message: \"ScreenDetails is not defined\" };\n  }\n  var instance = ScreenDetails.prototype;\n  return !!instance && \"screens\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window.getScreenDetails is not defined"
    },
    {
      "name": "api.ScreenOrientation",
      "info": {
        "code": "\"ScreenOrientation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScreenOrientation.angle",
      "info": {
        "code": "\"ScreenOrientation\" in self && \"angle\" in ScreenOrientation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScreenOrientation.lock",
      "info": {
        "code": "\"ScreenOrientation\" in self && \"lock\" in ScreenOrientation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScreenOrientation.type",
      "info": {
        "code": "\"ScreenOrientation\" in self && \"type\" in ScreenOrientation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScreenOrientation.unlock",
      "info": {
        "code": "\"ScreenOrientation\" in self && \"unlock\" in ScreenOrientation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScriptProcessorNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createScriptProcessor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createScriptProcessor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createScriptProcessor();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ScriptProcessorNode.bufferSize",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createScriptProcessor\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createScriptProcessor is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createScriptProcessor();\n  return !!instance && \"bufferSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.ScrollTimeline",
      "info": {
        "code": "\"ScrollTimeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScrollTimeline.ScrollTimeline",
      "info": {
        "code": "bcd.testConstructor('ScrollTimeline')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ScrollTimeline is not defined"
    },
    {
      "name": "api.ScrollTimeline.axis",
      "info": {
        "code": "\"ScrollTimeline\" in self && \"axis\" in ScrollTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ScrollTimeline.source",
      "info": {
        "code": "\"ScrollTimeline\" in self && \"source\" in ScrollTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SecurityPolicyViolationEvent",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.SecurityPolicyViolationEvent",
      "info": {
        "code": "bcd.testConstructor('SecurityPolicyViolationEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.blockedURI",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"blockedURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.columnNumber",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"columnNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.disposition",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"disposition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.documentURI",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"documentURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.effectiveDirective",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"effectiveDirective\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.lineNumber",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"lineNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.originalPolicy",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"originalPolicy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.referrer",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"referrer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.sample",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"sample\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.sourceFile",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"sourceFile\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.statusCode",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"statusCode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.SecurityPolicyViolationEvent.violatedDirective",
      "info": {
        "code": "(function () {\n  bcd.skipIf(\"Constructing this event causes the page to reload\", \"edge\", \"15\");\n\n  if (!(\"SecurityPolicyViolationEvent\" in self)) {\n    return {\n      result: false,\n      message: \"SecurityPolicyViolationEvent is not defined\"\n    };\n  }\n  var instance = new SecurityPolicyViolationEvent(\"securitypolicyviolation\");\n  return !!instance && \"violatedDirective\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SecurityPolicyViolationEvent is not defined"
    },
    {
      "name": "api.Selection",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.addRange",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"addRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.anchorNode",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"anchorNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.anchorOffset",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"anchorOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.collapse",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"collapse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.collapse.node_parameter_nullable",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  try {\n    if (!(instance && instance.collapse)) {\n      return { result: false, message: \"instance.collapse is not defined\" };\n    }\n    instance.collapse(null);\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.collapse.offset_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  try {\n    if (!(instance && instance.collapse)) {\n      return { result: false, message: \"instance.collapse is not defined\" };\n    }\n    instance.collapse(document.createElement(\"p\"));\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.collapseToEnd",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"collapseToEnd\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.collapseToStart",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"collapseToStart\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.containsNode",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"containsNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.containsNode.partialContainment_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  try {\n    if (!(instance && instance.containsNode)) {\n      return { result: false, message: \"instance.containsNode is not defined\" };\n    }\n    instance.containsNode(document.createElement(\"p\"));\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.deleteFromDocument",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"deleteFromDocument\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.direction",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"direction\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.empty",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"empty\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.extend",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"extend\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.extend.offset_parameter_optional",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  try {\n    if (!(instance && instance.extend)) {\n      return { result: false, message: \"instance.extend is not defined\" };\n    }\n    instance.extend(document.createElement(\"p\"));\n    return true;\n  } catch (e) {\n    if (\n      e instanceof TypeError ||\n      stringIncludes(e.message, [\"WRONG_ARGUMENTS_ERR\", \"Not enough arguments\"])\n    ) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.focusNode",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"focusNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.focusOffset",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"focusOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.getComposedRanges",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"getComposedRanges\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.getRangeAt",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"getRangeAt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.isCollapsed",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"isCollapsed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.modify",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"modify\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.rangeCount",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"rangeCount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.removeAllRanges",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"removeAllRanges\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.removeRange",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"removeRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.selectAllChildren",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"selectAllChildren\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.setBaseAndExtent",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"setBaseAndExtent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.setPosition",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"setPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Selection.toString",
      "info": {
        "code": "\"Selection\" in self && \"toString\" in Selection.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Selection.type",
      "info": {
        "code": "(function () {\n  var instance = window.getSelection();\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Sensor",
      "info": {
        "code": "\"Sensor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sensor.activated",
      "info": {
        "code": "\"Sensor\" in self && \"activated\" in Sensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sensor.hasReading",
      "info": {
        "code": "\"Sensor\" in self && \"hasReading\" in Sensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sensor.start",
      "info": {
        "code": "\"Sensor\" in self && \"start\" in Sensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sensor.stop",
      "info": {
        "code": "\"Sensor\" in self && \"stop\" in Sensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Sensor.timestamp",
      "info": {
        "code": "\"Sensor\" in self && \"timestamp\" in Sensor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SensorErrorEvent",
      "info": {
        "code": "\"SensorErrorEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SensorErrorEvent.SensorErrorEvent",
      "info": {
        "code": "bcd.testConstructor('SensorErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SensorErrorEvent is not defined"
    },
    {
      "name": "api.SensorErrorEvent.error",
      "info": {
        "code": "\"SensorErrorEvent\" in self && \"error\" in SensorErrorEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SequenceEffect",
      "info": {
        "code": "\"SequenceEffect\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SequenceEffect.SequenceEffect",
      "info": {
        "code": "bcd.testConstructor('SequenceEffect')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SequenceEffect is not defined"
    },
    {
      "name": "api.SequenceEffect.clone",
      "info": {
        "code": "\"SequenceEffect\" in self && \"clone\" in SequenceEffect.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Serial",
      "info": {
        "code": "\"Serial\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Serial.getPorts",
      "info": {
        "code": "\"Serial\" in self && \"getPorts\" in Serial.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Serial.requestPort",
      "info": {
        "code": "\"Serial\" in self && \"requestPort\" in Serial.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort",
      "info": {
        "code": "\"SerialPort\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.close",
      "info": {
        "code": "\"SerialPort\" in self && \"close\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.connected",
      "info": {
        "code": "\"SerialPort\" in self && \"connected\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.forget",
      "info": {
        "code": "\"SerialPort\" in self && \"forget\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.getInfo",
      "info": {
        "code": "\"SerialPort\" in self && \"getInfo\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.getSignals",
      "info": {
        "code": "\"SerialPort\" in self && \"getSignals\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.open",
      "info": {
        "code": "\"SerialPort\" in self && \"open\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.readable",
      "info": {
        "code": "\"SerialPort\" in self && \"readable\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.setSignals",
      "info": {
        "code": "\"SerialPort\" in self && \"setSignals\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SerialPort.writable",
      "info": {
        "code": "\"SerialPort\" in self && \"writable\" in SerialPort.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorker",
      "info": {
        "code": "\"ServiceWorker\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorker.postMessage",
      "info": {
        "code": "\"ServiceWorker\" in self && \"postMessage\" in ServiceWorker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorker.scriptURL",
      "info": {
        "code": "\"ServiceWorker\" in self && \"scriptURL\" in ServiceWorker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorker.state",
      "info": {
        "code": "\"ServiceWorker\" in self && \"state\" in ServiceWorker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerContainer",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.controller",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"controller\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.getRegistration",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"getRegistration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.getRegistrations",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"getRegistrations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.ready",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"ready\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.register",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"register\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerContainer.startMessages",
      "info": {
        "code": "(function () {\n  var instance = navigator.serviceWorker;\n  return !!instance && \"startMessages\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.ServiceWorkerRegistration",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.active",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"active\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.backgroundFetch",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"backgroundFetch\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.cookies",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"cookies\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.getNotifications",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"getNotifications\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.index",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"index\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.installing",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"installing\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.navigationPreload",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"navigationPreload\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.paymentManager",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"paymentManager\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.periodicSync",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"periodicSync\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.pushManager",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"pushManager\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.scope",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"scope\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.showNotification",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"showNotification\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.sync",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"sync\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.unregister",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"unregister\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.update",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"update\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.updateViaCache",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"updateViaCache\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ServiceWorkerRegistration.waiting",
      "info": {
        "code": "\"ServiceWorkerRegistration\" in self && \"waiting\" in ServiceWorkerRegistration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ShadowAnimation",
      "info": {
        "code": "\"ShadowAnimation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ShadowAnimation.ShadowAnimation",
      "info": {
        "code": "bcd.testConstructor('ShadowAnimation')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ShadowAnimation is not defined"
    },
    {
      "name": "api.ShadowAnimation.sourceAnimation",
      "info": {
        "code": "\"ShadowAnimation\" in self && \"sourceAnimation\" in ShadowAnimation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ShadowRoot",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.activeElement",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"activeElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.adoptedStyleSheets",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"adoptedStyleSheets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.clonable",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"clonable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.customElementRegistry",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"customElementRegistry\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.delegatesFocus",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"delegatesFocus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.elementFromPoint",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"elementFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.elementsFromPoint",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"elementsFromPoint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.fullscreenElement",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"fullscreenElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.getAnimations",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"getAnimations\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.getHTML",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"getHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.getSelection",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"getSelection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.host",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.innerHTML",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"innerHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.mode",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"mode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.pictureInPictureElement",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"pictureInPictureElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.pointerLockElement",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"pointerLockElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.serializable",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"serializable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.setHTMLUnsafe",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"setHTMLUnsafe\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.slotAssignment",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"slotAssignment\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ShadowRoot.styleSheets",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"div\");\n  if (!el.attachShadow) {\n    return { result: false, message: \"Element.attachShadow is not defined\" };\n  }\n  el.attachShadow({ mode: \"open\" });\n  var instance = el.shadowRoot;\n  return !!instance && \"styleSheets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SharedStorage",
      "info": {
        "code": "\"SharedStorage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.@@asyncIterator",
      "info": {
        "code": "\"Symbol\" in self && \"asyncIterator\" in Symbol && \"SharedStorage\" in self && !!(SharedStorage.prototype[Symbol.asyncIterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.append",
      "info": {
        "code": "\"SharedStorage\" in self && \"append\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.batchUpdate",
      "info": {
        "code": "\"SharedStorage\" in self && \"batchUpdate\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.clear",
      "info": {
        "code": "\"SharedStorage\" in self && \"clear\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.createWorklet",
      "info": {
        "code": "\"SharedStorage\" in self && \"createWorklet\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.delete",
      "info": {
        "code": "\"SharedStorage\" in self && \"delete\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.entries",
      "info": {
        "code": "\"SharedStorage\" in self && \"entries\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.get",
      "info": {
        "code": "\"SharedStorage\" in self && \"get\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.keys",
      "info": {
        "code": "\"SharedStorage\" in self && \"keys\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.length",
      "info": {
        "code": "\"SharedStorage\" in self && \"length\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.remainingBudget",
      "info": {
        "code": "\"SharedStorage\" in self && \"remainingBudget\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.run",
      "info": {
        "code": "\"SharedStorage\" in self && \"run\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.selectURL",
      "info": {
        "code": "\"SharedStorage\" in self && \"selectURL\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.set",
      "info": {
        "code": "\"SharedStorage\" in self && \"set\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.values",
      "info": {
        "code": "\"SharedStorage\" in self && \"values\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorage.worklet",
      "info": {
        "code": "\"SharedStorage\" in self && \"worklet\" in SharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageAppendMethod",
      "info": {
        "code": "\"SharedStorageAppendMethod\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageAppendMethod.SharedStorageAppendMethod",
      "info": {
        "code": "bcd.testConstructor('SharedStorageAppendMethod')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SharedStorageAppendMethod is not defined"
    },
    {
      "name": "api.SharedStorageClearMethod",
      "info": {
        "code": "\"SharedStorageClearMethod\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageClearMethod.SharedStorageClearMethod",
      "info": {
        "code": "bcd.testConstructor('SharedStorageClearMethod')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SharedStorageClearMethod is not defined"
    },
    {
      "name": "api.SharedStorageDeleteMethod",
      "info": {
        "code": "\"SharedStorageDeleteMethod\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageDeleteMethod.SharedStorageDeleteMethod",
      "info": {
        "code": "bcd.testConstructor('SharedStorageDeleteMethod')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SharedStorageDeleteMethod is not defined"
    },
    {
      "name": "api.SharedStorageModifierMethod",
      "info": {
        "code": "\"SharedStorageModifierMethod\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageOperation",
      "info": {
        "code": "\"SharedStorageOperation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageRunOperation",
      "info": {
        "code": "\"SharedStorageRunOperation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageRunOperation.run",
      "info": {
        "code": "\"SharedStorageRunOperation\" in self && \"run\" in SharedStorageRunOperation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageSelectURLOperation",
      "info": {
        "code": "\"SharedStorageSelectURLOperation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageSelectURLOperation.run",
      "info": {
        "code": "\"SharedStorageSelectURLOperation\" in self && \"run\" in SharedStorageSelectURLOperation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageSetMethod",
      "info": {
        "code": "\"SharedStorageSetMethod\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageSetMethod.SharedStorageSetMethod",
      "info": {
        "code": "bcd.testConstructor('SharedStorageSetMethod')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SharedStorageSetMethod is not defined"
    },
    {
      "name": "api.SharedStorageWorklet",
      "info": {
        "code": "\"SharedStorageWorklet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageWorklet.run",
      "info": {
        "code": "\"SharedStorageWorklet\" in self && \"run\" in SharedStorageWorklet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedStorageWorklet.selectURL",
      "info": {
        "code": "\"SharedStorageWorklet\" in self && \"selectURL\" in SharedStorageWorklet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedWorker",
      "info": {
        "code": "\"SharedWorker\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SharedWorker.SharedWorker",
      "info": {
        "code": "bcd.testConstructor('SharedWorker')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SharedWorker is not defined"
    },
    {
      "name": "api.SharedWorker.port",
      "info": {
        "code": "\"SharedWorker\" in self && \"port\" in SharedWorker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SnapEvent",
      "info": {
        "code": "\"SnapEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SnapEvent.SnapEvent",
      "info": {
        "code": "bcd.testConstructor('SnapEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SnapEvent is not defined"
    },
    {
      "name": "api.SnapEvent.snapTargetBlock",
      "info": {
        "code": "\"SnapEvent\" in self && \"snapTargetBlock\" in SnapEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SnapEvent.snapTargetInline",
      "info": {
        "code": "\"SnapEvent\" in self && \"snapTargetInline\" in SnapEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer",
      "info": {
        "code": "\"SourceBuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.abort",
      "info": {
        "code": "\"SourceBuffer\" in self && \"abort\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.appendBuffer",
      "info": {
        "code": "\"SourceBuffer\" in self && \"appendBuffer\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.appendBufferAsync",
      "info": {
        "code": "\"SourceBuffer\" in self && \"appendBufferAsync\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.appendWindowEnd",
      "info": {
        "code": "\"SourceBuffer\" in self && \"appendWindowEnd\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.appendWindowStart",
      "info": {
        "code": "\"SourceBuffer\" in self && \"appendWindowStart\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.audioTracks",
      "info": {
        "code": "\"SourceBuffer\" in self && \"audioTracks\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.buffered",
      "info": {
        "code": "\"SourceBuffer\" in self && \"buffered\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.changeType",
      "info": {
        "code": "\"SourceBuffer\" in self && \"changeType\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.mode",
      "info": {
        "code": "\"SourceBuffer\" in self && \"mode\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.remove",
      "info": {
        "code": "\"SourceBuffer\" in self && \"remove\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.removeAsync",
      "info": {
        "code": "\"SourceBuffer\" in self && \"removeAsync\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.textTracks",
      "info": {
        "code": "\"SourceBuffer\" in self && \"textTracks\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.timestampOffset",
      "info": {
        "code": "\"SourceBuffer\" in self && \"timestampOffset\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.updating",
      "info": {
        "code": "\"SourceBuffer\" in self && \"updating\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBuffer.videoTracks",
      "info": {
        "code": "\"SourceBuffer\" in self && \"videoTracks\" in SourceBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBufferList",
      "info": {
        "code": "\"SourceBufferList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SourceBufferList.length",
      "info": {
        "code": "\"SourceBufferList\" in self && \"length\" in SourceBufferList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechGrammar",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var sglist = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  if (!sglist) {\n    return { result: false, message: \"sglist is falsy\" };\n  }\n  var instance = sglist[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammar.src",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var sglist = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  if (!sglist) {\n    return { result: false, message: \"sglist is falsy\" };\n  }\n  var instance = sglist[0];\n  return !!instance && \"src\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammar.weight",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var sglist = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  if (!sglist) {\n    return { result: false, message: \"sglist is falsy\" };\n  }\n  var instance = sglist[0];\n  return !!instance && \"weight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var instance = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList.SpeechGrammarList",
      "info": {
        "code": "bcd.testConstructor('SpeechGrammarList')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList.addFromString",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var instance = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  return !!instance && \"addFromString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList.addFromURI",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var instance = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  return !!instance && \"addFromURI\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList.item",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var instance = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechGrammarList.length",
      "info": {
        "code": "(function () {\n  if (!(\"SpeechGrammarList\" in self || \"webkitSpeechGrammarList\" in self)) {\n    return { result: false, message: \"SpeechGrammarList is not defined\" };\n  }\n  var grammar =\n    \"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;\";\n  var instance = new (SpeechGrammarList || webkitSpeechGrammarList)();\n  speechRecognitionList.addFromString(grammar, 1);\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SpeechGrammarList is not defined"
    },
    {
      "name": "api.SpeechRecognition",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return \"SpeechRecognition\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.SpeechRecognition",
      "info": {
        "code": "bcd.testConstructor('SpeechRecognition')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechRecognition is not defined"
    },
    {
      "name": "api.SpeechRecognition.abort",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"abort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.available_static",
      "info": {
        "code": "\"SpeechRecognition\" in self && \"available\" in SpeechRecognition",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.continuous",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"continuous\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.grammars",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"grammars\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.install_static",
      "info": {
        "code": "\"SpeechRecognition\" in self && \"install\" in SpeechRecognition",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.interimResults",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"interimResults\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.lang",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"lang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.maxAlternatives",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"maxAlternatives\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.phrases",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"phrases\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.processLocally",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"processLocally\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.start",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognition.stop",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.speechRecognition;\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognitionAlternative",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    Alternative: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "returned [object Object]"
    },
    {
      "name": "api.SpeechRecognitionAlternative.confidence",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    Alternative: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance && \"confidence\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "returned [object Object]"
    },
    {
      "name": "api.SpeechRecognitionAlternative.transcript",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    Alternative: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance && \"transcript\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "returned [object Object]"
    },
    {
      "name": "api.SpeechRecognitionErrorEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new SpeechRecognitionErrorEvent(\"error\", { error: \"aborted\" });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot create event"
    },
    {
      "name": "api.SpeechRecognitionErrorEvent.SpeechRecognitionErrorEvent",
      "info": {
        "code": "bcd.testConstructor('SpeechRecognitionErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechRecognitionErrorEvent is not defined"
    },
    {
      "name": "api.SpeechRecognitionErrorEvent.error",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new SpeechRecognitionErrorEvent(\"error\", { error: \"aborted\" });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot create event"
    },
    {
      "name": "api.SpeechRecognitionErrorEvent.message",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new SpeechRecognitionErrorEvent(\"error\", { error: \"aborted\" });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot create event"
    },
    {
      "name": "api.SpeechRecognitionEvent",
      "info": {
        "code": "(function () {\n  // XXX need to create a SpeechRecognitionResultList and pass it to the results argument\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionEvent is not yet implemented\"\n  };\n\n  var instance;\n  try {\n    instance = new SpeechRecognitionEvent(\"result\", { results: null });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionEvent is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionEvent.SpeechRecognitionEvent",
      "info": {
        "code": "bcd.testConstructor('SpeechRecognitionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechRecognitionEvent is not defined"
    },
    {
      "name": "api.SpeechRecognitionEvent.emma",
      "info": {
        "code": "(function () {\n  // XXX need to create a SpeechRecognitionResultList and pass it to the results argument\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionEvent is not yet implemented\"\n  };\n\n  var instance;\n  try {\n    instance = new SpeechRecognitionEvent(\"result\", { results: null });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"emma\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionEvent is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionEvent.interpretation",
      "info": {
        "code": "(function () {\n  // XXX need to create a SpeechRecognitionResultList and pass it to the results argument\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionEvent is not yet implemented\"\n  };\n\n  var instance;\n  try {\n    instance = new SpeechRecognitionEvent(\"result\", { results: null });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"interpretation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionEvent is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionEvent.resultIndex",
      "info": {
        "code": "(function () {\n  // XXX need to create a SpeechRecognitionResultList and pass it to the results argument\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionEvent is not yet implemented\"\n  };\n\n  var instance;\n  try {\n    instance = new SpeechRecognitionEvent(\"result\", { results: null });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"resultIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionEvent is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionEvent.results",
      "info": {
        "code": "(function () {\n  // XXX need to create a SpeechRecognitionResultList and pass it to the results argument\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionEvent is not yet implemented\"\n  };\n\n  var instance;\n  try {\n    instance = new SpeechRecognitionEvent(\"result\", { results: null });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"results\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionEvent is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionPhrase",
      "info": {
        "code": "\"SpeechRecognitionPhrase\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognitionPhrase.SpeechRecognitionPhrase",
      "info": {
        "code": "bcd.testConstructor('SpeechRecognitionPhrase')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechRecognitionPhrase is not defined"
    },
    {
      "name": "api.SpeechRecognitionPhrase.boost",
      "info": {
        "code": "\"SpeechRecognitionPhrase\" in self && \"boost\" in SpeechRecognitionPhrase.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognitionPhrase.phrase",
      "info": {
        "code": "\"SpeechRecognitionPhrase\" in self && \"phrase\" in SpeechRecognitionPhrase.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SpeechRecognitionResult",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResult is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResult.isFinal",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance && \"isFinal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResult is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResult.item",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResult is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResult.length",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResult is not yet implemented\"\n  };\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResult is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResultList",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResultList is not yet implemented\"\n  };\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResultList is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResultList.item",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResultList is not yet implemented\"\n  };\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResultList is not yet implemented"
    },
    {
      "name": "api.SpeechRecognitionResultList.length",
      "info": {
        "code": "(function () {\n  // XXX no idea how to synthetically generate this interface\n  return {\n    result: null,\n    message: \"Testing for SpeechRecognitionResultList is not yet implemented\"\n  };\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing for SpeechRecognitionResultList is not yet implemented"
    },
    {
      "name": "api.SpeechSynthesis",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.cancel",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"cancel\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.getVoices",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"getVoices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.pause",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"pause\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.paused",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"paused\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.pending",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"pending\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.resume",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"resume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.speak",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"speak\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesis.speaking",
      "info": {
        "code": "(function () {\n  var instance = window.speechSynthesis;\n  return !!instance && \"speaking\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisErrorEvent",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisErrorEvent(\"error\", {\n      utterance: utterance,\n      error: \"canceled\"\n    });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisErrorEvent.SpeechSynthesisErrorEvent",
      "info": {
        "code": "bcd.testConstructor('SpeechSynthesisErrorEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechSynthesisErrorEvent is not defined"
    },
    {
      "name": "api.SpeechSynthesisErrorEvent.error",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisErrorEvent(\"error\", {\n      utterance: utterance,\n      error: \"canceled\"\n    });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.SpeechSynthesisEvent",
      "info": {
        "code": "bcd.testConstructor('SpeechSynthesisEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechSynthesisEvent is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.charIndex",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"charIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.charLength",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"charLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.elapsedTime",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"elapsedTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.name",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisEvent.utterance",
      "info": {
        "code": "(function () {\n  var utterance = new SpeechSynthesisUtterance(\"Hello world!\");\n  if (!utterance) {\n    return { result: false, message: \"utterance is falsy\" };\n  }\n  var instance;\n  try {\n    instance = new SpeechSynthesisEvent(\"start\", { utterance: utterance });\n  } catch (e) {\n    return { result: false, message: \"Cannot create event\" };\n  }\n  return !!instance && \"utterance\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.SpeechSynthesisUtterance",
      "info": {
        "code": "bcd.testConstructor('SpeechSynthesisUtterance')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.lang",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"lang\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.pitch",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"pitch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.rate",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"rate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.text",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.voice",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"voice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisUtterance.volume",
      "info": {
        "code": "(function () {\n  var instance = new SpeechSynthesisUtterance(\"Hello world!\");\n  return !!instance && \"volume\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: SpeechSynthesisUtterance is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice.default",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance && \"default\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice.lang",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance && \"lang\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice.localService",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance && \"localService\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice.name",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance && \"name\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.SpeechSynthesisVoice.voiceURI",
      "info": {
        "code": "(function () {\n  var synth = window.speechSynthesis;\n  if (!synth) {\n    return { result: false, message: \"synth is falsy\" };\n  }\n  // Firefox has a bug where speech synthesis voices aren't loaded on the first call\n  synth.getVoices();\n  // Browsers have a bug where speech synthesis voices aren't loaded immediately\n  setTimeout(function () {\n    callback(synth.getVoices()[0]);\n  }, 2000);\n  function callback(instance) {\n    try {\n      success(!!instance && \"voiceURI\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.StaticRange",
      "info": {
        "code": "\"StaticRange\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StaticRange.StaticRange",
      "info": {
        "code": "bcd.testConstructor('StaticRange')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: StaticRange is not defined"
    },
    {
      "name": "api.StaticRange.collapsed",
      "info": {
        "code": "\"StaticRange\" in self && \"collapsed\" in StaticRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StaticRange.endContainer",
      "info": {
        "code": "\"StaticRange\" in self && \"endContainer\" in StaticRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StaticRange.endOffset",
      "info": {
        "code": "\"StaticRange\" in self && \"endOffset\" in StaticRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StaticRange.startContainer",
      "info": {
        "code": "\"StaticRange\" in self && \"startContainer\" in StaticRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StaticRange.startOffset",
      "info": {
        "code": "\"StaticRange\" in self && \"startOffset\" in StaticRange.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StereoPannerNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createStereoPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createStereoPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createStereoPanner();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.StereoPannerNode.StereoPannerNode",
      "info": {
        "code": "bcd.testConstructor('StereoPannerNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: StereoPannerNode is not defined"
    },
    {
      "name": "api.StereoPannerNode.pan",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createStereoPanner\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createStereoPanner is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createStereoPanner();\n  return !!instance && \"pan\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.Storage",
      "info": {
        "code": "\"Storage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.clear",
      "info": {
        "code": "\"Storage\" in self && \"clear\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.getItem",
      "info": {
        "code": "\"Storage\" in self && \"getItem\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.key",
      "info": {
        "code": "\"Storage\" in self && \"key\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.length",
      "info": {
        "code": "\"Storage\" in self && \"length\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.removeItem",
      "info": {
        "code": "\"Storage\" in self && \"removeItem\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Storage.setItem",
      "info": {
        "code": "\"Storage\" in self && \"setItem\" in Storage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle",
      "info": {
        "code": "\"StorageAccessHandle\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.BroadcastChannel",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"BroadcastChannel\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.SharedWorker",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"SharedWorker\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.caches",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"caches\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.createObjectURL",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"createObjectURL\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.estimate",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"estimate\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.getDirectory",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"getDirectory\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.indexedDB",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"indexedDB\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.localStorage",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"localStorage\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.locks",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"locks\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.revokeObjectURL",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"revokeObjectURL\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageAccessHandle.sessionStorage",
      "info": {
        "code": "\"StorageAccessHandle\" in self && \"sessionStorage\" in StorageAccessHandle.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket",
      "info": {
        "code": "\"StorageBucket\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.caches",
      "info": {
        "code": "\"StorageBucket\" in self && \"caches\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.estimate",
      "info": {
        "code": "\"StorageBucket\" in self && \"estimate\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.expires",
      "info": {
        "code": "\"StorageBucket\" in self && \"expires\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.getDirectory",
      "info": {
        "code": "\"StorageBucket\" in self && \"getDirectory\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.indexedDB",
      "info": {
        "code": "\"StorageBucket\" in self && \"indexedDB\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.name",
      "info": {
        "code": "\"StorageBucket\" in self && \"name\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.persist",
      "info": {
        "code": "\"StorageBucket\" in self && \"persist\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.persisted",
      "info": {
        "code": "\"StorageBucket\" in self && \"persisted\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucket.setExpires",
      "info": {
        "code": "\"StorageBucket\" in self && \"setExpires\" in StorageBucket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucketManager",
      "info": {
        "code": "\"StorageBucketManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucketManager.delete",
      "info": {
        "code": "\"StorageBucketManager\" in self && \"delete\" in StorageBucketManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucketManager.keys",
      "info": {
        "code": "\"StorageBucketManager\" in self && \"keys\" in StorageBucketManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageBucketManager.open",
      "info": {
        "code": "\"StorageBucketManager\" in self && \"open\" in StorageBucketManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.StorageEvent",
      "info": {
        "code": "bcd.testConstructor('StorageEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: StorageEvent is not defined"
    },
    {
      "name": "api.StorageEvent.initStorageEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initStorageEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.key",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"key\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.newValue",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"newValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.oldValue",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"oldValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.storageArea",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"storageArea\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageEvent.url",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new StorageEvent(\"storage\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"StorageEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"url\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StorageManager",
      "info": {
        "code": "\"StorageManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageManager.estimate",
      "info": {
        "code": "\"StorageManager\" in self && \"estimate\" in StorageManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageManager.estimate.usageDetails",
      "info": {
        "code": "(function () {\n  if (!(\"storage\" in navigator)) {\n    return { result: false, message: \"navigator.storage is not defined\" };\n  }\n  if (!(\"estimate\" in navigator.storage)) {\n    return {\n      result: false,\n      message: \"navigator.storage.estimate is not defined\"\n    };\n  }\n  return navigator.storage.estimate().then(function (estimate) {\n    return !!estimate.usageDetails;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.StorageManager.getDirectory",
      "info": {
        "code": "\"StorageManager\" in self && \"getDirectory\" in StorageManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageManager.persist",
      "info": {
        "code": "\"StorageManager\" in self && \"persist\" in StorageManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageManager.persisted",
      "info": {
        "code": "\"StorageManager\" in self && \"persisted\" in StorageManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageQuota",
      "info": {
        "code": "\"StorageQuota\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageQuota.queryUsageAndQuota",
      "info": {
        "code": "\"StorageQuota\" in self && \"queryUsageAndQuota\" in StorageQuota.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StorageQuota.requestQuota",
      "info": {
        "code": "\"StorageQuota\" in self && \"requestQuota\" in StorageQuota.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StyleMedia",
      "info": {
        "code": "(function () {\n  var instance = window.styleMedia;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.StyleMedia.matchMedium",
      "info": {
        "code": "(function () {\n  var instance = window.styleMedia;\n  return !!instance && \"matchMedium\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.StyleMedia.type",
      "info": {
        "code": "(function () {\n  var instance = window.styleMedia;\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.StylePropertyMap",
      "info": {
        "code": "\"StylePropertyMap\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMap.append",
      "info": {
        "code": "\"StylePropertyMap\" in self && \"append\" in StylePropertyMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMap.clear",
      "info": {
        "code": "\"StylePropertyMap\" in self && \"clear\" in StylePropertyMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMap.delete",
      "info": {
        "code": "\"StylePropertyMap\" in self && \"delete\" in StylePropertyMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMap.set",
      "info": {
        "code": "\"StylePropertyMap\" in self && \"set\" in StylePropertyMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"StylePropertyMapReadOnly\" in self && !!(StylePropertyMapReadOnly.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.entries",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"entries\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.forEach",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"forEach\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.get",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"get\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.getAll",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"getAll\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.has",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"has\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.keys",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"keys\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.size",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"size\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StylePropertyMapReadOnly.values",
      "info": {
        "code": "\"StylePropertyMapReadOnly\" in self && \"values\" in StylePropertyMapReadOnly.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.StyleSheet",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.disabled",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"disabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.href",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.media",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"media\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.ownerNode",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"ownerNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.parentStyleSheet",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"parentStyleSheet\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.title",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"title\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheet.type",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.createStyleSheet(\"p {color: red;}\");\n  return !!instance && \"type\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheetList",
      "info": {
        "code": "(function () {\n  var instance = document.styleSheets;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheetList.item",
      "info": {
        "code": "(function () {\n  var instance = document.styleSheets;\n  return !!instance && \"item\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.StyleSheetList.length",
      "info": {
        "code": "(function () {\n  var instance = document.styleSheets;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.SubmitEvent",
      "info": {
        "code": "\"SubmitEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubmitEvent.SubmitEvent",
      "info": {
        "code": "bcd.testConstructor('SubmitEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: SubmitEvent is not defined"
    },
    {
      "name": "api.SubmitEvent.submitter",
      "info": {
        "code": "\"SubmitEvent\" in self && \"submitter\" in SubmitEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber",
      "info": {
        "code": "\"Subscriber\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.active",
      "info": {
        "code": "\"Subscriber\" in self && \"active\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.addTeardown",
      "info": {
        "code": "\"Subscriber\" in self && \"addTeardown\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.complete",
      "info": {
        "code": "\"Subscriber\" in self && \"complete\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.error",
      "info": {
        "code": "\"Subscriber\" in self && \"error\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.next",
      "info": {
        "code": "\"Subscriber\" in self && \"next\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Subscriber.signal",
      "info": {
        "code": "\"Subscriber\" in self && \"signal\" in Subscriber.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.decapsulateBits",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"decapsulateBits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.decapsulateKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"decapsulateKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.decrypt",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"decrypt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.deriveBits",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"deriveBits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.deriveKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"deriveKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_aes",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return instance\n    .generateKey(\n      {\n        name: \"ECDH\",\n        namedCurve: \"P-384\"\n      },\n      true,\n      [\"deriveKey\"]\n    )\n    .then(function (keys) {\n      return instance.deriveKey(\n        {\n          name: \"ECDH\",\n          public: keys.publicKey\n        },\n        keys.privateKey,\n        {\n          name: \"AES-GCM\",\n          length: 256\n        },\n        true,\n        [\"encrypt\", \"decrypt\"]\n      );\n    })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_hkdf",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return instance\n    .generateKey(\n      {\n        name: \"ECDH\",\n        namedCurve: \"P-384\"\n      },\n      true,\n      [\"deriveKey\"]\n    )\n    .then(function (keys) {\n      return instance.deriveKey(\n        {\n          name: \"ECDH\",\n          public: keys.publicKey\n        },\n        keys.privateKey,\n        {\n          name: \"HKDF\",\n          hash: \"SHA-256\",\n          salt: new Uint8Array(),\n          info: new Uint8Array()\n        },\n        false,\n        [\"deriveKey\"]\n      );\n    })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.digest",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"digest\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.encapsulateBits",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"encapsulateBits\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.encapsulateKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"encapsulateKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.encrypt",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"encrypt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.exportKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"exportKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.generateKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"generateKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.getPublicKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"getPublicKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.importKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"importKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.sign",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"sign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.supports_static",
      "info": {
        "code": "\"SubtleCrypto\" in self && \"supports\" in SubtleCrypto",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.unwrapKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"unwrapKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.verify",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"verify\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.wrapKey",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return !!instance && \"wrapKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Summarizer",
      "info": {
        "code": "\"Summarizer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.availability_static",
      "info": {
        "code": "\"Summarizer\" in self && \"availability\" in Summarizer",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.create_static",
      "info": {
        "code": "\"Summarizer\" in self && \"create\" in Summarizer",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.destroy",
      "info": {
        "code": "\"Summarizer\" in self && \"destroy\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.expectedContextLanguages",
      "info": {
        "code": "\"Summarizer\" in self && \"expectedContextLanguages\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.expectedInputLanguages",
      "info": {
        "code": "\"Summarizer\" in self && \"expectedInputLanguages\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.format",
      "info": {
        "code": "\"Summarizer\" in self && \"format\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.inputQuota",
      "info": {
        "code": "\"Summarizer\" in self && \"inputQuota\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.length",
      "info": {
        "code": "\"Summarizer\" in self && \"length\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_hmac",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return instance\n    .generateKey(\n      {\n        name: \"ECDH\",\n        namedCurve: \"P-384\"\n      },\n      true,\n      [\"deriveKey\"]\n    )\n    .then(function (keys) {\n      return instance.deriveKey(\n        {\n          name: \"ECDH\",\n          public: keys.publicKey\n        },\n        keys.privateKey,\n        {\n          name: \"HMAC\",\n          hash: \"SHA-512\",\n          length: 256\n        },\n        true,\n        [\"sign\", \"verify\"]\n      );\n    })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_pbkdf2",
      "info": {
        "code": "(function () {\n  if (!(\"crypto\" in self)) {\n    return { result: false, message: \"crypto is not defined\" };\n  }\n  var instance = crypto.subtle || crypto.webkitSubtle;\n  return instance\n    .generateKey(\n      {\n        name: \"ECDH\",\n        namedCurve: \"P-384\"\n      },\n      true,\n      [\"deriveKey\"]\n    )\n    .then(function (keys) {\n      return instance.deriveKey(\n        {\n          name: \"ECDH\",\n          public: keys.publicKey\n        },\n        keys.privateKey,\n        {\n          name: \"PBKDF2\",\n          salt: \"foobar\",\n          iterations: 100000,\n          hash: \"SHA-256\"\n        },\n        false,\n        [\"deriveBits\", \"deriveKey\"]\n      );\n    })\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Summarizer.measureInputUsage",
      "info": {
        "code": "\"Summarizer\" in self && \"measureInputUsage\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.outputLanguage",
      "info": {
        "code": "\"Summarizer\" in self && \"outputLanguage\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.sharedContext",
      "info": {
        "code": "\"Summarizer\" in self && \"sharedContext\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.summarize",
      "info": {
        "code": "\"Summarizer\" in self && \"summarize\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.summarizeStreaming",
      "info": {
        "code": "\"Summarizer\" in self && \"summarizeStreaming\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Summarizer.type",
      "info": {
        "code": "\"Summarizer\" in self && \"type\" in Summarizer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SyncManager",
      "info": {
        "code": "\"SyncManager\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SyncManager.getTags",
      "info": {
        "code": "\"SyncManager\" in self && \"getTags\" in SyncManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.SyncManager.register",
      "info": {
        "code": "\"SyncManager\" in self && \"register\" in SyncManager.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming",
      "info": {
        "code": "\"TaskAttributionTiming\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming.containerId",
      "info": {
        "code": "\"TaskAttributionTiming\" in self && \"containerId\" in TaskAttributionTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming.containerName",
      "info": {
        "code": "\"TaskAttributionTiming\" in self && \"containerName\" in TaskAttributionTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming.containerSrc",
      "info": {
        "code": "\"TaskAttributionTiming\" in self && \"containerSrc\" in TaskAttributionTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming.containerType",
      "info": {
        "code": "\"TaskAttributionTiming\" in self && \"containerType\" in TaskAttributionTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskAttributionTiming.toJSON",
      "info": {
        "code": "\"TaskAttributionTiming\" in self && \"toJSON\" in TaskAttributionTiming.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskController",
      "info": {
        "code": "\"TaskController\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskController.TaskController",
      "info": {
        "code": "bcd.testConstructor('TaskController')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TaskController is not defined"
    },
    {
      "name": "api.TaskController.setPriority",
      "info": {
        "code": "\"TaskController\" in self && \"setPriority\" in TaskController.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskPriorityChangeEvent",
      "info": {
        "code": "\"TaskPriorityChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskPriorityChangeEvent.TaskPriorityChangeEvent",
      "info": {
        "code": "bcd.testConstructor('TaskPriorityChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TaskPriorityChangeEvent is not defined"
    },
    {
      "name": "api.TaskPriorityChangeEvent.previousPriority",
      "info": {
        "code": "\"TaskPriorityChangeEvent\" in self && \"previousPriority\" in TaskPriorityChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskSignal",
      "info": {
        "code": "\"TaskSignal\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskSignal.any_static",
      "info": {
        "code": "\"TaskSignal\" in self && \"any\" in TaskSignal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TaskSignal.priority",
      "info": {
        "code": "\"TaskSignal\" in self && \"priority\" in TaskSignal.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TestUtils",
      "info": {
        "code": "\"TestUtils\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TestUtils.gc_static",
      "info": {
        "code": "\"TestUtils\" in self && \"gc\" in TestUtils",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Text",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.Text",
      "info": {
        "code": "bcd.testConstructor('Text')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Text is not defined"
    },
    {
      "name": "api.Text.assignedSlot",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"assignedSlot\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.convertPointFromNode",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"convertPointFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.convertQuadFromNode",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"convertQuadFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.convertRectFromNode",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"convertRectFromNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.getBoxQuads",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"getBoxQuads\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.splitText",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"splitText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Text.wholeText",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"b\");\n  el.innerHTML = \"text\";\n  var instance = el.childNodes[0];\n  return !!instance && \"wholeText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextDecoder",
      "info": {
        "code": "(function () {\n  if (!(\"TextDecoder\" in self)) {\n    return { result: false, message: \"TextDecoder is not defined\" };\n  }\n  var instance = new TextDecoder();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoder.TextDecoder",
      "info": {
        "code": "bcd.testConstructor('TextDecoder')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.TextDecoder.decode",
      "info": {
        "code": "(function () {\n  if (!(\"TextDecoder\" in self)) {\n    return { result: false, message: \"TextDecoder is not defined\" };\n  }\n  var instance = new TextDecoder();\n  return !!instance && \"decode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoder.encoding",
      "info": {
        "code": "(function () {\n  if (!(\"TextDecoder\" in self)) {\n    return { result: false, message: \"TextDecoder is not defined\" };\n  }\n  var instance = new TextDecoder();\n  return !!instance && \"encoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoder.fatal",
      "info": {
        "code": "(function () {\n  if (!(\"TextDecoder\" in self)) {\n    return { result: false, message: \"TextDecoder is not defined\" };\n  }\n  var instance = new TextDecoder();\n  return !!instance && \"fatal\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoder.ignoreBOM",
      "info": {
        "code": "(function () {\n  if (!(\"TextDecoder\" in self)) {\n    return { result: false, message: \"TextDecoder is not defined\" };\n  }\n  var instance = new TextDecoder();\n  return !!instance && \"ignoreBOM\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream",
      "info": {
        "code": "\"TextDecoderStream\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream.TextDecoderStream",
      "info": {
        "code": "bcd.testConstructor('TextDecoderStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.TextDecoderStream.encoding",
      "info": {
        "code": "\"TextDecoderStream\" in self && \"encoding\" in TextDecoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream.fatal",
      "info": {
        "code": "\"TextDecoderStream\" in self && \"fatal\" in TextDecoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream.ignoreBOM",
      "info": {
        "code": "\"TextDecoderStream\" in self && \"ignoreBOM\" in TextDecoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream.readable",
      "info": {
        "code": "\"TextDecoderStream\" in self && \"readable\" in TextDecoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDecoderStream.writable",
      "info": {
        "code": "\"TextDecoderStream\" in self && \"writable\" in TextDecoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextDetector",
      "info": {
        "code": "\"TextDetector\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextDetector.TextDetector",
      "info": {
        "code": "bcd.testConstructor('TextDetector')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TextDetector is not defined"
    },
    {
      "name": "api.TextDetector.detect",
      "info": {
        "code": "\"TextDetector\" in self && \"detect\" in TextDetector.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextEncoder",
      "info": {
        "code": "(function () {\n  if (!(\"TextEncoder\" in self)) {\n    return { result: false, message: \"TextEncoder is not defined\" };\n  }\n  var instance = new TextEncoder();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoder.TextEncoder",
      "info": {
        "code": "bcd.testConstructor('TextEncoder')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.TextEncoder.encode",
      "info": {
        "code": "(function () {\n  if (!(\"TextEncoder\" in self)) {\n    return { result: false, message: \"TextEncoder is not defined\" };\n  }\n  var instance = new TextEncoder();\n  return !!instance && \"encode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoder.encodeInto",
      "info": {
        "code": "(function () {\n  if (!(\"TextEncoder\" in self)) {\n    return { result: false, message: \"TextEncoder is not defined\" };\n  }\n  var instance = new TextEncoder();\n  return !!instance && \"encodeInto\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoder.encoding",
      "info": {
        "code": "(function () {\n  if (!(\"TextEncoder\" in self)) {\n    return { result: false, message: \"TextEncoder is not defined\" };\n  }\n  var instance = new TextEncoder();\n  return !!instance && \"encoding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoderStream",
      "info": {
        "code": "\"TextEncoderStream\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoderStream.TextEncoderStream",
      "info": {
        "code": "bcd.testConstructor('TextEncoderStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.TextEncoderStream.encoding",
      "info": {
        "code": "\"TextEncoderStream\" in self && \"encoding\" in TextEncoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoderStream.readable",
      "info": {
        "code": "\"TextEncoderStream\" in self && \"readable\" in TextEncoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEncoderStream.writable",
      "info": {
        "code": "\"TextEncoderStream\" in self && \"writable\" in TextEncoderStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TextEvent",
      "info": {
        "code": "\"TextEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextEvent.data",
      "info": {
        "code": "\"TextEvent\" in self && \"data\" in TextEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextEvent.initTextEvent",
      "info": {
        "code": "\"TextEvent\" in self && \"initTextEvent\" in TextEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormat",
      "info": {
        "code": "\"TextFormat\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormat.TextFormat",
      "info": {
        "code": "bcd.testConstructor('TextFormat')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TextFormat is not defined"
    },
    {
      "name": "api.TextFormat.rangeEnd",
      "info": {
        "code": "\"TextFormat\" in self && \"rangeEnd\" in TextFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormat.rangeStart",
      "info": {
        "code": "\"TextFormat\" in self && \"rangeStart\" in TextFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormat.underlineStyle",
      "info": {
        "code": "\"TextFormat\" in self && \"underlineStyle\" in TextFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormat.underlineThickness",
      "info": {
        "code": "\"TextFormat\" in self && \"underlineThickness\" in TextFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormatUpdateEvent",
      "info": {
        "code": "\"TextFormatUpdateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextFormatUpdateEvent.TextFormatUpdateEvent",
      "info": {
        "code": "bcd.testConstructor('TextFormatUpdateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TextFormatUpdateEvent is not defined"
    },
    {
      "name": "api.TextFormatUpdateEvent.getTextFormats",
      "info": {
        "code": "\"TextFormatUpdateEvent\" in self && \"getTextFormats\" in TextFormatUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextMetrics",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.actualBoundingBoxAscent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"actualBoundingBoxAscent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.actualBoundingBoxDescent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"actualBoundingBoxDescent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.actualBoundingBoxLeft",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"actualBoundingBoxLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.actualBoundingBoxRight",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"actualBoundingBoxRight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.alphabeticBaseline",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"alphabeticBaseline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.emHeightAscent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"emHeightAscent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.emHeightDescent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"emHeightDescent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.fontBoundingBoxAscent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"fontBoundingBoxAscent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.fontBoundingBoxDescent",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"fontBoundingBoxDescent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.hangingBaseline",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"hangingBaseline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.ideographicBaseline",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"ideographicBaseline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextMetrics.width",
      "info": {
        "code": "(function () {\n  if (!(\"document\" in self)) {\n    // XXX Implement worker tests for CanvasRenderingContext2D\n    return {\n      result: null,\n      message:\n        \"Testing CanvasRenderingContext2D in workers is not yet implemented\"\n    };\n  }\n  var canvas = document.createElement(\"canvas\");\n  if (!canvas) {\n    return { result: false, message: \"Could not create canvas element\" };\n  }\n  var ctx = canvas.getContext(\"2d\");\n  if (!ctx) {\n    return { result: false, message: \"ctx is falsy\" };\n  }\n  var instance = ctx.measureText(\"mdn-bcd-collector\");\n  return !!instance && \"width\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "Testing CanvasRenderingContext2D in workers is not yet implemented"
    },
    {
      "name": "api.TextTrack",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.activeCues",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"activeCues\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.addCue",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"addCue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.cues",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"cues\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.id",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.inBandMetadataTrackDispatchType",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"inBandMetadataTrackDispatchType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.kind",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"kind\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.label",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.language",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"language\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.mode",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"mode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.removeCue",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"removeCue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrack.sourceBuffer",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var instance = texttracks[0];\n  return !!instance && \"sourceBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue.endTime",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"endTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue.id",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue.pauseOnExit",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"pauseOnExit\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue.startTime",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"startTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCue.track",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"track\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCueList",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var instance = texttrack.cues;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCueList.getCueById",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var instance = texttrack.cues;\n  return !!instance && \"getCueById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackCueList.length",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var instance = texttrack.cues;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackList",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.textTracks;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackList.getTrackById",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.textTracks;\n  return !!instance && \"getTrackById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextTrackList.length",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.textTracks;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TextUpdateEvent",
      "info": {
        "code": "\"TextUpdateEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextUpdateEvent.TextUpdateEvent",
      "info": {
        "code": "bcd.testConstructor('TextUpdateEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TextUpdateEvent is not defined"
    },
    {
      "name": "api.TextUpdateEvent.selectionEnd",
      "info": {
        "code": "\"TextUpdateEvent\" in self && \"selectionEnd\" in TextUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextUpdateEvent.selectionStart",
      "info": {
        "code": "\"TextUpdateEvent\" in self && \"selectionStart\" in TextUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextUpdateEvent.text",
      "info": {
        "code": "\"TextUpdateEvent\" in self && \"text\" in TextUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextUpdateEvent.updateRangeEnd",
      "info": {
        "code": "\"TextUpdateEvent\" in self && \"updateRangeEnd\" in TextUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TextUpdateEvent.updateRangeStart",
      "info": {
        "code": "\"TextUpdateEvent\" in self && \"updateRangeStart\" in TextUpdateEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TimeEvent",
      "info": {
        "code": "\"TimeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TimeEvent.detail",
      "info": {
        "code": "\"TimeEvent\" in self && \"detail\" in TimeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TimeEvent.initTimeEvent",
      "info": {
        "code": "\"TimeEvent\" in self && \"initTimeEvent\" in TimeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TimeEvent.view",
      "info": {
        "code": "\"TimeEvent\" in self && \"view\" in TimeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TimeRanges",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.buffered;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TimeRanges.end",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.buffered;\n  return !!instance && \"end\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TimeRanges.length",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.buffered;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TimeRanges.start",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.buffered;\n  return !!instance && \"start\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ToggleEvent",
      "info": {
        "code": "\"ToggleEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ToggleEvent.ToggleEvent",
      "info": {
        "code": "bcd.testConstructor('ToggleEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ToggleEvent is not defined"
    },
    {
      "name": "api.ToggleEvent.newState",
      "info": {
        "code": "\"ToggleEvent\" in self && \"newState\" in ToggleEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ToggleEvent.oldState",
      "info": {
        "code": "\"ToggleEvent\" in self && \"oldState\" in ToggleEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ToggleEvent.source",
      "info": {
        "code": "\"ToggleEvent\" in self && \"source\" in ToggleEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch",
      "info": {
        "code": "\"Touch\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.Touch",
      "info": {
        "code": "bcd.testConstructor('Touch')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Touch is not defined"
    },
    {
      "name": "api.Touch.altitudeAngle",
      "info": {
        "code": "\"Touch\" in self && \"altitudeAngle\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.azimuthAngle",
      "info": {
        "code": "\"Touch\" in self && \"azimuthAngle\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.clientX",
      "info": {
        "code": "\"Touch\" in self && \"clientX\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.clientY",
      "info": {
        "code": "\"Touch\" in self && \"clientY\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.force",
      "info": {
        "code": "\"Touch\" in self && \"force\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.identifier",
      "info": {
        "code": "\"Touch\" in self && \"identifier\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.pageX",
      "info": {
        "code": "\"Touch\" in self && \"pageX\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.pageY",
      "info": {
        "code": "\"Touch\" in self && \"pageY\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.radiusX",
      "info": {
        "code": "\"Touch\" in self && \"radiusX\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.radiusY",
      "info": {
        "code": "\"Touch\" in self && \"radiusY\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.rotationAngle",
      "info": {
        "code": "\"Touch\" in self && \"rotationAngle\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.screenX",
      "info": {
        "code": "\"Touch\" in self && \"screenX\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.screenY",
      "info": {
        "code": "\"Touch\" in self && \"screenY\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.target",
      "info": {
        "code": "\"Touch\" in self && \"target\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Touch.touchType",
      "info": {
        "code": "\"Touch\" in self && \"touchType\" in Touch.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TouchEvent",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.TouchEvent",
      "info": {
        "code": "bcd.testConstructor('TouchEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.altKey",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"altKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.changedTouches",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"changedTouches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.ctrlKey",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"ctrlKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.getModifierState",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"getModifierState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.metaKey",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"metaKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.shiftKey",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"shiftKey\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.targetTouches",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"targetTouches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchEvent.touches",
      "info": {
        "code": "(function () {\n  if (!(\"TouchEvent\" in self)) {\n    return { result: false, message: \"TouchEvent is not defined\" };\n  }\n  var instance = new TouchEvent(\"touchstart\");\n  return !!instance && \"touches\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "TouchEvent is not defined"
    },
    {
      "name": "api.TouchList",
      "info": {
        "code": "\"TouchList\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TouchList.item",
      "info": {
        "code": "\"TouchList\" in self && \"item\" in TouchList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TouchList.length",
      "info": {
        "code": "\"TouchList\" in self && \"length\" in TouchList.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrackEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TrackEvent(\"addtrack\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TrackEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TrackEvent.TrackEvent",
      "info": {
        "code": "bcd.testConstructor('TrackEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TrackEvent is not defined"
    },
    {
      "name": "api.TrackEvent.track",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TrackEvent(\"addtrack\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TrackEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"track\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TransformStream",
      "info": {
        "code": "\"TransformStream\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStream.TransformStream",
      "info": {
        "code": "bcd.testConstructor('TransformStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.TransformStream.readable",
      "info": {
        "code": "\"TransformStream\" in self && \"readable\" in TransformStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStream.writable",
      "info": {
        "code": "\"TransformStream\" in self && \"writable\" in TransformStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStreamDefaultController",
      "info": {
        "code": "(function () {\n  if (!(\"TransformStream\" in self)) {\n    return { result: false, message: \"TransformStream is not defined\" };\n  }\n  new TransformStream({\n    start(controller) {\n      callback(controller);\n    }\n  });\n  function callback(instance) {\n    try {\n      success(!!instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStreamDefaultController.desiredSize",
      "info": {
        "code": "(function () {\n  if (!(\"TransformStream\" in self)) {\n    return { result: false, message: \"TransformStream is not defined\" };\n  }\n  new TransformStream({\n    start(controller) {\n      callback(controller);\n    }\n  });\n  function callback(instance) {\n    try {\n      success(!!instance && \"desiredSize\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStreamDefaultController.enqueue",
      "info": {
        "code": "(function () {\n  if (!(\"TransformStream\" in self)) {\n    return { result: false, message: \"TransformStream is not defined\" };\n  }\n  new TransformStream({\n    start(controller) {\n      callback(controller);\n    }\n  });\n  function callback(instance) {\n    try {\n      success(!!instance && \"enqueue\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStreamDefaultController.error",
      "info": {
        "code": "(function () {\n  if (!(\"TransformStream\" in self)) {\n    return { result: false, message: \"TransformStream is not defined\" };\n  }\n  new TransformStream({\n    start(controller) {\n      callback(controller);\n    }\n  });\n  function callback(instance) {\n    try {\n      success(!!instance && \"error\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransformStreamDefaultController.terminate",
      "info": {
        "code": "(function () {\n  if (!(\"TransformStream\" in self)) {\n    return { result: false, message: \"TransformStream is not defined\" };\n  }\n  new TransformStream({\n    start(controller) {\n      callback(controller);\n    }\n  });\n  function callback(instance) {\n    try {\n      success(!!instance && \"terminate\" in instance);\n    } catch (e) {\n      fail(e);\n    }\n  }\n  return \"callback\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.TransitionEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TransitionEvent(\"transitionend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TransitionEvent.TransitionEvent",
      "info": {
        "code": "bcd.testConstructor('TransitionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: TransitionEvent is not defined"
    },
    {
      "name": "api.TransitionEvent.elapsedTime",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TransitionEvent(\"transitionend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"elapsedTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TransitionEvent.propertyName",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TransitionEvent(\"transitionend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"propertyName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TransitionEvent.pseudoElement",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new TransitionEvent(\"transitionend\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"TransitionEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"pseudoElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Translator",
      "info": {
        "code": "\"Translator\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.availability_static",
      "info": {
        "code": "\"Translator\" in self && \"availability\" in Translator",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.create_static",
      "info": {
        "code": "\"Translator\" in self && \"create\" in Translator",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.destroy",
      "info": {
        "code": "\"Translator\" in self && \"destroy\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.inputQuota",
      "info": {
        "code": "\"Translator\" in self && \"inputQuota\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.measureInputUsage",
      "info": {
        "code": "\"Translator\" in self && \"measureInputUsage\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.sourceLanguage",
      "info": {
        "code": "\"Translator\" in self && \"sourceLanguage\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.targetLanguage",
      "info": {
        "code": "\"Translator\" in self && \"targetLanguage\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.translate",
      "info": {
        "code": "\"Translator\" in self && \"translate\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Translator.translateStreaming",
      "info": {
        "code": "\"Translator\" in self && \"translateStreaming\" in Translator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TreeWalker",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.currentNode",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"currentNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.filter",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"filter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.firstChild",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"firstChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.lastChild",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"lastChild\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.nextNode",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"nextNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.nextSibling",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"nextSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.parentNode",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"parentNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.previousNode",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"previousNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.previousSibling",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"previousSibling\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.root",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"root\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TreeWalker.whatToShow",
      "info": {
        "code": "(function () {\n  var instance = document.createTreeWalker(document);\n  return !!instance && \"whatToShow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.TrustedHTML",
      "info": {
        "code": "\"TrustedHTML\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedHTML.toJSON",
      "info": {
        "code": "\"TrustedHTML\" in self && \"toJSON\" in TrustedHTML.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedHTML.toString",
      "info": {
        "code": "\"TrustedHTML\" in self && \"toString\" in TrustedHTML.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScript",
      "info": {
        "code": "\"TrustedScript\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScript.toJSON",
      "info": {
        "code": "\"TrustedScript\" in self && \"toJSON\" in TrustedScript.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScript.toString",
      "info": {
        "code": "\"TrustedScript\" in self && \"toString\" in TrustedScript.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScriptURL",
      "info": {
        "code": "\"TrustedScriptURL\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScriptURL.toJSON",
      "info": {
        "code": "\"TrustedScriptURL\" in self && \"toJSON\" in TrustedScriptURL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedScriptURL.toString",
      "info": {
        "code": "\"TrustedScriptURL\" in self && \"toString\" in TrustedScriptURL.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicy",
      "info": {
        "code": "\"TrustedTypePolicy\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicy.createHTML",
      "info": {
        "code": "\"TrustedTypePolicy\" in self && \"createHTML\" in TrustedTypePolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicy.createScript",
      "info": {
        "code": "\"TrustedTypePolicy\" in self && \"createScript\" in TrustedTypePolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicy.createScriptURL",
      "info": {
        "code": "\"TrustedTypePolicy\" in self && \"createScriptURL\" in TrustedTypePolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicy.name",
      "info": {
        "code": "\"TrustedTypePolicy\" in self && \"name\" in TrustedTypePolicy.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.createPolicy",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"createPolicy\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.defaultPolicy",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"defaultPolicy\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.emptyHTML",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"emptyHTML\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.emptyScript",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"emptyScript\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.getAttributeType",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"getAttributeType\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.getPropertyType",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"getPropertyType\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.isHTML",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"isHTML\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.isScript",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"isScript\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.TrustedTypePolicyFactory.isScriptURL",
      "info": {
        "code": "\"TrustedTypePolicyFactory\" in self && \"isScriptURL\" in TrustedTypePolicyFactory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UIEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.UIEvent.UIEvent",
      "info": {
        "code": "bcd.testConstructor('UIEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: UIEvent is not defined"
    },
    {
      "name": "api.UIEvent.detail",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"detail\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.UIEvent.initUIEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"initUIEvent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.UIEvent.sourceCapabilities",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"sourceCapabilities\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.UIEvent.view",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"view\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.UIEvent.which",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new UIEvent(\"\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"UIEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"which\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.URL",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return \"URL\" in self;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.URL",
      "info": {
        "code": "bcd.testConstructor('URL')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'URL': 1 argument required, but only 0 present."
    },
    {
      "name": "api.URL.canParse_static",
      "info": {
        "code": "\"URL\" in self && \"canParse\" in URL",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.createObjectURL_static",
      "info": {
        "code": "\"URL\" in self && \"createObjectURL\" in URL",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.hash",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.host",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"host\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.hostname",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.href",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"href\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.origin",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"origin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.parse_static",
      "info": {
        "code": "\"URL\" in self && \"parse\" in URL",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.URL.password",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"password\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.pathname",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.port",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.protocol",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.revokeObjectURL_static",
      "info": {
        "code": "\"URL\" in self && \"revokeObjectURL\" in URL",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.search",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.searchParams",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"searchParams\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.toJSON",
      "info": {
        "code": "\"URL\" in self && \"toJSON\" in URL.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.toString",
      "info": {
        "code": "\"URL\" in self && \"toString\" in URL.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URL.username",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new URL(\"https://example.com\");\n  } catch (e) {\n    instance = new webkitURL(\"https://example.com\");\n  }\n  return !!instance && \"username\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.URLPattern",
      "info": {
        "code": "bcd.testConstructor('URLPattern')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'URLPattern': 1 argument required, but only 0 present."
    },
    {
      "name": "api.URLPattern.URLPattern.ignoreCase_option",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  function constructor(options) {\n    new URLPattern(\"https://mdn-bcd-collector.gooborg.com/tests/*\", options);\n  }\n  return bcd.testOptionParam(constructor, null, \"ignoreCase\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw Error: relative URL without a base"
    },
    {
      "name": "api.URLPattern.exec",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"exec\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.hasRegExpGroups",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"hasRegExpGroups\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.URLPattern.hash",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"hash\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.hostname",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"hostname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.password",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"password\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.pathname",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"pathname\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.port",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"port\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.protocol",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.search",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"search\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.test",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"test\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLPattern.username",
      "info": {
        "code": "(function () {\n  if (!(\"URLPattern\" in self)) {\n    return { result: false, message: \"URLPattern is not defined\" };\n  }\n  var instance = new URLPattern(\n    \"https://mdn-bcd-collector.gooborg.com/tests/*\"\n  );\n  return !!instance && \"username\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.@@iterator",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.URLSearchParams",
      "info": {
        "code": "bcd.testConstructor('URLSearchParams')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.URLSearchParams.URLSearchParams.USVString",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return true; // We already know this works, because we use a string to create the instance\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.URLSearchParams.record",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  try {\n    new URLSearchParams({ q: \"HelloWorld\", target: \"MDN\" });\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.URLSearchParams.sequence",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  try {\n    new URLSearchParams([\n      [\"q\", \"HelloWorld\"],\n      [\"target\", \"MDN\"]\n    ]);\n    return true;\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    return e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.append",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"append\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.delete",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"delete\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.delete.value_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  instance = new URLSearchParams(\"foo=1&bar=2&foo=3&foo=1\");\n  instance.delete(\"foo\", \"1\");\n  return instance == \"bar=2&foo=3\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.entries",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.forEach",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.get",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"get\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.getAll",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"getAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.has",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"has\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.has.value_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  instance = new URLSearchParams(\"foo=1&bar=2&foo=3&foo=1\");\n  return instance.has(\"bar\", \"2\") && !instance.has(\"bar\", \"3\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.keys",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.set",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"set\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.size",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.sort",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"sort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.toString",
      "info": {
        "code": "\"URLSearchParams\" in self && \"toString\" in URLSearchParams.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.URLSearchParams.values",
      "info": {
        "code": "(function () {\n  if (!(\"URLSearchParams\" in self)) {\n    return { result: false, message: \"URLSearchParams is not defined\" };\n  }\n  var instance = new URLSearchParams(\"q=HelloWorld&target=MDN\");\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.USB",
      "info": {
        "code": "\"USB\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USB.getDevices",
      "info": {
        "code": "\"USB\" in self && \"getDevices\" in USB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USB.requestDevice",
      "info": {
        "code": "\"USB\" in self && \"requestDevice\" in USB.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface",
      "info": {
        "code": "\"USBAlternateInterface\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.USBAlternateInterface",
      "info": {
        "code": "bcd.testConstructor('USBAlternateInterface')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBAlternateInterface is not defined"
    },
    {
      "name": "api.USBAlternateInterface.alternateSetting",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"alternateSetting\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.endpoints",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"endpoints\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.interfaceClass",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"interfaceClass\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.interfaceName",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"interfaceName\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.interfaceProtocol",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"interfaceProtocol\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBAlternateInterface.interfaceSubclass",
      "info": {
        "code": "\"USBAlternateInterface\" in self && \"interfaceSubclass\" in USBAlternateInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConfiguration",
      "info": {
        "code": "\"USBConfiguration\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConfiguration.USBConfiguration",
      "info": {
        "code": "bcd.testConstructor('USBConfiguration')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBConfiguration is not defined"
    },
    {
      "name": "api.USBConfiguration.configurationName",
      "info": {
        "code": "\"USBConfiguration\" in self && \"configurationName\" in USBConfiguration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConfiguration.configurationValue",
      "info": {
        "code": "\"USBConfiguration\" in self && \"configurationValue\" in USBConfiguration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConfiguration.interfaces",
      "info": {
        "code": "\"USBConfiguration\" in self && \"interfaces\" in USBConfiguration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConnectionEvent",
      "info": {
        "code": "\"USBConnectionEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBConnectionEvent.USBConnectionEvent",
      "info": {
        "code": "bcd.testConstructor('USBConnectionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBConnectionEvent is not defined"
    },
    {
      "name": "api.USBConnectionEvent.device",
      "info": {
        "code": "\"USBConnectionEvent\" in self && \"device\" in USBConnectionEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice",
      "info": {
        "code": "\"USBDevice\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.claimInterface",
      "info": {
        "code": "\"USBDevice\" in self && \"claimInterface\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.clearHalt",
      "info": {
        "code": "\"USBDevice\" in self && \"clearHalt\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.close",
      "info": {
        "code": "\"USBDevice\" in self && \"close\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.configuration",
      "info": {
        "code": "\"USBDevice\" in self && \"configuration\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.configurations",
      "info": {
        "code": "\"USBDevice\" in self && \"configurations\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.controlTransferIn",
      "info": {
        "code": "\"USBDevice\" in self && \"controlTransferIn\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.controlTransferOut",
      "info": {
        "code": "\"USBDevice\" in self && \"controlTransferOut\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceClass",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceClass\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceProtocol",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceProtocol\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceSubclass",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceSubclass\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceVersionMajor",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceVersionMajor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceVersionMinor",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceVersionMinor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.deviceVersionSubminor",
      "info": {
        "code": "\"USBDevice\" in self && \"deviceVersionSubminor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.forget",
      "info": {
        "code": "\"USBDevice\" in self && \"forget\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.isochronousTransferIn",
      "info": {
        "code": "\"USBDevice\" in self && \"isochronousTransferIn\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.isochronousTransferOut",
      "info": {
        "code": "\"USBDevice\" in self && \"isochronousTransferOut\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.manufacturerName",
      "info": {
        "code": "\"USBDevice\" in self && \"manufacturerName\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.open",
      "info": {
        "code": "\"USBDevice\" in self && \"open\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.opened",
      "info": {
        "code": "\"USBDevice\" in self && \"opened\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.productId",
      "info": {
        "code": "\"USBDevice\" in self && \"productId\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.productName",
      "info": {
        "code": "\"USBDevice\" in self && \"productName\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.releaseInterface",
      "info": {
        "code": "\"USBDevice\" in self && \"releaseInterface\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.reset",
      "info": {
        "code": "\"USBDevice\" in self && \"reset\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.selectAlternateInterface",
      "info": {
        "code": "\"USBDevice\" in self && \"selectAlternateInterface\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.selectConfiguration",
      "info": {
        "code": "\"USBDevice\" in self && \"selectConfiguration\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.serialNumber",
      "info": {
        "code": "\"USBDevice\" in self && \"serialNumber\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.transferIn",
      "info": {
        "code": "\"USBDevice\" in self && \"transferIn\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.transferOut",
      "info": {
        "code": "\"USBDevice\" in self && \"transferOut\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.usbVersionMajor",
      "info": {
        "code": "\"USBDevice\" in self && \"usbVersionMajor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.usbVersionMinor",
      "info": {
        "code": "\"USBDevice\" in self && \"usbVersionMinor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.usbVersionSubminor",
      "info": {
        "code": "\"USBDevice\" in self && \"usbVersionSubminor\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBDevice.vendorId",
      "info": {
        "code": "\"USBDevice\" in self && \"vendorId\" in USBDevice.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBEndpoint",
      "info": {
        "code": "\"USBEndpoint\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBEndpoint.USBEndpoint",
      "info": {
        "code": "bcd.testConstructor('USBEndpoint')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBEndpoint is not defined"
    },
    {
      "name": "api.USBEndpoint.direction",
      "info": {
        "code": "\"USBEndpoint\" in self && \"direction\" in USBEndpoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBEndpoint.endpointNumber",
      "info": {
        "code": "\"USBEndpoint\" in self && \"endpointNumber\" in USBEndpoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBEndpoint.packetSize",
      "info": {
        "code": "\"USBEndpoint\" in self && \"packetSize\" in USBEndpoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBEndpoint.type",
      "info": {
        "code": "\"USBEndpoint\" in self && \"type\" in USBEndpoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInTransferResult",
      "info": {
        "code": "\"USBInTransferResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInTransferResult.USBInTransferResult",
      "info": {
        "code": "bcd.testConstructor('USBInTransferResult')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBInTransferResult is not defined"
    },
    {
      "name": "api.USBInTransferResult.data",
      "info": {
        "code": "\"USBInTransferResult\" in self && \"data\" in USBInTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInTransferResult.status",
      "info": {
        "code": "\"USBInTransferResult\" in self && \"status\" in USBInTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInterface",
      "info": {
        "code": "\"USBInterface\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInterface.USBInterface",
      "info": {
        "code": "bcd.testConstructor('USBInterface')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBInterface is not defined"
    },
    {
      "name": "api.USBInterface.alternate",
      "info": {
        "code": "\"USBInterface\" in self && \"alternate\" in USBInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInterface.alternates",
      "info": {
        "code": "\"USBInterface\" in self && \"alternates\" in USBInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInterface.claimed",
      "info": {
        "code": "\"USBInterface\" in self && \"claimed\" in USBInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBInterface.interfaceNumber",
      "info": {
        "code": "\"USBInterface\" in self && \"interfaceNumber\" in USBInterface.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferPacket",
      "info": {
        "code": "\"USBIsochronousInTransferPacket\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferPacket.USBIsochronousInTransferPacket",
      "info": {
        "code": "bcd.testConstructor('USBIsochronousInTransferPacket')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBIsochronousInTransferPacket is not defined"
    },
    {
      "name": "api.USBIsochronousInTransferPacket.data",
      "info": {
        "code": "\"USBIsochronousInTransferPacket\" in self && \"data\" in USBIsochronousInTransferPacket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferPacket.status",
      "info": {
        "code": "\"USBIsochronousInTransferPacket\" in self && \"status\" in USBIsochronousInTransferPacket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferResult",
      "info": {
        "code": "\"USBIsochronousInTransferResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferResult.USBIsochronousInTransferResult",
      "info": {
        "code": "bcd.testConstructor('USBIsochronousInTransferResult')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBIsochronousInTransferResult is not defined"
    },
    {
      "name": "api.USBIsochronousInTransferResult.data",
      "info": {
        "code": "\"USBIsochronousInTransferResult\" in self && \"data\" in USBIsochronousInTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousInTransferResult.packets",
      "info": {
        "code": "\"USBIsochronousInTransferResult\" in self && \"packets\" in USBIsochronousInTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousOutTransferPacket",
      "info": {
        "code": "\"USBIsochronousOutTransferPacket\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousOutTransferPacket.USBIsochronousOutTransferPacket",
      "info": {
        "code": "bcd.testConstructor('USBIsochronousOutTransferPacket')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBIsochronousOutTransferPacket is not defined"
    },
    {
      "name": "api.USBIsochronousOutTransferPacket.bytesWritten",
      "info": {
        "code": "\"USBIsochronousOutTransferPacket\" in self && \"bytesWritten\" in USBIsochronousOutTransferPacket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousOutTransferPacket.status",
      "info": {
        "code": "\"USBIsochronousOutTransferPacket\" in self && \"status\" in USBIsochronousOutTransferPacket.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousOutTransferResult",
      "info": {
        "code": "\"USBIsochronousOutTransferResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBIsochronousOutTransferResult.USBIsochronousOutTransferResult",
      "info": {
        "code": "bcd.testConstructor('USBIsochronousOutTransferResult')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBIsochronousOutTransferResult is not defined"
    },
    {
      "name": "api.USBIsochronousOutTransferResult.packets",
      "info": {
        "code": "\"USBIsochronousOutTransferResult\" in self && \"packets\" in USBIsochronousOutTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBOutTransferResult",
      "info": {
        "code": "\"USBOutTransferResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBOutTransferResult.USBOutTransferResult",
      "info": {
        "code": "bcd.testConstructor('USBOutTransferResult')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: USBOutTransferResult is not defined"
    },
    {
      "name": "api.USBOutTransferResult.bytesWritten",
      "info": {
        "code": "\"USBOutTransferResult\" in self && \"bytesWritten\" in USBOutTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBOutTransferResult.status",
      "info": {
        "code": "\"USBOutTransferResult\" in self && \"status\" in USBOutTransferResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBPermissionResult",
      "info": {
        "code": "\"USBPermissionResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.USBPermissionResult.devices",
      "info": {
        "code": "\"USBPermissionResult\" in self && \"devices\" in USBPermissionResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.UncalibratedMagnetometer",
      "info": {
        "code": "bcd.testConstructor('UncalibratedMagnetometer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: UncalibratedMagnetometer is not defined"
    },
    {
      "name": "api.UncalibratedMagnetometer.x",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"x\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.xBias",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"xBias\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.y",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"y\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.yBias",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"yBias\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.z",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"z\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UncalibratedMagnetometer.zBias",
      "info": {
        "code": "\"UncalibratedMagnetometer\" in self && \"zBias\" in UncalibratedMagnetometer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UserActivation",
      "info": {
        "code": "\"UserActivation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UserActivation.hasBeenActive",
      "info": {
        "code": "\"UserActivation\" in self && \"hasBeenActive\" in UserActivation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UserActivation.isActive",
      "info": {
        "code": "\"UserActivation\" in self && \"isActive\" in UserActivation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UserProximityEvent",
      "info": {
        "code": "\"UserProximityEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.UserProximityEvent.near",
      "info": {
        "code": "\"UserProximityEvent\" in self && \"near\" in UserProximityEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay",
      "info": {
        "code": "\"VRDisplay\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.cancelAnimationFrame",
      "info": {
        "code": "\"VRDisplay\" in self && \"cancelAnimationFrame\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.capabilities",
      "info": {
        "code": "\"VRDisplay\" in self && \"capabilities\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.depthFar",
      "info": {
        "code": "\"VRDisplay\" in self && \"depthFar\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.depthNear",
      "info": {
        "code": "\"VRDisplay\" in self && \"depthNear\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.displayId",
      "info": {
        "code": "\"VRDisplay\" in self && \"displayId\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.displayName",
      "info": {
        "code": "\"VRDisplay\" in self && \"displayName\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.exitPresent",
      "info": {
        "code": "\"VRDisplay\" in self && \"exitPresent\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.getEyeParameters",
      "info": {
        "code": "\"VRDisplay\" in self && \"getEyeParameters\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.getFrameData",
      "info": {
        "code": "\"VRDisplay\" in self && \"getFrameData\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.getImmediatePose",
      "info": {
        "code": "\"VRDisplay\" in self && \"getImmediatePose\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.getLayers",
      "info": {
        "code": "\"VRDisplay\" in self && \"getLayers\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.getPose",
      "info": {
        "code": "\"VRDisplay\" in self && \"getPose\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.isConnected",
      "info": {
        "code": "\"VRDisplay\" in self && \"isConnected\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.isPresenting",
      "info": {
        "code": "\"VRDisplay\" in self && \"isPresenting\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.requestAnimationFrame",
      "info": {
        "code": "\"VRDisplay\" in self && \"requestAnimationFrame\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.requestPresent",
      "info": {
        "code": "\"VRDisplay\" in self && \"requestPresent\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.resetPose",
      "info": {
        "code": "\"VRDisplay\" in self && \"resetPose\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.stageParameters",
      "info": {
        "code": "\"VRDisplay\" in self && \"stageParameters\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplay.submitFrame",
      "info": {
        "code": "\"VRDisplay\" in self && \"submitFrame\" in VRDisplay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities.canPresent",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self && \"canPresent\" in VRDisplayCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities.hasExternalDisplay",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self && \"hasExternalDisplay\" in VRDisplayCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities.hasOrientation",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self && \"hasOrientation\" in VRDisplayCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities.hasPosition",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self && \"hasPosition\" in VRDisplayCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayCapabilities.maxLayers",
      "info": {
        "code": "\"VRDisplayCapabilities\" in self && \"maxLayers\" in VRDisplayCapabilities.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayEvent",
      "info": {
        "code": "\"VRDisplayEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayEvent.VRDisplayEvent",
      "info": {
        "code": "bcd.testConstructor('VRDisplayEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VRDisplayEvent is not defined"
    },
    {
      "name": "api.VRDisplayEvent.display",
      "info": {
        "code": "\"VRDisplayEvent\" in self && \"display\" in VRDisplayEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRDisplayEvent.reason",
      "info": {
        "code": "\"VRDisplayEvent\" in self && \"reason\" in VRDisplayEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters",
      "info": {
        "code": "\"VREyeParameters\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.fieldOfView",
      "info": {
        "code": "\"VREyeParameters\" in self && \"fieldOfView\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.maximumFieldOfView",
      "info": {
        "code": "\"VREyeParameters\" in self && \"maximumFieldOfView\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.minimumFieldOfView",
      "info": {
        "code": "\"VREyeParameters\" in self && \"minimumFieldOfView\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.offset",
      "info": {
        "code": "\"VREyeParameters\" in self && \"offset\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.renderHeight",
      "info": {
        "code": "\"VREyeParameters\" in self && \"renderHeight\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VREyeParameters.renderWidth",
      "info": {
        "code": "\"VREyeParameters\" in self && \"renderWidth\" in VREyeParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFieldOfView",
      "info": {
        "code": "\"VRFieldOfView\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFieldOfView.downDegrees",
      "info": {
        "code": "\"VRFieldOfView\" in self && \"downDegrees\" in VRFieldOfView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFieldOfView.leftDegrees",
      "info": {
        "code": "\"VRFieldOfView\" in self && \"leftDegrees\" in VRFieldOfView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFieldOfView.rightDegrees",
      "info": {
        "code": "\"VRFieldOfView\" in self && \"rightDegrees\" in VRFieldOfView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFieldOfView.upDegrees",
      "info": {
        "code": "\"VRFieldOfView\" in self && \"upDegrees\" in VRFieldOfView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData",
      "info": {
        "code": "\"VRFrameData\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.VRFrameData",
      "info": {
        "code": "bcd.testConstructor('VRFrameData')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VRFrameData is not defined"
    },
    {
      "name": "api.VRFrameData.leftProjectionMatrix",
      "info": {
        "code": "\"VRFrameData\" in self && \"leftProjectionMatrix\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.leftViewMatrix",
      "info": {
        "code": "\"VRFrameData\" in self && \"leftViewMatrix\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.pose",
      "info": {
        "code": "\"VRFrameData\" in self && \"pose\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.rightProjectionMatrix",
      "info": {
        "code": "\"VRFrameData\" in self && \"rightProjectionMatrix\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.rightViewMatrix",
      "info": {
        "code": "\"VRFrameData\" in self && \"rightViewMatrix\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRFrameData.timestamp",
      "info": {
        "code": "\"VRFrameData\" in self && \"timestamp\" in VRFrameData.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRPose",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.angularAcceleration",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"angularAcceleration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.angularVelocity",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"angularVelocity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.hasOrientation",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"hasOrientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.hasPosition",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"hasPosition\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.linearAcceleration",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"linearAcceleration\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.linearVelocity",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"linearVelocity\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.orientation",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"orientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRPose.position",
      "info": {
        "code": "(function () {\n  if (!(\"getVRDisplays\" in navigator)) {\n    return { result: false, message: \"WebVR 1.1 is not supported\" };\n  }\n  // Obtaining an actual instance requires a VR headset to be hooked up,\n  // so we are using the prototype instead\n  var instance = VRPose.prototype;\n  return !!instance && \"position\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.VRStageParameters",
      "info": {
        "code": "\"VRStageParameters\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRStageParameters.sittingToStandingTransform",
      "info": {
        "code": "\"VRStageParameters\" in self && \"sittingToStandingTransform\" in VRStageParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRStageParameters.sizeX",
      "info": {
        "code": "\"VRStageParameters\" in self && \"sizeX\" in VRStageParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VRStageParameters.sizeY",
      "info": {
        "code": "\"VRStageParameters\" in self && \"sizeY\" in VRStageParameters.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTCue",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.VTTCue",
      "info": {
        "code": "bcd.testConstructor('VTTCue')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VTTCue is not defined"
    },
    {
      "name": "api.VTTCue.align",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"align\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.getCueAsHTML",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"getCueAsHTML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.line",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"line\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.lineAlign",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"lineAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.position",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"position\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.positionAlign",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"positionAlign\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.region",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"region\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.size",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"size\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.snapToLines",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"snapToLines\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.text",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"text\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTCue.vertical",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var texttracks = el.textTracks;\n  if (!texttracks) {\n    return { result: false, message: \"texttracks is falsy\" };\n  }\n  var texttrack = texttracks[0];\n  if (!texttrack) {\n    return { result: false, message: \"texttrack is falsy\" };\n  }\n  var cues = texttrack.cues;\n  if (!cues) {\n    return { result: false, message: \"cues is falsy\" };\n  }\n  var instance = cues[0];\n  return !!instance && \"vertical\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VTTRegion",
      "info": {
        "code": "\"VTTRegion\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.VTTRegion",
      "info": {
        "code": "bcd.testConstructor('VTTRegion')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VTTRegion is not defined"
    },
    {
      "name": "api.VTTRegion.id",
      "info": {
        "code": "\"VTTRegion\" in self && \"id\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.lines",
      "info": {
        "code": "\"VTTRegion\" in self && \"lines\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.regionAnchorX",
      "info": {
        "code": "\"VTTRegion\" in self && \"regionAnchorX\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.regionAnchorY",
      "info": {
        "code": "\"VTTRegion\" in self && \"regionAnchorY\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.scroll",
      "info": {
        "code": "\"VTTRegion\" in self && \"scroll\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.viewportAnchorX",
      "info": {
        "code": "\"VTTRegion\" in self && \"viewportAnchorX\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.viewportAnchorY",
      "info": {
        "code": "\"VTTRegion\" in self && \"viewportAnchorY\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VTTRegion.width",
      "info": {
        "code": "\"VTTRegion\" in self && \"width\" in VTTRegion.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ValidityState",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.badInput",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"badInput\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.customError",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"customError\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.patternMismatch",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"patternMismatch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.rangeOverflow",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"rangeOverflow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.rangeUnderflow",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"rangeUnderflow\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.stepMismatch",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"stepMismatch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.tooLong",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"tooLong\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.tooShort",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"tooShort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.typeMismatch",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"typeMismatch\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.valid",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"valid\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValidityState.valueMissing",
      "info": {
        "code": "(function () {\n  var el = document.createElement(\"input\");\n  if (!el) {\n    return { result: false, message: \"el is falsy\" };\n  }\n  var instance = el.validity;\n  return !!instance && \"valueMissing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ValueEvent",
      "info": {
        "code": "\"ValueEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ValueEvent.ValueEvent",
      "info": {
        "code": "bcd.testConstructor('ValueEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ValueEvent is not defined"
    },
    {
      "name": "api.ValueEvent.value",
      "info": {
        "code": "\"ValueEvent\" in self && \"value\" in ValueEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace",
      "info": {
        "code": "\"VideoColorSpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace.VideoColorSpace",
      "info": {
        "code": "bcd.testConstructor('VideoColorSpace')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VideoColorSpace is not defined"
    },
    {
      "name": "api.VideoColorSpace.fullRange",
      "info": {
        "code": "\"VideoColorSpace\" in self && \"fullRange\" in VideoColorSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace.matrix",
      "info": {
        "code": "\"VideoColorSpace\" in self && \"matrix\" in VideoColorSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace.primaries",
      "info": {
        "code": "\"VideoColorSpace\" in self && \"primaries\" in VideoColorSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace.toJSON",
      "info": {
        "code": "\"VideoColorSpace\" in self && \"toJSON\" in VideoColorSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoColorSpace.transfer",
      "info": {
        "code": "\"VideoColorSpace\" in self && \"transfer\" in VideoColorSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder",
      "info": {
        "code": "\"VideoDecoder\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.VideoDecoder",
      "info": {
        "code": "bcd.testConstructor('VideoDecoder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VideoDecoder is not defined"
    },
    {
      "name": "api.VideoDecoder.close",
      "info": {
        "code": "\"VideoDecoder\" in self && \"close\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.configure",
      "info": {
        "code": "\"VideoDecoder\" in self && \"configure\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.decode",
      "info": {
        "code": "\"VideoDecoder\" in self && \"decode\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.decodeQueueSize",
      "info": {
        "code": "\"VideoDecoder\" in self && \"decodeQueueSize\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.flush",
      "info": {
        "code": "\"VideoDecoder\" in self && \"flush\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.isConfigSupported_static",
      "info": {
        "code": "\"VideoDecoder\" in self && \"isConfigSupported\" in VideoDecoder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.reset",
      "info": {
        "code": "\"VideoDecoder\" in self && \"reset\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoDecoder.state",
      "info": {
        "code": "\"VideoDecoder\" in self && \"state\" in VideoDecoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder",
      "info": {
        "code": "\"VideoEncoder\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.VideoEncoder",
      "info": {
        "code": "bcd.testConstructor('VideoEncoder')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VideoEncoder is not defined"
    },
    {
      "name": "api.VideoEncoder.close",
      "info": {
        "code": "\"VideoEncoder\" in self && \"close\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.configure",
      "info": {
        "code": "\"VideoEncoder\" in self && \"configure\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.encode",
      "info": {
        "code": "\"VideoEncoder\" in self && \"encode\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.encodeQueueSize",
      "info": {
        "code": "\"VideoEncoder\" in self && \"encodeQueueSize\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.flush",
      "info": {
        "code": "\"VideoEncoder\" in self && \"flush\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.isConfigSupported_static",
      "info": {
        "code": "\"VideoEncoder\" in self && \"isConfigSupported\" in VideoEncoder",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.reset",
      "info": {
        "code": "\"VideoEncoder\" in self && \"reset\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoEncoder.state",
      "info": {
        "code": "\"VideoEncoder\" in self && \"state\" in VideoEncoder.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame",
      "info": {
        "code": "\"VideoFrame\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.VideoFrame",
      "info": {
        "code": "bcd.testConstructor('VideoFrame')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: VideoFrame is not defined"
    },
    {
      "name": "api.VideoFrame.allocationSize",
      "info": {
        "code": "\"VideoFrame\" in self && \"allocationSize\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.clone",
      "info": {
        "code": "\"VideoFrame\" in self && \"clone\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.close",
      "info": {
        "code": "\"VideoFrame\" in self && \"close\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.codedHeight",
      "info": {
        "code": "\"VideoFrame\" in self && \"codedHeight\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.codedRect",
      "info": {
        "code": "\"VideoFrame\" in self && \"codedRect\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.codedWidth",
      "info": {
        "code": "\"VideoFrame\" in self && \"codedWidth\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.colorSpace",
      "info": {
        "code": "\"VideoFrame\" in self && \"colorSpace\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.copyTo",
      "info": {
        "code": "\"VideoFrame\" in self && \"copyTo\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.displayHeight",
      "info": {
        "code": "\"VideoFrame\" in self && \"displayHeight\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.displayWidth",
      "info": {
        "code": "\"VideoFrame\" in self && \"displayWidth\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.duration",
      "info": {
        "code": "\"VideoFrame\" in self && \"duration\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.flip",
      "info": {
        "code": "\"VideoFrame\" in self && \"flip\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.format",
      "info": {
        "code": "\"VideoFrame\" in self && \"format\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.metadata",
      "info": {
        "code": "\"VideoFrame\" in self && \"metadata\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.rotation",
      "info": {
        "code": "\"VideoFrame\" in self && \"rotation\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.timestamp",
      "info": {
        "code": "\"VideoFrame\" in self && \"timestamp\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoFrame.visibleRect",
      "info": {
        "code": "\"VideoFrame\" in self && \"visibleRect\" in VideoFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VideoPlaybackQuality",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoPlaybackQuality.corruptedVideoFrames",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance && \"corruptedVideoFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoPlaybackQuality.creationTime",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance && \"creationTime\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoPlaybackQuality.droppedVideoFrames",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance && \"droppedVideoFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoPlaybackQuality.totalFrameDelay",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance && \"totalFrameDelay\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoPlaybackQuality.totalVideoFrames",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.getVideoPlaybackQuality();\n  return !!instance && \"totalVideoFrames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.id",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"id\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.kind",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"kind\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.label",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"label\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.language",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"language\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.selected",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"selected\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrack.sourceBuffer",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var videoTracks = el.videoTracks;\n  if (!videoTracks) {\n    return { result: false, message: \"videoTracks is falsy\" };\n  }\n  var instance = videoTracks[0];\n  return !!instance && \"sourceBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrackList",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.videoTracks;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrackList.getTrackById",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.videoTracks;\n  return !!instance && \"getTrackById\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrackList.length",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.videoTracks;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.VideoTrackList.selectedIndex",
      "info": {
        "code": "(function () {\n  var el = document.getElementById(\"resource-video-blank\");\n  var instance = el.videoTracks;\n  return !!instance && \"selectedIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.ViewTimeline",
      "info": {
        "code": "\"ViewTimeline\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTimeline.ViewTimeline",
      "info": {
        "code": "bcd.testConstructor('ViewTimeline')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: ViewTimeline is not defined"
    },
    {
      "name": "api.ViewTimeline.endOffset",
      "info": {
        "code": "\"ViewTimeline\" in self && \"endOffset\" in ViewTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTimeline.startOffset",
      "info": {
        "code": "\"ViewTimeline\" in self && \"startOffset\" in ViewTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTimeline.subject",
      "info": {
        "code": "\"ViewTimeline\" in self && \"subject\" in ViewTimeline.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition",
      "info": {
        "code": "\"ViewTransition\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.finished",
      "info": {
        "code": "\"ViewTransition\" in self && \"finished\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.ready",
      "info": {
        "code": "\"ViewTransition\" in self && \"ready\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.skipTransition",
      "info": {
        "code": "\"ViewTransition\" in self && \"skipTransition\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.transitionRoot",
      "info": {
        "code": "\"ViewTransition\" in self && \"transitionRoot\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.types",
      "info": {
        "code": "\"ViewTransition\" in self && \"types\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.updateCallbackDone",
      "info": {
        "code": "\"ViewTransition\" in self && \"updateCallbackDone\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransition.waitUntil",
      "info": {
        "code": "\"ViewTransition\" in self && \"waitUntil\" in ViewTransition.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"ViewTransitionTypeSet\" in self && !!(ViewTransitionTypeSet.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.add",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"add\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.clear",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"clear\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.delete",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"delete\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.entries",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"entries\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.forEach",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"forEach\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.has",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"has\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.keys",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"keys\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.size",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"size\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.ViewTransitionTypeSet.values",
      "info": {
        "code": "\"ViewTransitionTypeSet\" in self && \"values\" in ViewTransitionTypeSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Viewport",
      "info": {
        "code": "\"Viewport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Viewport.segments",
      "info": {
        "code": "\"Viewport\" in self && \"segments\" in Viewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VirtualKeyboard",
      "info": {
        "code": "\"VirtualKeyboard\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VirtualKeyboard.boundingRect",
      "info": {
        "code": "\"VirtualKeyboard\" in self && \"boundingRect\" in VirtualKeyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VirtualKeyboard.hide",
      "info": {
        "code": "\"VirtualKeyboard\" in self && \"hide\" in VirtualKeyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VirtualKeyboard.overlaysContent",
      "info": {
        "code": "\"VirtualKeyboard\" in self && \"overlaysContent\" in VirtualKeyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VirtualKeyboard.show",
      "info": {
        "code": "\"VirtualKeyboard\" in self && \"show\" in VirtualKeyboard.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisibilityStateEntry",
      "info": {
        "code": "\"VisibilityStateEntry\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisibilityStateEntry.duration",
      "info": {
        "code": "\"VisibilityStateEntry\" in self && \"duration\" in VisibilityStateEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisibilityStateEntry.entryType",
      "info": {
        "code": "\"VisibilityStateEntry\" in self && \"entryType\" in VisibilityStateEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisibilityStateEntry.name",
      "info": {
        "code": "\"VisibilityStateEntry\" in self && \"name\" in VisibilityStateEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisibilityStateEntry.startTime",
      "info": {
        "code": "\"VisibilityStateEntry\" in self && \"startTime\" in VisibilityStateEntry.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport",
      "info": {
        "code": "\"VisualViewport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.height",
      "info": {
        "code": "\"VisualViewport\" in self && \"height\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.offsetLeft",
      "info": {
        "code": "\"VisualViewport\" in self && \"offsetLeft\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.offsetTop",
      "info": {
        "code": "\"VisualViewport\" in self && \"offsetTop\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.pageLeft",
      "info": {
        "code": "\"VisualViewport\" in self && \"pageLeft\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.pageTop",
      "info": {
        "code": "\"VisualViewport\" in self && \"pageTop\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.scale",
      "info": {
        "code": "\"VisualViewport\" in self && \"scale\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.VisualViewport.width",
      "info": {
        "code": "\"VisualViewport\" in self && \"width\" in VisualViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WEBGL_blend_equation_advanced_coherent",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_blend_equation_advanced_coherent\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_clip_cull_distance",
      "info": {
        "code": "\"WEBGL_clip_cull_distance\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WEBGL_color_buffer_float",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\n    \"WEBGL_color_buffer_float\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_astc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_astc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_astc.getSupportedProfiles",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_astc\"\n  );\n  return !!instance && \"getSupportedProfiles\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_etc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_etc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_etc1",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_etc1\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_pvrtc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_pvrtc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_s3tc",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_s3tc\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_compressed_texture_s3tc_srgb",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_compressed_texture_s3tc_srgb\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_debug_renderer_info",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_debug_renderer_info\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_debug_shaders",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_debug_shaders\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_debug_shaders.getTranslatedShaderSource",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_debug_shaders\");\n  return !!instance && \"getTranslatedShaderSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_depth_texture",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"WEBGL_depth_texture\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WEBGL_draw_buffers",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"WEBGL_draw_buffers\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WEBGL_draw_buffers.drawBuffersWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var instance = reusableInstances.webGL1.getExtension(\"WEBGL_draw_buffers\");\n  return !!instance && \"drawBuffersWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WEBGL_draw_instanced_base_vertex_base_instance",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_draw_instanced_base_vertex_base_instance\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_draw_instanced_base_vertex_base_instance.drawArraysInstancedBaseInstanceWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_draw_instanced_base_vertex_base_instance\"\n  );\n  return !!instance && \"drawArraysInstancedBaseInstanceWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_draw_instanced_base_vertex_base_instance.drawElementsInstancedBaseVertexBaseInstanceWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_draw_instanced_base_vertex_base_instance\"\n  );\n  return (\n    !!instance && \"drawElementsInstancedBaseVertexBaseInstanceWEBGL\" in instance\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_lose_context",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_lose_context\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_lose_context.loseContext",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_lose_context\");\n  return !!instance && \"loseContext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_lose_context.restoreContext",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_lose_context\");\n  return !!instance && \"restoreContext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_multi_draw\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw.multiDrawArraysInstancedWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_multi_draw\");\n  return !!instance && \"multiDrawArraysInstancedWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw.multiDrawArraysWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_multi_draw\");\n  return !!instance && \"multiDrawArraysWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw.multiDrawElementsInstancedWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_multi_draw\");\n  return !!instance && \"multiDrawElementsInstancedWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw.multiDrawElementsWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\"WEBGL_multi_draw\");\n  return !!instance && \"multiDrawElementsWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw_instanced_base_vertex_base_instance",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_multi_draw_instanced_base_vertex_base_instance\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw_instanced_base_vertex_base_instance.multiDrawArraysInstancedBaseInstanceWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_multi_draw_instanced_base_vertex_base_instance\"\n  );\n  return !!instance && \"multiDrawArraysInstancedBaseInstanceWEBGL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_multi_draw_instanced_base_vertex_base_instance.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL) {\n    return { result: false, message: \"WebGL is not available\" };\n  }\n  var instance = reusableInstances.webGL.getExtension(\n    \"WEBGL_multi_draw_instanced_base_vertex_base_instance\"\n  );\n  return (\n    !!instance &&\n    \"multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL\" in instance\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL is not available"
    },
    {
      "name": "api.WEBGL_provoking_vertex",
      "info": {
        "code": "\"WEBGL_provoking_vertex\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WEBGL_provoking_vertex.provokingVertexWEBGL",
      "info": {
        "code": "\"WEBGL_provoking_vertex\" in self && \"provokingVertexWEBGL\" in WEBGL_provoking_vertex.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"WGSLLanguageFeatures\" in self && !!(WGSLLanguageFeatures.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.entries",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"entries\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.forEach",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"forEach\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.has",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"has\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.keys",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"keys\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.size",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"size\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WGSLLanguageFeatures.values",
      "info": {
        "code": "\"WGSLLanguageFeatures\" in self && \"values\" in WGSLLanguageFeatures.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLock",
      "info": {
        "code": "\"WakeLock\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLock.request",
      "info": {
        "code": "\"WakeLock\" in self && \"request\" in WakeLock.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLockSentinel",
      "info": {
        "code": "\"WakeLockSentinel\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLockSentinel.release",
      "info": {
        "code": "\"WakeLockSentinel\" in self && \"release\" in WakeLockSentinel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLockSentinel.released",
      "info": {
        "code": "\"WakeLockSentinel\" in self && \"released\" in WakeLockSentinel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WakeLockSentinel.type",
      "info": {
        "code": "\"WakeLockSentinel\" in self && \"type\" in WakeLockSentinel.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WaveShaperNode",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createWaveShaper\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createWaveShaper is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createWaveShaper();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.WaveShaperNode.WaveShaperNode",
      "info": {
        "code": "bcd.testConstructor('WaveShaperNode')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WaveShaperNode is not defined"
    },
    {
      "name": "api.WaveShaperNode.curve",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createWaveShaper\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createWaveShaper is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createWaveShaper();\n  return !!instance && \"curve\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.WaveShaperNode.oversample",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.audioContext) {\n    return { result: false, message: \"Audio context is not available\" };\n  }\n  if (!(\"createWaveShaper\" in reusableInstances.audioContext)) {\n    return {\n      result: false,\n      message: \"audioContext.createWaveShaper is not defined\"\n    };\n  }\n  var instance = reusableInstances.audioContext.createWaveShaper();\n  return !!instance && \"oversample\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Audio context is not available"
    },
    {
      "name": "api.WebGL2RenderingContext",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.activeTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"activeTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.attachShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"attachShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.beginQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"beginQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.beginTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"beginTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindAttribLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindAttribLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindBufferBase",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindBufferBase\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindBufferRange",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindBufferRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindSampler",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindSampler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bindVertexArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bindVertexArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blendColor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blendColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blendEquation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blendEquation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blendEquationSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blendEquationSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blendFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blendFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blendFuncSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blendFuncSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.blitFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"blitFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bufferData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bufferData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.bufferSubData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"bufferSubData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.canvas",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"canvas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.checkFramebufferStatus",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"checkFramebufferStatus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clear",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearBufferfi",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearBufferfi\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearBufferfv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearBufferfv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearBufferiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearBufferiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearBufferuiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearBufferuiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearColor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearDepth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearDepth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clearStencil",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clearStencil\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.clientWaitSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"clientWaitSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.colorMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"colorMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.compileShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"compileShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.compressedTexImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"compressedTexImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.compressedTexImage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"compressedTexImage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.compressedTexSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"compressedTexSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.compressedTexSubImage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"compressedTexSubImage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.copyBufferSubData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"copyBufferSubData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.copyTexImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"copyTexImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.copyTexSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"copyTexSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.copyTexSubImage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"copyTexSubImage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createSampler",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createSampler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.createVertexArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"createVertexArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.cullFace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"cullFace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteSampler",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteSampler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.deleteVertexArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"deleteVertexArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.depthFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"depthFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.depthMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"depthMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.depthRange",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"depthRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.detachShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"detachShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.disable",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"disable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.disableVertexAttribArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"disableVertexAttribArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawArrays",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawArrays\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawArraysInstanced",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawArraysInstanced\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawBuffers",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawBuffers\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawElements",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawElementsInstanced",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawElementsInstanced\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawRangeElements",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawRangeElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawingBufferColorSpace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawingBufferColorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawingBufferFormat",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawingBufferFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawingBufferHeight",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawingBufferHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawingBufferStorage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawingBufferStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.drawingBufferWidth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"drawingBufferWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.enable",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"enable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.enableVertexAttribArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"enableVertexAttribArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.endQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"endQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.endTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"endTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.fenceSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"fenceSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.finish",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"finish\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.flush",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"flush\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.framebufferRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"framebufferRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.framebufferTexture2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"framebufferTexture2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.framebufferTextureLayer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"framebufferTextureLayer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.frontFace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"frontFace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.generateMipmap",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"generateMipmap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getActiveAttrib",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getActiveAttrib\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getActiveUniform",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getActiveUniform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getActiveUniformBlockName",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getActiveUniformBlockName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getActiveUniformBlockParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getActiveUniformBlockParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getActiveUniforms",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getActiveUniforms\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getAttachedShaders",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getAttachedShaders\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getAttribLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getAttribLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getBufferParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getBufferParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getBufferSubData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getBufferSubData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getContextAttributes",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getContextAttributes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getError",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getError\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getExtension",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getExtension\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getFragDataLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getFragDataLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getFramebufferAttachmentParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getFramebufferAttachmentParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getIndexedParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getIndexedParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getInternalformatParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getInternalformatParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getProgramInfoLog",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getProgramInfoLog\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getProgramParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getProgramParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getQueryParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getQueryParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getRenderbufferParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getRenderbufferParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getSamplerParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getSamplerParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getShaderInfoLog",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getShaderInfoLog\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getShaderParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getShaderParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getShaderPrecisionFormat",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getShaderPrecisionFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getShaderSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getShaderSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getSupportedExtensions",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getSupportedExtensions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getSyncParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getSyncParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getTexParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getTexParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getTransformFeedbackVarying",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getTransformFeedbackVarying\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getUniform",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getUniform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getUniformBlockIndex",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getUniformBlockIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getUniformIndices",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getUniformIndices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getUniformLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getUniformLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getVertexAttrib",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getVertexAttrib\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.getVertexAttribOffset",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"getVertexAttribOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.hint",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"hint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.invalidateFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"invalidateFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.invalidateSubFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"invalidateSubFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isContextLost",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isContextLost\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isEnabled",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isQuery",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isQuery\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isSampler",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isSampler\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.isVertexArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"isVertexArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.lineWidth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"lineWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.linkProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"linkProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.makeXRCompatible",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"makeXRCompatible\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.pauseTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"pauseTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.pixelStorei",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"pixelStorei\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.polygonOffset",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"polygonOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.readBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"readBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.readPixels",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"readPixels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.renderbufferStorage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"renderbufferStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.renderbufferStorageMultisample",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"renderbufferStorageMultisample\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.resumeTransformFeedback",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"resumeTransformFeedback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.sampleCoverage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"sampleCoverage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.samplerParameterf",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"samplerParameterf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.samplerParameteri",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"samplerParameteri\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.scissor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"scissor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.shaderSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"shaderSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilFuncSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilFuncSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilMaskSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilMaskSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilOp",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilOp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.stencilOpSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"stencilOpSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texImage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texImage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texParameterf",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texParameterf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texParameteri",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texParameteri\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texStorage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texStorage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texStorage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texStorage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.texSubImage3D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"texSubImage3D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.transformFeedbackVaryings",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"transformFeedbackVaryings\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1ui",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1ui\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform1uiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform1uiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2ui",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2ui\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform2uiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform2uiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3ui",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3ui\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform3uiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform3uiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4ui",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4ui\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniform4uiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniform4uiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformBlockBinding",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformBlockBinding\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix2x3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix2x3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix2x4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix2x4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix3x2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix3x2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix3x4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix3x4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix4x2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix4x2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.uniformMatrix4x3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"uniformMatrix4x3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.unpackColorSpace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"unpackColorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.useProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"useProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.validateProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"validateProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib1f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib1f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib1fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib1fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib2f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib2f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib3f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib3f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib4f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib4f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttrib4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttrib4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribDivisor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribDivisor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribI4i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribI4i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribI4iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribI4iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribI4ui",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribI4ui\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribI4uiv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribI4uiv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribIPointer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribIPointer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.vertexAttribPointer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"vertexAttribPointer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.viewport",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"viewport\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGL2RenderingContext.waitSync",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL2;\n  return !!instance && \"waitSync\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLActiveInfo",
      "info": {
        "code": "\"WebGLActiveInfo\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLActiveInfo.name",
      "info": {
        "code": "\"WebGLActiveInfo\" in self && \"name\" in WebGLActiveInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLActiveInfo.size",
      "info": {
        "code": "\"WebGLActiveInfo\" in self && \"size\" in WebGLActiveInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLActiveInfo.type",
      "info": {
        "code": "\"WebGLActiveInfo\" in self && \"type\" in WebGLActiveInfo.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLBuffer",
      "info": {
        "code": "\"WebGLBuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLContextEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WebGLContextEvent(\"webglcontextlost\");\n  } catch (e) {\n    if (!(\"document\" in self)) {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    try {\n      instance = document.createEvent(\"WebGLContextEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot create event"
    },
    {
      "name": "api.WebGLContextEvent.WebGLContextEvent",
      "info": {
        "code": "bcd.testConstructor('WebGLContextEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebGLContextEvent is not defined"
    },
    {
      "name": "api.WebGLContextEvent.statusMessage",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WebGLContextEvent(\"webglcontextlost\");\n  } catch (e) {\n    if (!(\"document\" in self)) {\n      return { result: false, message: \"Cannot create event\" };\n    }\n    try {\n      instance = document.createEvent(\"WebGLContextEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"statusMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Cannot create event"
    },
    {
      "name": "api.WebGLFramebuffer",
      "info": {
        "code": "\"WebGLFramebuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLObject",
      "info": {
        "code": "\"WebGLObject\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLObject.label",
      "info": {
        "code": "\"WebGLObject\" in self && \"label\" in WebGLObject.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLProgram",
      "info": {
        "code": "\"WebGLProgram\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLQuery",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  if (!(\"createQuery\" in reusableInstances.webGL2)) {\n    return {\n      result: false,\n      message: \"WebGL2RenderingContext.createQuery() is not defined\"\n    };\n  }\n  var instance = reusableInstances.webGL2.createQuery();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.WebGLRenderbuffer",
      "info": {
        "code": "\"WebGLRenderbuffer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.activeTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"activeTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.attachShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"attachShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bindAttribLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bindAttribLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bindBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bindBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bindFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bindFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bindRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bindRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bindTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bindTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.blendColor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"blendColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.blendEquation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"blendEquation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.blendEquationSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"blendEquationSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.blendFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"blendFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.blendFuncSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"blendFuncSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bufferData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bufferData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.bufferSubData",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"bufferSubData\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.canvas",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"canvas\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.checkFramebufferStatus",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"checkFramebufferStatus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.clear",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"clear\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.clearColor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"clearColor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.clearDepth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"clearDepth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.clearStencil",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"clearStencil\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.colorMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"colorMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.compileShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"compileShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.compressedTexImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"compressedTexImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.compressedTexSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"compressedTexSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.copyTexImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"copyTexImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.copyTexSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"copyTexSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.createTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"createTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.cullFace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"cullFace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.deleteTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"deleteTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.depthFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"depthFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.depthMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"depthMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.depthRange",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"depthRange\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.detachShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"detachShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.disable",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"disable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.disableVertexAttribArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"disableVertexAttribArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawArrays",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawArrays\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawElements",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawingBufferColorSpace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawingBufferColorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawingBufferFormat",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawingBufferFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawingBufferHeight",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawingBufferHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawingBufferStorage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawingBufferStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.drawingBufferWidth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"drawingBufferWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.enable",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"enable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.enableVertexAttribArray",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"enableVertexAttribArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.finish",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"finish\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.flush",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"flush\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.framebufferRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"framebufferRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.framebufferTexture2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"framebufferTexture2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.frontFace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"frontFace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.generateMipmap",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"generateMipmap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getActiveAttrib",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getActiveAttrib\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getActiveUniform",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getActiveUniform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getAttachedShaders",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getAttachedShaders\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getAttribLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getAttribLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getBufferParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getBufferParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getContextAttributes",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getContextAttributes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getError",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getError\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getExtension",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getExtension\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getFramebufferAttachmentParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getFramebufferAttachmentParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getProgramInfoLog",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getProgramInfoLog\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getProgramParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getProgramParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getRenderbufferParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getRenderbufferParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getShaderInfoLog",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getShaderInfoLog\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getShaderParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getShaderParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getShaderPrecisionFormat",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getShaderPrecisionFormat\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getShaderSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getShaderSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getSupportedExtensions",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getSupportedExtensions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getTexParameter",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getTexParameter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getUniform",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getUniform\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getUniformLocation",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getUniformLocation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getVertexAttrib",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getVertexAttrib\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.getVertexAttribOffset",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"getVertexAttribOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.hint",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"hint\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isBuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isBuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isContextLost",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isContextLost\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isEnabled",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isEnabled\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isFramebuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isFramebuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isRenderbuffer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isRenderbuffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isShader",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isShader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.isTexture",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"isTexture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.lineWidth",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"lineWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.linkProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"linkProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.makeXRCompatible",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  if (!(\"xr\" in navigator)) {\n    // Safari briefly exposes this when WebXR isn't implemented\n    return { result: false, message: \"navigator.xr is not defined\" };\n  }\n  return !!instance && \"makeXRCompatible\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.WebGLRenderingContext.pixelStorei",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"pixelStorei\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.polygonOffset",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"polygonOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.readPixels",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"readPixels\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.renderbufferStorage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"renderbufferStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.sampleCoverage",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"sampleCoverage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.scissor",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"scissor\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.shaderSource",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"shaderSource\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilFunc",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilFunc\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilFuncSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilFuncSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilMask",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilMask\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilMaskSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilMaskSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilOp",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilOp\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.stencilOpSeparate",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"stencilOpSeparate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.texImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"texImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.texParameterf",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"texParameterf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.texParameteri",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"texParameteri\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.texSubImage2D",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"texSubImage2D\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform1f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform1f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform1fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform1fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform1i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform1i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform1iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform1iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform2f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform2f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform2i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform2i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform2iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform2iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform3f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform3f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform3i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform3i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform3iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform3iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform4f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform4f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform4i",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform4i\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniform4iv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniform4iv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniformMatrix2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniformMatrix2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniformMatrix3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniformMatrix3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.uniformMatrix4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"uniformMatrix4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.unpackColorSpace",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"unpackColorSpace\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.useProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"useProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.validateProgram",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"validateProgram\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib1f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib1f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib1fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib1fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib2f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib2f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib2fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib2fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib3f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib3f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib3fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib3fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib4f",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib4f\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttrib4fv",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttrib4fv\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.vertexAttribPointer",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"vertexAttribPointer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLRenderingContext.viewport",
      "info": {
        "code": "(function () {\n  var instance = reusableInstances.webGL1;\n  return !!instance && \"viewport\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLSampler",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  if (!(\"createSampler\" in reusableInstances.webGL2)) {\n    return {\n      result: false,\n      message: \"WebGL2RenderingContext.createSampler() is not defined\"\n    };\n  }\n  var instance = reusableInstances.webGL2.createSampler();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.WebGLShader",
      "info": {
        "code": "\"WebGLShader\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLShaderPrecisionFormat",
      "info": {
        "code": "\"WebGLShaderPrecisionFormat\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLShaderPrecisionFormat.precision",
      "info": {
        "code": "\"WebGLShaderPrecisionFormat\" in self && \"precision\" in WebGLShaderPrecisionFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLShaderPrecisionFormat.rangeMax",
      "info": {
        "code": "\"WebGLShaderPrecisionFormat\" in self && \"rangeMax\" in WebGLShaderPrecisionFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLShaderPrecisionFormat.rangeMin",
      "info": {
        "code": "\"WebGLShaderPrecisionFormat\" in self && \"rangeMin\" in WebGLShaderPrecisionFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLSync",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL2) {\n    return { result: false, message: \"WebGL 2 is not available\" };\n  }\n  if (!(\"fenceSync\" in reusableInstances.webGL2)) {\n    return {\n      result: false,\n      message: \"WebGL2RenderingContext.fenceSync() is not defined\"\n    };\n  }\n  var instance = reusableInstances.webGL2.fenceSync(\n    reusableInstances.webGL2.SYNC_GPU_COMMANDS_COMPLETE,\n    0\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 2 is not available"
    },
    {
      "name": "api.WebGLTexture",
      "info": {
        "code": "\"WebGLTexture\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLTimerQueryEXT",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var ext = reusableInstances.webGL1.getExtension(\"EXT_disjoint_timer_query\");\n  if (!ext) {\n    return { result: false, message: \"ext is falsy\" };\n  }\n  var instance = ext.createQueryEXT();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WebGLTransformFeedback",
      "info": {
        "code": "\"WebGLTransformFeedback\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLUniformLocation",
      "info": {
        "code": "\"WebGLUniformLocation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLVertexArrayObject",
      "info": {
        "code": "\"WebGLVertexArrayObject\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebGLVertexArrayObjectOES",
      "info": {
        "code": "(function () {\n  if (!reusableInstances.webGL1) {\n    return { result: false, message: \"WebGL 1 is not available\" };\n  }\n  var ext = reusableInstances.webGL1.getExtension(\"OES_vertex_array_object\");\n  if (!ext) {\n    return { result: false, message: \"ext is falsy\" };\n  }\n  var instance = ext.createVertexArrayOES();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "WebGL 1 is not available"
    },
    {
      "name": "api.WebKitPoint",
      "info": {
        "code": "\"WebKitPoint\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebKitPoint.WebKitPoint",
      "info": {
        "code": "bcd.testConstructor('WebKitPoint')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebKitPoint is not defined"
    },
    {
      "name": "api.WebKitPoint.x",
      "info": {
        "code": "\"WebKitPoint\" in self && \"x\" in WebKitPoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebKitPoint.y",
      "info": {
        "code": "\"WebKitPoint\" in self && \"y\" in WebKitPoint.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocket",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.WebSocket",
      "info": {
        "code": "bcd.testConstructor('WebSocket')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebSocket is not defined"
    },
    {
      "name": "api.WebSocket.binaryType",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"binaryType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.bufferedAmount",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"bufferedAmount\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.close",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.extensions",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"extensions\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.protocol",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"protocol\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.readyState",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.send",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"send\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocket.url",
      "info": {
        "code": "(function () {\n  var constructor = self.WebSocket || self.MozWebSocket;\n  if (!constructor) {\n    return { result: false, message: \"(Moz)WebSocket is not defined or falsy\" };\n  }\n  var instance = new constructor(\"wss://echo.websocket.org\");\n  bcd.addCleanup(function () {\n    instance.close();\n  });\n  return !!instance && \"url\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "(Moz)WebSocket is not defined or falsy"
    },
    {
      "name": "api.WebSocketError",
      "info": {
        "code": "\"WebSocketError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketError.WebSocketError",
      "info": {
        "code": "bcd.testConstructor('WebSocketError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebSocketError is not defined"
    },
    {
      "name": "api.WebSocketError.closeCode",
      "info": {
        "code": "\"WebSocketError\" in self && \"closeCode\" in WebSocketError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketError.reason",
      "info": {
        "code": "\"WebSocketError\" in self && \"reason\" in WebSocketError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketStream",
      "info": {
        "code": "\"WebSocketStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketStream.WebSocketStream",
      "info": {
        "code": "bcd.testConstructor('WebSocketStream')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebSocketStream is not defined"
    },
    {
      "name": "api.WebSocketStream.close",
      "info": {
        "code": "\"WebSocketStream\" in self && \"close\" in WebSocketStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketStream.closed",
      "info": {
        "code": "\"WebSocketStream\" in self && \"closed\" in WebSocketStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketStream.opened",
      "info": {
        "code": "\"WebSocketStream\" in self && \"opened\" in WebSocketStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebSocketStream.url",
      "info": {
        "code": "\"WebSocketStream\" in self && \"url\" in WebSocketStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport",
      "info": {
        "code": "\"WebTransport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.WebTransport",
      "info": {
        "code": "bcd.testConstructor('WebTransport')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebTransport is not defined"
    },
    {
      "name": "api.WebTransport.anticipatedConcurrentIncomingBidirectionalStreams",
      "info": {
        "code": "\"WebTransport\" in self && \"anticipatedConcurrentIncomingBidirectionalStreams\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.anticipatedConcurrentIncomingUnidirectionalStreams",
      "info": {
        "code": "\"WebTransport\" in self && \"anticipatedConcurrentIncomingUnidirectionalStreams\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.close",
      "info": {
        "code": "\"WebTransport\" in self && \"close\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.closed",
      "info": {
        "code": "\"WebTransport\" in self && \"closed\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.congestionControl",
      "info": {
        "code": "\"WebTransport\" in self && \"congestionControl\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.createBidirectionalStream",
      "info": {
        "code": "\"WebTransport\" in self && \"createBidirectionalStream\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.createSendGroup",
      "info": {
        "code": "\"WebTransport\" in self && \"createSendGroup\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.createUnidirectionalStream",
      "info": {
        "code": "\"WebTransport\" in self && \"createUnidirectionalStream\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.datagrams",
      "info": {
        "code": "\"WebTransport\" in self && \"datagrams\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.draining",
      "info": {
        "code": "\"WebTransport\" in self && \"draining\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.exportKeyingMaterial",
      "info": {
        "code": "\"WebTransport\" in self && \"exportKeyingMaterial\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.getStats",
      "info": {
        "code": "\"WebTransport\" in self && \"getStats\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.incomingBidirectionalStreams",
      "info": {
        "code": "\"WebTransport\" in self && \"incomingBidirectionalStreams\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.incomingUnidirectionalStreams",
      "info": {
        "code": "\"WebTransport\" in self && \"incomingUnidirectionalStreams\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.protocol",
      "info": {
        "code": "\"WebTransport\" in self && \"protocol\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.ready",
      "info": {
        "code": "\"WebTransport\" in self && \"ready\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.reliability",
      "info": {
        "code": "\"WebTransport\" in self && \"reliability\" in WebTransport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransport.supportsReliableOnly_static",
      "info": {
        "code": "\"WebTransport\" in self && \"supportsReliableOnly\" in WebTransport",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportBidirectionalStream",
      "info": {
        "code": "\"WebTransportBidirectionalStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportBidirectionalStream.readable",
      "info": {
        "code": "\"WebTransportBidirectionalStream\" in self && \"readable\" in WebTransportBidirectionalStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportBidirectionalStream.writable",
      "info": {
        "code": "\"WebTransportBidirectionalStream\" in self && \"writable\" in WebTransportBidirectionalStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.createWritable",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"createWritable\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.incomingHighWaterMark",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"incomingHighWaterMark\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.incomingMaxAge",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"incomingMaxAge\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.maxDatagramSize",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"maxDatagramSize\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.outgoingHighWaterMark",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"outgoingHighWaterMark\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.outgoingMaxAge",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"outgoingMaxAge\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.readable",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"readable\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramDuplexStream.writable",
      "info": {
        "code": "\"WebTransportDatagramDuplexStream\" in self && \"writable\" in WebTransportDatagramDuplexStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramsWritable",
      "info": {
        "code": "\"WebTransportDatagramsWritable\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramsWritable.sendGroup",
      "info": {
        "code": "\"WebTransportDatagramsWritable\" in self && \"sendGroup\" in WebTransportDatagramsWritable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportDatagramsWritable.sendOrder",
      "info": {
        "code": "\"WebTransportDatagramsWritable\" in self && \"sendOrder\" in WebTransportDatagramsWritable.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportError",
      "info": {
        "code": "\"WebTransportError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportError.WebTransportError",
      "info": {
        "code": "bcd.testConstructor('WebTransportError')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WebTransportError is not defined"
    },
    {
      "name": "api.WebTransportError.source",
      "info": {
        "code": "\"WebTransportError\" in self && \"source\" in WebTransportError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportError.streamErrorCode",
      "info": {
        "code": "\"WebTransportError\" in self && \"streamErrorCode\" in WebTransportError.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportReceiveStream",
      "info": {
        "code": "\"WebTransportReceiveStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportReceiveStream.getStats",
      "info": {
        "code": "\"WebTransportReceiveStream\" in self && \"getStats\" in WebTransportReceiveStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendGroup",
      "info": {
        "code": "\"WebTransportSendGroup\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendGroup.getStats",
      "info": {
        "code": "\"WebTransportSendGroup\" in self && \"getStats\" in WebTransportSendGroup.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendStream",
      "info": {
        "code": "\"WebTransportSendStream\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendStream.getStats",
      "info": {
        "code": "\"WebTransportSendStream\" in self && \"getStats\" in WebTransportSendStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendStream.getWriter",
      "info": {
        "code": "\"WebTransportSendStream\" in self && \"getWriter\" in WebTransportSendStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendStream.sendGroup",
      "info": {
        "code": "\"WebTransportSendStream\" in self && \"sendGroup\" in WebTransportSendStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportSendStream.sendOrder",
      "info": {
        "code": "\"WebTransportSendStream\" in self && \"sendOrder\" in WebTransportSendStream.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportWriter",
      "info": {
        "code": "\"WebTransportWriter\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportWriter.atomicWrite",
      "info": {
        "code": "\"WebTransportWriter\" in self && \"atomicWrite\" in WebTransportWriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WebTransportWriter.commit",
      "info": {
        "code": "\"WebTransportWriter\" in self && \"commit\" in WebTransportWriter.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WheelEvent",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.WheelEvent",
      "info": {
        "code": "bcd.testConstructor('WheelEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WheelEvent is not defined"
    },
    {
      "name": "api.WheelEvent.deltaMode",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"deltaMode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.deltaX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"deltaX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.deltaY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"deltaY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.deltaZ",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"deltaZ\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.wheelDelta",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"wheelDelta\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.wheelDeltaX",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"wheelDeltaX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.WheelEvent.wheelDeltaY",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    instance = new WheelEvent(\"wheel\");\n  } catch (e) {\n    try {\n      instance = document.createEvent(\"WheelEvent\");\n    } catch (e) {\n      if (e.name === \"NotSupportedError\" || e.name === \"NOT_SUPPORTED_ERR\") {\n        return { result: false, message: \"Cannot create event\" };\n      }\n      throw e;\n    }\n  }\n  return !!instance && \"wheelDeltaY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: document is not defined"
    },
    {
      "name": "api.Window",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.alert",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"alert\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.blur",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"blur\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.cancelAnimationFrame",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"cancelAnimationFrame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.cancelIdleCallback",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"cancelIdleCallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.captureEvents",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"captureEvents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.clearImmediate",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"clearImmediate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.close",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.closed",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"closed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.confirm",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"confirm\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.cookieStore",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"cookieStore\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.credentialless",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"credentialless\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.customElements",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"customElements\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.devicePixelRatio",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"devicePixelRatio\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.document",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"document\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.documentPictureInPicture",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"documentPictureInPicture\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.dump",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"dump\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.event",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"event\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.external",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"external\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.fence",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"fence\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.fetchLater",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"fetchLater\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.find",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"find\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.focus",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"focus\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.frameElement",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"frameElement\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.frames",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"frames\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.fullScreen",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"fullScreen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.getComputedStyle",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"getComputedStyle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.getDefaultComputedStyle",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"getDefaultComputedStyle\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.getDigitalGoodsService",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"getDigitalGoodsService\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.getScreenDetails",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"getScreenDetails\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.getSelection",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"getSelection\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.history",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"history\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.innerHeight",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"innerHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.innerWidth",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"innerWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.launchQueue",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"launchQueue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.length",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.localStorage",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"localStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.location",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"location\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.locationbar",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"locationbar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.matchMedia",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"matchMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.menubar",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"menubar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.moveBy",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"moveBy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.moveTo",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"moveTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.mozInnerScreenX",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"mozInnerScreenX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.mozInnerScreenY",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"mozInnerScreenY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.name",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.navigate",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"navigate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.navigation",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"navigation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.navigator",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"navigator\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.open",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.opener",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"opener\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.orientation",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"orientation\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.originAgentCluster",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"originAgentCluster\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.outerHeight",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"outerHeight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.outerWidth",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"outerWidth\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.parent",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"parent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.personalbar",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"personalbar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.portalHost",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"portalHost\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.postMessage",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"postMessage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.postMessage.options_delegate_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  function postMessage(options) {\n    window.postMessage(\"\", options);\n  }\n  try {\n    return bcd.testOptionParam(postMessage, null, \"delegate\", \"test\");\n  } catch (e) {\n    if (\n      e.name === \"NotSupportedError\" &&\n      stringIncludes(e.message, \"Delegation of 'test' is not supported.\")\n    ) {\n      return true;\n    }\n    throw e;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.postMessage.options_includeUserActivation_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  function postMessage(options) {\n    window.postMessage(\"\", options);\n  }\n  return bcd.testOptionParam(postMessage, null, \"includeUserActivation\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.print",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"print\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.prompt",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"prompt\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.pushManager",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"pushManager\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.queryLocalFonts",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"queryLocalFonts\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.releaseEvents",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"releaseEvents\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.requestAnimationFrame",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"requestAnimationFrame\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.requestFileSystem",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"requestFileSystem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.requestIdleCallback",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"requestIdleCallback\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.resizeBy",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"resizeBy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.resizeTo",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"resizeTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.resolveLocalFileSystemURL",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"resolveLocalFileSystemURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.screen",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"screen\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.screenLeft",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"screenLeft\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.screenTop",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"screenTop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.screenX",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"screenX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.screenY",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"screenY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scroll",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scroll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scroll.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scroll\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scroll.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scroll\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scroll.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scroll\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollBy",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollBy\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollBy.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollBy\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollBy.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollBy\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollBy.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollBy\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollByLines",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollByLines\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollByPages",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollByPages\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollMaxX",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollMaxX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollMaxY",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollMaxY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollTo",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollTo\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollTo.options_behavior_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollTo\", \"behavior\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollTo.options_left_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollTo\", \"left\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollTo.options_top_parameter",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return bcd.testOptionParam(instance, \"scrollTo\", \"top\", \"0\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollX",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollX\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollY",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollY\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.scrollbars",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"scrollbars\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.self",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"self\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.sessionStorage",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"sessionStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.setImmediate",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"setImmediate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.setResizable",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"setResizable\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.sharedStorage",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"sharedStorage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.showDirectoryPicker",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"showDirectoryPicker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.showOpenFilePicker",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"showOpenFilePicker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.showSaveFilePicker",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"showSaveFilePicker\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.sizeToContent",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"sizeToContent\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.speechSynthesis",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"speechSynthesis\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.status",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"status\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.statusbar",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"statusbar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.stop",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"stop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.styleMedia",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"styleMedia\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.toolbar",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"toolbar\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.top",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"top\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.updateCommands",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"updateCommands\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.viewport",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"viewport\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.visualViewport",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"visualViewport\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.webkitConvertPointFromNodeToPage",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"webkitConvertPointFromNodeToPage\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.webkitConvertPointFromPageToNode",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"webkitConvertPointFromPageToNode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.Window.window",
      "info": {
        "code": "(function () {\n  var instance = window;\n  return !!instance && \"window\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: window is not defined"
    },
    {
      "name": "api.WindowControlsOverlay",
      "info": {
        "code": "\"WindowControlsOverlay\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowControlsOverlay.getTitlebarAreaRect",
      "info": {
        "code": "\"WindowControlsOverlay\" in self && \"getTitlebarAreaRect\" in WindowControlsOverlay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowControlsOverlay.visible",
      "info": {
        "code": "\"WindowControlsOverlay\" in self && \"visible\" in WindowControlsOverlay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowControlsOverlayGeometryChangeEvent",
      "info": {
        "code": "\"WindowControlsOverlayGeometryChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowControlsOverlayGeometryChangeEvent.WindowControlsOverlayGeometryChangeEvent",
      "info": {
        "code": "bcd.testConstructor('WindowControlsOverlayGeometryChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WindowControlsOverlayGeometryChangeEvent is not defined"
    },
    {
      "name": "api.WindowControlsOverlayGeometryChangeEvent.titlebarAreaRect",
      "info": {
        "code": "\"WindowControlsOverlayGeometryChangeEvent\" in self && \"titlebarAreaRect\" in WindowControlsOverlayGeometryChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowControlsOverlayGeometryChangeEvent.visible",
      "info": {
        "code": "\"WindowControlsOverlayGeometryChangeEvent\" in self && \"visible\" in WindowControlsOverlayGeometryChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowSharedStorage",
      "info": {
        "code": "\"WindowSharedStorage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowSharedStorage.run",
      "info": {
        "code": "\"WindowSharedStorage\" in self && \"run\" in WindowSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowSharedStorage.selectURL",
      "info": {
        "code": "\"WindowSharedStorage\" in self && \"selectURL\" in WindowSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WindowSharedStorage.worklet",
      "info": {
        "code": "\"WindowSharedStorage\" in self && \"worklet\" in WindowSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Worker",
      "info": {
        "code": "\"Worker\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Worker.Worker",
      "info": {
        "code": "bcd.testConstructor('Worker')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: Worker is not defined"
    },
    {
      "name": "api.Worker.postMessage",
      "info": {
        "code": "\"Worker\" in self && \"postMessage\" in Worker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Worker.terminate",
      "info": {
        "code": "\"Worker\" in self && \"terminate\" in Worker.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Worklet",
      "info": {
        "code": "(function () {\n  var instance;\n  if (reusableInstances.audioContext) {\n    instance = reusableInstances.audioContext.audioWorklet;\n  } else {\n    instance = CSS.paintWorklet;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: CSS is not defined"
    },
    {
      "name": "api.Worklet.addModule",
      "info": {
        "code": "(function () {\n  var instance;\n  if (reusableInstances.audioContext) {\n    instance = reusableInstances.audioContext.audioWorklet;\n  } else {\n    instance = CSS.paintWorklet;\n  }\n  return !!instance && \"addModule\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: CSS is not defined"
    },
    {
      "name": "api.WorkletAnimation",
      "info": {
        "code": "\"WorkletAnimation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletAnimation.WorkletAnimation",
      "info": {
        "code": "bcd.testConstructor('WorkletAnimation')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: WorkletAnimation is not defined"
    },
    {
      "name": "api.WorkletAnimation.animatorName",
      "info": {
        "code": "\"WorkletAnimation\" in self && \"animatorName\" in WorkletAnimation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage",
      "info": {
        "code": "\"WorkletSharedStorage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"WorkletSharedStorage\" in self && !!(WorkletSharedStorage.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.clear",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"clear\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.delete",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"delete\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.entries",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"entries\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.forEach",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"forEach\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.get",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"get\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.has",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"has\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.keys",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"keys\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.set",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"set\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.size",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"size\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WorkletSharedStorage.values",
      "info": {
        "code": "\"WorkletSharedStorage\" in self && \"values\" in WorkletSharedStorage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WritableStream",
      "info": {
        "code": "\"WritableStream\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStream.WritableStream",
      "info": {
        "code": "bcd.testConstructor('WritableStream')",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "api.WritableStream.abort",
      "info": {
        "code": "\"WritableStream\" in self && \"abort\" in WritableStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStream.close",
      "info": {
        "code": "\"WritableStream\" in self && \"close\" in WritableStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStream.getWriter",
      "info": {
        "code": "\"WritableStream\" in self && \"getWriter\" in WritableStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStream.locked",
      "info": {
        "code": "\"WritableStream\" in self && \"locked\" in WritableStream.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultController",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var promise = new Promise(function (resolve, reject) {\n    new WritableStream({\n      start(controller) {\n        resolve(controller);\n      }\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.WritableStreamDefaultWriter",
      "info": {
        "code": "bcd.testConstructor('WritableStreamDefaultWriter')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Failed to construct 'WritableStreamDefaultWriter': 1 argument required, but only 0 present."
    },
    {
      "name": "api.WritableStreamDefaultWriter.abort",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"abort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.close",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"close\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.closed",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"closed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.desiredSize",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"desiredSize\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.ready",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"ready\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.releaseLock",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"releaseLock\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultWriter.write",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var instance = new WritableStream({}).getWriter();\n  return !!instance && \"write\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Writer",
      "info": {
        "code": "\"Writer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.availability_static",
      "info": {
        "code": "\"Writer\" in self && \"availability\" in Writer",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.create_static",
      "info": {
        "code": "\"Writer\" in self && \"create\" in Writer",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.destroy",
      "info": {
        "code": "\"Writer\" in self && \"destroy\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.expectedContextLanguages",
      "info": {
        "code": "\"Writer\" in self && \"expectedContextLanguages\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.expectedInputLanguages",
      "info": {
        "code": "\"Writer\" in self && \"expectedInputLanguages\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.format",
      "info": {
        "code": "\"Writer\" in self && \"format\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.inputQuota",
      "info": {
        "code": "\"Writer\" in self && \"inputQuota\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.length",
      "info": {
        "code": "\"Writer\" in self && \"length\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.measureInputUsage",
      "info": {
        "code": "\"Writer\" in self && \"measureInputUsage\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.outputLanguage",
      "info": {
        "code": "\"Writer\" in self && \"outputLanguage\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.sharedContext",
      "info": {
        "code": "\"Writer\" in self && \"sharedContext\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.tone",
      "info": {
        "code": "\"Writer\" in self && \"tone\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.WritableStreamDefaultController.error",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var promise = new Promise(function (resolve, reject) {\n    new WritableStream({\n      start(controller) {\n        resolve(controller);\n      }\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"error\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.WritableStreamDefaultController.signal",
      "info": {
        "code": "(function () {\n  if (!(\"WritableStream\" in self)) {\n    return { result: false, message: \"WritableStream is not defined\" };\n  }\n  var promise = new Promise(function (resolve, reject) {\n    new WritableStream({\n      start(controller) {\n        resolve(controller);\n      }\n    });\n  });\n  if (!promise) {\n    return { result: false, message: \"Promise variable is falsy\" };\n  }\n  return promise.then(function (instance) {\n    return !!instance && \"signal\" in instance;\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.Writer.write",
      "info": {
        "code": "\"Writer\" in self && \"write\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.Writer.writeStreaming",
      "info": {
        "code": "\"Writer\" in self && \"writeStreaming\" in Writer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XMLDocument",
      "info": {
        "code": "\"XMLDocument\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XMLHttpRequest",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.XMLHttpRequest",
      "info": {
        "code": "bcd.testConstructor('XMLHttpRequest')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.abort",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"abort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.getAllResponseHeaders",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"getAllResponseHeaders\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.getResponseHeader",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"getResponseHeader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.open",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"open\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.overrideMimeType",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"overrideMimeType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.readyState",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"readyState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.response",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"response\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseText",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"responseText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseType",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"responseType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseType.arraybuffer_value",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  instance.responseType = \"arraybuffer\";\n  return instance.responseType === \"arraybuffer\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseType.blob_value",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  instance.responseType = \"blob\";\n  return instance.responseType === \"blob\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseType.document_value",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  instance.responseType = \"document\";\n  return instance.responseType === \"document\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseType.json_value",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  instance.responseType = \"json\";\n  return instance.responseType === \"json\";\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseURL",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"responseURL\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.responseXML",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"responseXML\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.send",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"send\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.setAttributionReporting",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"setAttributionReporting\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.setPrivateToken",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"setPrivateToken\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.setRequestHeader",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"setRequestHeader\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.status",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"status\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.statusText",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"statusText\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.timeout",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"timeout\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.upload",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"upload\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequest.withCredentials",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance && \"withCredentials\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequestEventTarget",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var instance = new XMLHttpRequest();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLHttpRequestUpload",
      "info": {
        "code": "(function () {\n  if (!(\"XMLHttpRequest\" in self)) {\n    return { result: false, message: \"XMLHttpRequest is not defined\" };\n  }\n  var xhr = new XMLHttpRequest();\n  if (!xhr) {\n    return { result: false, message: \"xhr is falsy\" };\n  }\n  var instance = xhr.upload;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "XMLHttpRequest is not defined"
    },
    {
      "name": "api.XMLSerializer",
      "info": {
        "code": "\"XMLSerializer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XMLSerializer.XMLSerializer",
      "info": {
        "code": "bcd.testConstructor('XMLSerializer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XMLSerializer is not defined"
    },
    {
      "name": "api.XMLSerializer.serializeToString",
      "info": {
        "code": "\"XMLSerializer\" in self && \"serializeToString\" in XMLSerializer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XPathEvaluator",
      "info": {
        "code": "\"XPathEvaluator\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XPathEvaluator.XPathEvaluator",
      "info": {
        "code": "bcd.testConstructor('XPathEvaluator')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathEvaluator.createExpression",
      "info": {
        "code": "\"XPathEvaluator\" in self && \"createExpression\" in XPathEvaluator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XPathEvaluator.createNSResolver",
      "info": {
        "code": "\"XPathEvaluator\" in self && \"createNSResolver\" in XPathEvaluator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XPathEvaluator.evaluate",
      "info": {
        "code": "\"XPathEvaluator\" in self && \"evaluate\" in XPathEvaluator.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XPathExpression",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var instance = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathExpression.evaluate",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var instance = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  return !!instance && \"evaluate\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.booleanValue",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"booleanValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.invalidIteratorState",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"invalidIteratorState\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.iterateNext",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"iterateNext\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.numberValue",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"numberValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.resultType",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"resultType\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.singleNodeValue",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"singleNodeValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.snapshotItem",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"snapshotItem\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.snapshotLength",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"snapshotLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XPathResult.stringValue",
      "info": {
        "code": "(function () {\n  var xpe = new XPathEvaluator();\n  var exp = xpe.createExpression(\"//div\", xpe.createNSResolver(document));\n  if (!exp) {\n    return { result: false, message: \"exp is falsy\" };\n  }\n  var instance = exp.evaluate(document, 0, null);\n  return !!instance && \"stringValue\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: XPathEvaluator is not defined"
    },
    {
      "name": "api.XRAnchor",
      "info": {
        "code": "\"XRAnchor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchor.anchorSpace",
      "info": {
        "code": "\"XRAnchor\" in self && \"anchorSpace\" in XRAnchor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchor.delete",
      "info": {
        "code": "\"XRAnchor\" in self && \"delete\" in XRAnchor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchor.requestPersistentHandle",
      "info": {
        "code": "\"XRAnchor\" in self && \"requestPersistentHandle\" in XRAnchor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet",
      "info": {
        "code": "\"XRAnchorSet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRAnchorSet\" in self && !!(XRAnchorSet.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.entries",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"entries\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.forEach",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"forEach\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.has",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"has\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.keys",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"keys\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.size",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"size\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRAnchorSet.values",
      "info": {
        "code": "\"XRAnchorSet\" in self && \"values\" in XRAnchorSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody",
      "info": {
        "code": "\"XRBody\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRBody\" in self && !!(XRBody.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.entries",
      "info": {
        "code": "\"XRBody\" in self && \"entries\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.forEach",
      "info": {
        "code": "\"XRBody\" in self && \"forEach\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.get",
      "info": {
        "code": "\"XRBody\" in self && \"get\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.keys",
      "info": {
        "code": "\"XRBody\" in self && \"keys\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.size",
      "info": {
        "code": "\"XRBody\" in self && \"size\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBody.values",
      "info": {
        "code": "\"XRBody\" in self && \"values\" in XRBody.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBodySpace",
      "info": {
        "code": "\"XRBodySpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBodySpace.jointName",
      "info": {
        "code": "\"XRBodySpace\" in self && \"jointName\" in XRBodySpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBoundedReferenceSpace",
      "info": {
        "code": "\"XRBoundedReferenceSpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRBoundedReferenceSpace.boundsGeometry",
      "info": {
        "code": "\"XRBoundedReferenceSpace\" in self && \"boundsGeometry\" in XRBoundedReferenceSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCPUDepthInformation",
      "info": {
        "code": "\"XRCPUDepthInformation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCPUDepthInformation.data",
      "info": {
        "code": "\"XRCPUDepthInformation\" in self && \"data\" in XRCPUDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCPUDepthInformation.getDepthInMeters",
      "info": {
        "code": "\"XRCPUDepthInformation\" in self && \"getDepthInMeters\" in XRCPUDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCamera",
      "info": {
        "code": "\"XRCamera\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCamera.height",
      "info": {
        "code": "\"XRCamera\" in self && \"height\" in XRCamera.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCamera.width",
      "info": {
        "code": "\"XRCamera\" in self && \"width\" in XRCamera.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer",
      "info": {
        "code": "\"XRCompositionLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.blendTextureSourceAlpha",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"blendTextureSourceAlpha\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.destroy",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"destroy\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.forceMonoPresentation",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"forceMonoPresentation\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.layout",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"layout\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.mipLevels",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"mipLevels\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.needsRedraw",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"needsRedraw\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.opacity",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"opacity\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCompositionLayer.quality",
      "info": {
        "code": "\"XRCompositionLayer\" in self && \"quality\" in XRCompositionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCubeLayer",
      "info": {
        "code": "\"XRCubeLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCubeLayer.orientation",
      "info": {
        "code": "\"XRCubeLayer\" in self && \"orientation\" in XRCubeLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCubeLayer.space",
      "info": {
        "code": "\"XRCubeLayer\" in self && \"space\" in XRCubeLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer",
      "info": {
        "code": "\"XRCylinderLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer.aspectRatio",
      "info": {
        "code": "\"XRCylinderLayer\" in self && \"aspectRatio\" in XRCylinderLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer.centralAngle",
      "info": {
        "code": "\"XRCylinderLayer\" in self && \"centralAngle\" in XRCylinderLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer.radius",
      "info": {
        "code": "\"XRCylinderLayer\" in self && \"radius\" in XRCylinderLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer.space",
      "info": {
        "code": "\"XRCylinderLayer\" in self && \"space\" in XRCylinderLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRCylinderLayer.transform",
      "info": {
        "code": "\"XRCylinderLayer\" in self && \"transform\" in XRCylinderLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation",
      "info": {
        "code": "\"XRDepthInformation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.height",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"height\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.normDepthBufferFromNormView",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"normDepthBufferFromNormView\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.projectionMatrix",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"projectionMatrix\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.rawValueToMeters",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"rawValueToMeters\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.transform",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"transform\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRDepthInformation.width",
      "info": {
        "code": "\"XRDepthInformation\" in self && \"width\" in XRDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer",
      "info": {
        "code": "\"XREquirectLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.centralHorizontalAngle",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"centralHorizontalAngle\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.lowerVerticalAngle",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"lowerVerticalAngle\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.radius",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"radius\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.space",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"space\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.transform",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"transform\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XREquirectLayer.upperVerticalAngle",
      "info": {
        "code": "\"XREquirectLayer\" in self && \"upperVerticalAngle\" in XREquirectLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame",
      "info": {
        "code": "\"XRFrame\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.body",
      "info": {
        "code": "\"XRFrame\" in self && \"body\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.createAnchor",
      "info": {
        "code": "\"XRFrame\" in self && \"createAnchor\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.detectedMeshes",
      "info": {
        "code": "\"XRFrame\" in self && \"detectedMeshes\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.detectedPlanes",
      "info": {
        "code": "\"XRFrame\" in self && \"detectedPlanes\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.fillJointRadii",
      "info": {
        "code": "\"XRFrame\" in self && \"fillJointRadii\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.fillPoses",
      "info": {
        "code": "\"XRFrame\" in self && \"fillPoses\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getDepthInformation",
      "info": {
        "code": "\"XRFrame\" in self && \"getDepthInformation\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getHitTestResults",
      "info": {
        "code": "\"XRFrame\" in self && \"getHitTestResults\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getHitTestResultsForTransientInput",
      "info": {
        "code": "\"XRFrame\" in self && \"getHitTestResultsForTransientInput\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getJointPose",
      "info": {
        "code": "\"XRFrame\" in self && \"getJointPose\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getLightEstimate",
      "info": {
        "code": "\"XRFrame\" in self && \"getLightEstimate\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getPose",
      "info": {
        "code": "\"XRFrame\" in self && \"getPose\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.getViewerPose",
      "info": {
        "code": "\"XRFrame\" in self && \"getViewerPose\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.predictedDisplayTime",
      "info": {
        "code": "\"XRFrame\" in self && \"predictedDisplayTime\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.session",
      "info": {
        "code": "\"XRFrame\" in self && \"session\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRFrame.trackedAnchors",
      "info": {
        "code": "\"XRFrame\" in self && \"trackedAnchors\" in XRFrame.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand",
      "info": {
        "code": "\"XRHand\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRHand\" in self && !!(XRHand.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.entries",
      "info": {
        "code": "\"XRHand\" in self && \"entries\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.forEach",
      "info": {
        "code": "\"XRHand\" in self && \"forEach\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.get",
      "info": {
        "code": "\"XRHand\" in self && \"get\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.keys",
      "info": {
        "code": "\"XRHand\" in self && \"keys\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.size",
      "info": {
        "code": "\"XRHand\" in self && \"size\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHand.values",
      "info": {
        "code": "\"XRHand\" in self && \"values\" in XRHand.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHitTestResult",
      "info": {
        "code": "\"XRHitTestResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHitTestResult.createAnchor",
      "info": {
        "code": "\"XRHitTestResult\" in self && \"createAnchor\" in XRHitTestResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHitTestResult.getPose",
      "info": {
        "code": "\"XRHitTestResult\" in self && \"getPose\" in XRHitTestResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHitTestSource",
      "info": {
        "code": "\"XRHitTestSource\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRHitTestSource.cancel",
      "info": {
        "code": "\"XRHitTestSource\" in self && \"cancel\" in XRHitTestSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource",
      "info": {
        "code": "\"XRInputSource\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.gamepad",
      "info": {
        "code": "\"XRInputSource\" in self && \"gamepad\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.gripSpace",
      "info": {
        "code": "\"XRInputSource\" in self && \"gripSpace\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.hand",
      "info": {
        "code": "\"XRInputSource\" in self && \"hand\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.handedness",
      "info": {
        "code": "\"XRInputSource\" in self && \"handedness\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.profiles",
      "info": {
        "code": "\"XRInputSource\" in self && \"profiles\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.skipRendering",
      "info": {
        "code": "\"XRInputSource\" in self && \"skipRendering\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.targetRayMode",
      "info": {
        "code": "\"XRInputSource\" in self && \"targetRayMode\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSource.targetRaySpace",
      "info": {
        "code": "\"XRInputSource\" in self && \"targetRaySpace\" in XRInputSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray",
      "info": {
        "code": "\"XRInputSourceArray\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRInputSourceArray\" in self && !!(XRInputSourceArray.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.entries",
      "info": {
        "code": "\"XRInputSourceArray\" in self && \"entries\" in XRInputSourceArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.forEach",
      "info": {
        "code": "\"XRInputSourceArray\" in self && \"forEach\" in XRInputSourceArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.keys",
      "info": {
        "code": "\"XRInputSourceArray\" in self && \"keys\" in XRInputSourceArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.length",
      "info": {
        "code": "\"XRInputSourceArray\" in self && \"length\" in XRInputSourceArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceArray.values",
      "info": {
        "code": "\"XRInputSourceArray\" in self && \"values\" in XRInputSourceArray.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceEvent",
      "info": {
        "code": "\"XRInputSourceEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceEvent.XRInputSourceEvent",
      "info": {
        "code": "bcd.testConstructor('XRInputSourceEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRInputSourceEvent is not defined"
    },
    {
      "name": "api.XRInputSourceEvent.frame",
      "info": {
        "code": "\"XRInputSourceEvent\" in self && \"frame\" in XRInputSourceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourceEvent.inputSource",
      "info": {
        "code": "\"XRInputSourceEvent\" in self && \"inputSource\" in XRInputSourceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourcesChangeEvent",
      "info": {
        "code": "\"XRInputSourcesChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourcesChangeEvent.XRInputSourcesChangeEvent",
      "info": {
        "code": "bcd.testConstructor('XRInputSourcesChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRInputSourcesChangeEvent is not defined"
    },
    {
      "name": "api.XRInputSourcesChangeEvent.added",
      "info": {
        "code": "\"XRInputSourcesChangeEvent\" in self && \"added\" in XRInputSourcesChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourcesChangeEvent.removed",
      "info": {
        "code": "\"XRInputSourcesChangeEvent\" in self && \"removed\" in XRInputSourcesChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRInputSourcesChangeEvent.session",
      "info": {
        "code": "\"XRInputSourcesChangeEvent\" in self && \"session\" in XRInputSourcesChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRJointPose",
      "info": {
        "code": "\"XRJointPose\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRJointPose.radius",
      "info": {
        "code": "\"XRJointPose\" in self && \"radius\" in XRJointPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRJointSpace",
      "info": {
        "code": "\"XRJointSpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRJointSpace.jointName",
      "info": {
        "code": "\"XRJointSpace\" in self && \"jointName\" in XRJointSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLayer",
      "info": {
        "code": "\"XRLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLayerEvent",
      "info": {
        "code": "\"XRLayerEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLayerEvent.XRLayerEvent",
      "info": {
        "code": "bcd.testConstructor('XRLayerEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRLayerEvent is not defined"
    },
    {
      "name": "api.XRLayerEvent.layer",
      "info": {
        "code": "\"XRLayerEvent\" in self && \"layer\" in XRLayerEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightEstimate",
      "info": {
        "code": "\"XRLightEstimate\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightEstimate.primaryLightDirection",
      "info": {
        "code": "\"XRLightEstimate\" in self && \"primaryLightDirection\" in XRLightEstimate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightEstimate.primaryLightIntensity",
      "info": {
        "code": "\"XRLightEstimate\" in self && \"primaryLightIntensity\" in XRLightEstimate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightEstimate.sphericalHarmonicsCoefficients",
      "info": {
        "code": "\"XRLightEstimate\" in self && \"sphericalHarmonicsCoefficients\" in XRLightEstimate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightProbe",
      "info": {
        "code": "\"XRLightProbe\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRLightProbe.probeSpace",
      "info": {
        "code": "\"XRLightProbe\" in self && \"probeSpace\" in XRLightProbe.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMediaBinding",
      "info": {
        "code": "\"XRMediaBinding\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMediaBinding.XRMediaBinding",
      "info": {
        "code": "bcd.testConstructor('XRMediaBinding')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRMediaBinding is not defined"
    },
    {
      "name": "api.XRMediaBinding.createCylinderLayer",
      "info": {
        "code": "\"XRMediaBinding\" in self && \"createCylinderLayer\" in XRMediaBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMediaBinding.createEquirectLayer",
      "info": {
        "code": "\"XRMediaBinding\" in self && \"createEquirectLayer\" in XRMediaBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMediaBinding.createQuadLayer",
      "info": {
        "code": "\"XRMediaBinding\" in self && \"createQuadLayer\" in XRMediaBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh",
      "info": {
        "code": "\"XRMesh\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh.indices",
      "info": {
        "code": "\"XRMesh\" in self && \"indices\" in XRMesh.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh.lastChangedTime",
      "info": {
        "code": "\"XRMesh\" in self && \"lastChangedTime\" in XRMesh.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh.meshSpace",
      "info": {
        "code": "\"XRMesh\" in self && \"meshSpace\" in XRMesh.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh.semanticLabel",
      "info": {
        "code": "\"XRMesh\" in self && \"semanticLabel\" in XRMesh.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMesh.vertices",
      "info": {
        "code": "\"XRMesh\" in self && \"vertices\" in XRMesh.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet",
      "info": {
        "code": "\"XRMeshSet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRMeshSet\" in self && !!(XRMeshSet.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.entries",
      "info": {
        "code": "\"XRMeshSet\" in self && \"entries\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.forEach",
      "info": {
        "code": "\"XRMeshSet\" in self && \"forEach\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.has",
      "info": {
        "code": "\"XRMeshSet\" in self && \"has\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.keys",
      "info": {
        "code": "\"XRMeshSet\" in self && \"keys\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.size",
      "info": {
        "code": "\"XRMeshSet\" in self && \"size\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRMeshSet.values",
      "info": {
        "code": "\"XRMeshSet\" in self && \"values\" in XRMeshSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPermissionStatus",
      "info": {
        "code": "\"XRPermissionStatus\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPermissionStatus.granted",
      "info": {
        "code": "\"XRPermissionStatus\" in self && \"granted\" in XRPermissionStatus.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane",
      "info": {
        "code": "\"XRPlane\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane.lastChangedTime",
      "info": {
        "code": "\"XRPlane\" in self && \"lastChangedTime\" in XRPlane.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane.orientation",
      "info": {
        "code": "\"XRPlane\" in self && \"orientation\" in XRPlane.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane.planeSpace",
      "info": {
        "code": "\"XRPlane\" in self && \"planeSpace\" in XRPlane.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane.polygon",
      "info": {
        "code": "\"XRPlane\" in self && \"polygon\" in XRPlane.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlane.semanticLabel",
      "info": {
        "code": "\"XRPlane\" in self && \"semanticLabel\" in XRPlane.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet",
      "info": {
        "code": "\"XRPlaneSet\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"XRPlaneSet\" in self && !!(XRPlaneSet.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.entries",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"entries\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.forEach",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"forEach\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.has",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"has\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.keys",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"keys\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.size",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"size\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPlaneSet.values",
      "info": {
        "code": "\"XRPlaneSet\" in self && \"values\" in XRPlaneSet.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPose",
      "info": {
        "code": "\"XRPose\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPose.angularVelocity",
      "info": {
        "code": "\"XRPose\" in self && \"angularVelocity\" in XRPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPose.emulatedPosition",
      "info": {
        "code": "\"XRPose\" in self && \"emulatedPosition\" in XRPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPose.linearVelocity",
      "info": {
        "code": "\"XRPose\" in self && \"linearVelocity\" in XRPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRPose.transform",
      "info": {
        "code": "\"XRPose\" in self && \"transform\" in XRPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer",
      "info": {
        "code": "\"XRProjectionLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.deltaPose",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"deltaPose\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.fixedFoveation",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"fixedFoveation\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.ignoreDepthValues",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"ignoreDepthValues\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.textureArrayLength",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"textureArrayLength\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.textureHeight",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"textureHeight\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRProjectionLayer.textureWidth",
      "info": {
        "code": "\"XRProjectionLayer\" in self && \"textureWidth\" in XRProjectionLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRQuadLayer",
      "info": {
        "code": "\"XRQuadLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRQuadLayer.height",
      "info": {
        "code": "\"XRQuadLayer\" in self && \"height\" in XRQuadLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRQuadLayer.space",
      "info": {
        "code": "\"XRQuadLayer\" in self && \"space\" in XRQuadLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRQuadLayer.transform",
      "info": {
        "code": "\"XRQuadLayer\" in self && \"transform\" in XRQuadLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRQuadLayer.width",
      "info": {
        "code": "\"XRQuadLayer\" in self && \"width\" in XRQuadLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRay",
      "info": {
        "code": "\"XRRay\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRay.XRRay",
      "info": {
        "code": "bcd.testConstructor('XRRay')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRRay is not defined"
    },
    {
      "name": "api.XRRay.direction",
      "info": {
        "code": "\"XRRay\" in self && \"direction\" in XRRay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRay.matrix",
      "info": {
        "code": "\"XRRay\" in self && \"matrix\" in XRRay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRay.origin",
      "info": {
        "code": "\"XRRay\" in self && \"origin\" in XRRay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRReferenceSpace",
      "info": {
        "code": "\"XRReferenceSpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRReferenceSpace.getOffsetReferenceSpace",
      "info": {
        "code": "\"XRReferenceSpace\" in self && \"getOffsetReferenceSpace\" in XRReferenceSpace.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRReferenceSpaceEvent",
      "info": {
        "code": "\"XRReferenceSpaceEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRReferenceSpaceEvent.XRReferenceSpaceEvent",
      "info": {
        "code": "bcd.testConstructor('XRReferenceSpaceEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRReferenceSpaceEvent is not defined"
    },
    {
      "name": "api.XRReferenceSpaceEvent.referenceSpace",
      "info": {
        "code": "\"XRReferenceSpaceEvent\" in self && \"referenceSpace\" in XRReferenceSpaceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRReferenceSpaceEvent.transform",
      "info": {
        "code": "\"XRReferenceSpaceEvent\" in self && \"transform\" in XRReferenceSpaceEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState",
      "info": {
        "code": "\"XRRenderState\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.baseLayer",
      "info": {
        "code": "\"XRRenderState\" in self && \"baseLayer\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.depthFar",
      "info": {
        "code": "\"XRRenderState\" in self && \"depthFar\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.depthNear",
      "info": {
        "code": "\"XRRenderState\" in self && \"depthNear\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.inlineVerticalFieldOfView",
      "info": {
        "code": "\"XRRenderState\" in self && \"inlineVerticalFieldOfView\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.layers",
      "info": {
        "code": "\"XRRenderState\" in self && \"layers\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRenderState.passthroughFullyObscured",
      "info": {
        "code": "\"XRRenderState\" in self && \"passthroughFullyObscured\" in XRRenderState.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRigidTransform",
      "info": {
        "code": "\"XRRigidTransform\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRigidTransform.XRRigidTransform",
      "info": {
        "code": "bcd.testConstructor('XRRigidTransform')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRRigidTransform is not defined"
    },
    {
      "name": "api.XRRigidTransform.inverse",
      "info": {
        "code": "\"XRRigidTransform\" in self && \"inverse\" in XRRigidTransform.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRigidTransform.matrix",
      "info": {
        "code": "\"XRRigidTransform\" in self && \"matrix\" in XRRigidTransform.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRigidTransform.orientation",
      "info": {
        "code": "\"XRRigidTransform\" in self && \"orientation\" in XRRigidTransform.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRRigidTransform.position",
      "info": {
        "code": "\"XRRigidTransform\" in self && \"position\" in XRRigidTransform.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession",
      "info": {
        "code": "\"XRSession\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.cancelAnimationFrame",
      "info": {
        "code": "\"XRSession\" in self && \"cancelAnimationFrame\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.deletePersistentAnchor",
      "info": {
        "code": "\"XRSession\" in self && \"deletePersistentAnchor\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.depthActive",
      "info": {
        "code": "\"XRSession\" in self && \"depthActive\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.depthDataFormat",
      "info": {
        "code": "\"XRSession\" in self && \"depthDataFormat\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.depthType",
      "info": {
        "code": "\"XRSession\" in self && \"depthType\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.depthUsage",
      "info": {
        "code": "\"XRSession\" in self && \"depthUsage\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.domOverlayState",
      "info": {
        "code": "\"XRSession\" in self && \"domOverlayState\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.enabledFeatures",
      "info": {
        "code": "\"XRSession\" in self && \"enabledFeatures\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.end",
      "info": {
        "code": "\"XRSession\" in self && \"end\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.environmentBlendMode",
      "info": {
        "code": "\"XRSession\" in self && \"environmentBlendMode\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.frameRate",
      "info": {
        "code": "\"XRSession\" in self && \"frameRate\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.initiateRoomCapture",
      "info": {
        "code": "\"XRSession\" in self && \"initiateRoomCapture\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.inputSources",
      "info": {
        "code": "\"XRSession\" in self && \"inputSources\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.interactionMode",
      "info": {
        "code": "\"XRSession\" in self && \"interactionMode\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.isSystemKeyboardSupported",
      "info": {
        "code": "\"XRSession\" in self && \"isSystemKeyboardSupported\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.pauseDepthSensing",
      "info": {
        "code": "\"XRSession\" in self && \"pauseDepthSensing\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.persistentAnchors",
      "info": {
        "code": "\"XRSession\" in self && \"persistentAnchors\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.preferredReflectionFormat",
      "info": {
        "code": "\"XRSession\" in self && \"preferredReflectionFormat\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.renderState",
      "info": {
        "code": "\"XRSession\" in self && \"renderState\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.requestAnimationFrame",
      "info": {
        "code": "\"XRSession\" in self && \"requestAnimationFrame\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.requestHitTestSource",
      "info": {
        "code": "\"XRSession\" in self && \"requestHitTestSource\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.requestHitTestSourceForTransientInput",
      "info": {
        "code": "\"XRSession\" in self && \"requestHitTestSourceForTransientInput\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.requestLightProbe",
      "info": {
        "code": "\"XRSession\" in self && \"requestLightProbe\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.requestReferenceSpace",
      "info": {
        "code": "\"XRSession\" in self && \"requestReferenceSpace\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.restorePersistentAnchor",
      "info": {
        "code": "\"XRSession\" in self && \"restorePersistentAnchor\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.resumeDepthSensing",
      "info": {
        "code": "\"XRSession\" in self && \"resumeDepthSensing\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.supportedFrameRates",
      "info": {
        "code": "\"XRSession\" in self && \"supportedFrameRates\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.trackedSources",
      "info": {
        "code": "\"XRSession\" in self && \"trackedSources\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.updateRenderState",
      "info": {
        "code": "\"XRSession\" in self && \"updateRenderState\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.updateTargetFrameRate",
      "info": {
        "code": "\"XRSession\" in self && \"updateTargetFrameRate\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSession.visibilityState",
      "info": {
        "code": "\"XRSession\" in self && \"visibilityState\" in XRSession.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSessionEvent",
      "info": {
        "code": "\"XRSessionEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSessionEvent.XRSessionEvent",
      "info": {
        "code": "bcd.testConstructor('XRSessionEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRSessionEvent is not defined"
    },
    {
      "name": "api.XRSessionEvent.session",
      "info": {
        "code": "\"XRSessionEvent\" in self && \"session\" in XRSessionEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSpace",
      "info": {
        "code": "\"XRSpace\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSubImage",
      "info": {
        "code": "\"XRSubImage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSubImage.viewport",
      "info": {
        "code": "\"XRSubImage\" in self && \"viewport\" in XRSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRSystem",
      "info": {
        "code": "(function () {\n  var instance = navigator.xr;\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.XRSystem.isSessionSupported",
      "info": {
        "code": "(function () {\n  var instance = navigator.xr;\n  return !!instance && \"isSessionSupported\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.XRSystem.requestSession",
      "info": {
        "code": "(function () {\n  var instance = navigator.xr;\n  return !!instance && \"requestSession\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw ReferenceError: navigator is not defined"
    },
    {
      "name": "api.XRTransientInputHitTestResult",
      "info": {
        "code": "\"XRTransientInputHitTestResult\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRTransientInputHitTestResult.inputSource",
      "info": {
        "code": "\"XRTransientInputHitTestResult\" in self && \"inputSource\" in XRTransientInputHitTestResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRTransientInputHitTestResult.results",
      "info": {
        "code": "\"XRTransientInputHitTestResult\" in self && \"results\" in XRTransientInputHitTestResult.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRTransientInputHitTestSource",
      "info": {
        "code": "\"XRTransientInputHitTestSource\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRTransientInputHitTestSource.cancel",
      "info": {
        "code": "\"XRTransientInputHitTestSource\" in self && \"cancel\" in XRTransientInputHitTestSource.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView",
      "info": {
        "code": "\"XRView\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.camera",
      "info": {
        "code": "\"XRView\" in self && \"camera\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.eye",
      "info": {
        "code": "\"XRView\" in self && \"eye\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.index",
      "info": {
        "code": "\"XRView\" in self && \"index\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.isFirstPersonObserver",
      "info": {
        "code": "\"XRView\" in self && \"isFirstPersonObserver\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.projectionMatrix",
      "info": {
        "code": "\"XRView\" in self && \"projectionMatrix\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.recommendedViewportScale",
      "info": {
        "code": "\"XRView\" in self && \"recommendedViewportScale\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.requestViewportScale",
      "info": {
        "code": "\"XRView\" in self && \"requestViewportScale\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRView.transform",
      "info": {
        "code": "\"XRView\" in self && \"transform\" in XRView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewerPose",
      "info": {
        "code": "\"XRViewerPose\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewerPose.views",
      "info": {
        "code": "\"XRViewerPose\" in self && \"views\" in XRViewerPose.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewport",
      "info": {
        "code": "\"XRViewport\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewport.height",
      "info": {
        "code": "\"XRViewport\" in self && \"height\" in XRViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewport.width",
      "info": {
        "code": "\"XRViewport\" in self && \"width\" in XRViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewport.x",
      "info": {
        "code": "\"XRViewport\" in self && \"x\" in XRViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRViewport.y",
      "info": {
        "code": "\"XRViewport\" in self && \"y\" in XRViewport.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.XRVisibilityMaskChangeEvent",
      "info": {
        "code": "bcd.testConstructor('XRVisibilityMaskChangeEvent')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRVisibilityMaskChangeEvent is not defined"
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.eye",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self && \"eye\" in XRVisibilityMaskChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.index",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self && \"index\" in XRVisibilityMaskChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.indices",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self && \"indices\" in XRVisibilityMaskChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.session",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self && \"session\" in XRVisibilityMaskChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRVisibilityMaskChangeEvent.vertices",
      "info": {
        "code": "\"XRVisibilityMaskChangeEvent\" in self && \"vertices\" in XRVisibilityMaskChangeEvent.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding",
      "info": {
        "code": "\"XRWebGLBinding\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.XRWebGLBinding",
      "info": {
        "code": "bcd.testConstructor('XRWebGLBinding')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRWebGLBinding is not defined"
    },
    {
      "name": "api.XRWebGLBinding.createCubeLayer",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"createCubeLayer\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.createCylinderLayer",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"createCylinderLayer\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.createEquirectLayer",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"createEquirectLayer\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.createProjectionLayer",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"createProjectionLayer\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.createQuadLayer",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"createQuadLayer\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.foveateBoundTexture",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"foveateBoundTexture\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.getCameraImage",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"getCameraImage\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.getDepthInformation",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"getDepthInformation\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.getReflectionCubeMap",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"getReflectionCubeMap\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.getSubImage",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"getSubImage\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.getViewSubImage",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"getViewSubImage\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.nativeProjectionScaleFactor",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"nativeProjectionScaleFactor\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLBinding.usesDepthValues",
      "info": {
        "code": "\"XRWebGLBinding\" in self && \"usesDepthValues\" in XRWebGLBinding.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLDepthInformation",
      "info": {
        "code": "\"XRWebGLDepthInformation\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLDepthInformation.imageIndex",
      "info": {
        "code": "\"XRWebGLDepthInformation\" in self && \"imageIndex\" in XRWebGLDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLDepthInformation.texture",
      "info": {
        "code": "\"XRWebGLDepthInformation\" in self && \"texture\" in XRWebGLDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLDepthInformation.textureType",
      "info": {
        "code": "\"XRWebGLDepthInformation\" in self && \"textureType\" in XRWebGLDepthInformation.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer",
      "info": {
        "code": "\"XRWebGLLayer\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.XRWebGLLayer",
      "info": {
        "code": "bcd.testConstructor('XRWebGLLayer')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XRWebGLLayer is not defined"
    },
    {
      "name": "api.XRWebGLLayer.antialias",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"antialias\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.fixedFoveation",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"fixedFoveation\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.framebuffer",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"framebuffer\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.framebufferHeight",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"framebufferHeight\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.framebufferWidth",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"framebufferWidth\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.getNativeFramebufferScaleFactor_static",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"getNativeFramebufferScaleFactor\" in XRWebGLLayer",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.getViewport",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"getViewport\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLLayer.ignoreDepthValues",
      "info": {
        "code": "\"XRWebGLLayer\" in self && \"ignoreDepthValues\" in XRWebGLLayer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage",
      "info": {
        "code": "\"XRWebGLSubImage\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.colorTexture",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"colorTexture\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.colorTextureHeight",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"colorTextureHeight\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.colorTextureWidth",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"colorTextureWidth\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.depthStencilTexture",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"depthStencilTexture\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.depthStencilTextureHeight",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"depthStencilTextureHeight\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.depthStencilTextureWidth",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"depthStencilTextureWidth\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.imageIndex",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"imageIndex\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.motionVectorTexture",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"motionVectorTexture\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.motionVectorTextureHeight",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"motionVectorTextureHeight\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XRWebGLSubImage.motionVectorTextureWidth",
      "info": {
        "code": "\"XRWebGLSubImage\" in self && \"motionVectorTextureWidth\" in XRWebGLSubImage.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor",
      "info": {
        "code": "\"XSLTProcessor\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.XSLTProcessor",
      "info": {
        "code": "bcd.testConstructor('XSLTProcessor')",
        "exposure": "Window"
      },
      "result": false,
      "message": "threw ReferenceError: XSLTProcessor is not defined"
    },
    {
      "name": "api.XSLTProcessor.clearParameters",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"clearParameters\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.getParameter",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"getParameter\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.importStylesheet",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"importStylesheet\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.removeParameter",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"removeParameter\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.reset",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"reset\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.setParameter",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"setParameter\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.transformToDocument",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"transformToDocument\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.XSLTProcessor.transformToFragment",
      "info": {
        "code": "\"XSLTProcessor\" in self && \"transformToFragment\" in XSLTProcessor.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.atob",
      "info": {
        "code": "\"atob\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.btoa",
      "info": {
        "code": "\"btoa\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.caches",
      "info": {
        "code": "\"caches\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.clearInterval",
      "info": {
        "code": "\"clearInterval\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.clearTimeout",
      "info": {
        "code": "\"clearTimeout\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console",
      "info": {
        "code": "\"console\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.assert_static",
      "info": {
        "code": "\"console\" in self && \"assert\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.clear_static",
      "info": {
        "code": "\"console\" in self && \"clear\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.countReset_static",
      "info": {
        "code": "\"console\" in self && \"countReset\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.count_static",
      "info": {
        "code": "\"console\" in self && \"count\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.debug_static",
      "info": {
        "code": "\"console\" in self && \"debug\" in console",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.dir_static",
      "info": {
        "code": "\"console\" in self && \"dir\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.dir_static.options_colors_parameter",
      "info": {
        "code": "(function () {\n  function dir(options) {\n    console.dir({ a: \"b\" }, options);\n  }\n  return bcd.testOptionParam(dir, null, \"colors\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: console.dir is not a function"
    },
    {
      "name": "api.console.dir_static.options_depth_parameter",
      "info": {
        "code": "(function () {\n  function dir(options) {\n    console.dir({ a: \"b\" }, options);\n  }\n  return bcd.testOptionParam(dir, null, \"depth\", 1);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: console.dir is not a function"
    },
    {
      "name": "api.console.dir_static.options_showHidden_parameter",
      "info": {
        "code": "(function () {\n  function dir(options) {\n    console.dir({ a: \"b\" }, options);\n  }\n  return bcd.testOptionParam(dir, null, \"showHidden\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: console.dir is not a function"
    },
    {
      "name": "api.console.dirxml_static",
      "info": {
        "code": "\"console\" in self && \"dirxml\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.error_static",
      "info": {
        "code": "\"console\" in self && \"error\" in console",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.exception_static",
      "info": {
        "code": "\"console\" in self && \"exception\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.groupCollapsed_static",
      "info": {
        "code": "\"console\" in self && \"groupCollapsed\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.groupEnd_static",
      "info": {
        "code": "\"console\" in self && \"groupEnd\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.group_static",
      "info": {
        "code": "\"console\" in self && \"group\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.info_static",
      "info": {
        "code": "\"console\" in self && \"info\" in console",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.log_static",
      "info": {
        "code": "\"console\" in self && \"log\" in console",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.profileEnd_static",
      "info": {
        "code": "\"console\" in self && \"profileEnd\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.profile_static",
      "info": {
        "code": "\"console\" in self && \"profile\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.table_static",
      "info": {
        "code": "\"console\" in self && \"table\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.timeEnd_static",
      "info": {
        "code": "\"console\" in self && \"timeEnd\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.timeLog_static",
      "info": {
        "code": "\"console\" in self && \"timeLog\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.timeStamp_static",
      "info": {
        "code": "\"console\" in self && \"timeStamp\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.time_static",
      "info": {
        "code": "\"console\" in self && \"time\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.console.trace_static",
      "info": {
        "code": "\"console\" in self && \"trace\" in console",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AggregateError",
      "info": {
        "code": "(function () {\n  if (!(\"AggregateError\" in self)) {\n    return { result: false, message: \"AggregateError is not defined\" };\n  }\n  var instance = new AggregateError(\n    // An iterable of errors\n    new Set([new Error(\"some error\"), new Error(\"another error\")]),\n    \"Multiple errors thrown\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.console.warn_static",
      "info": {
        "code": "\"console\" in self && \"warn\" in console",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.createImageBitmap",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return true;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_colorSpaceConversion_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"colorSpaceConversion\", \"default\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_imageOrientation_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"imageOrientation\", \"none\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_premultiplyAlpha_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"premultiplyAlpha\", \"default\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_resizeHeight_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"resizeHeight\", \"100\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_resizeQuality_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"resizeQuality\", \"high\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.options_resizeWidth_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  return bcd.testOptionParam(create, null, \"resizeWidth\", \"100\");\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.createImageBitmap.svgimageelement_as_source_image",
      "info": {
        "code": "(function () {\n  if (!(\"createImageBitmap\" in self)) {\n    return { result: false, message: \"createImageBitmap is not defined\" };\n  }\n  function create(options) {\n    return createImageBitmap(\n      document.getElementById(\"resource-image-black\"),\n      options\n    );\n  }\n  var svgimg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n  instance.href.baseVal = document.getElementById(\"resource-image-black\").src; // Set a source for the image, required for certain tests\n  if (!svgimg) {\n    return { result: false, message: \"svgimg is falsy\" };\n  }\n  var bitmap = createImageBitmap(svgimg);\n  return bitmap\n    .then(function () {\n      return true;\n    })\n    .catch(function (e) {\n      return { result: false, message: e.message };\n    });\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "createImageBitmap is not defined"
    },
    {
      "name": "api.crossOriginIsolated",
      "info": {
        "code": "\"crossOriginIsolated\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.crypto",
      "info": {
        "code": "\"crypto\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.fetch",
      "info": {
        "code": "\"fetch\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.indexedDB",
      "info": {
        "code": "\"indexedDB\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.isSecureContext",
      "info": {
        "code": "\"isSecureContext\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.origin",
      "info": {
        "code": "\"origin\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.performance",
      "info": {
        "code": "\"performance\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.queueMicrotask",
      "info": {
        "code": "\"queueMicrotask\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.reportError",
      "info": {
        "code": "\"reportError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.scheduler",
      "info": {
        "code": "\"scheduler\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "api.setInterval",
      "info": {
        "code": "\"setInterval\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.setTimeout",
      "info": {
        "code": "\"setTimeout\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.structuredClone",
      "info": {
        "code": "\"structuredClone\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "api.trustedTypes",
      "info": {
        "code": "\"trustedTypes\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AggregateError.AggregateError",
      "info": {
        "code": "(function () {\n  if (!(\"AggregateError\" in self)) {\n    return { result: false, message: \"AggregateError is not defined\" };\n  }\n  var instance = new AggregateError(\n    // An iterable of errors\n    new Set([new Error(\"some error\"), new Error(\"another error\")]),\n    \"Multiple errors thrown\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AggregateError.errors",
      "info": {
        "code": "(function () {\n  if (!(\"AggregateError\" in self)) {\n    return { result: false, message: \"AggregateError is not defined\" };\n  }\n  var instance = new AggregateError(\n    // An iterable of errors\n    new Set([new Error(\"some error\"), new Error(\"another error\")]),\n    \"Multiple errors thrown\"\n  );\n  return !!instance && \"errors\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array",
      "info": {
        "code": "\"Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"Array\" in self && !!(Array.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"Array\" in self && !!(Array[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.@@unscopables",
      "info": {
        "code": "\"Symbol\" in self && \"unscopables\" in Symbol && \"Array\" in self && !!(Array.prototype[Symbol.unscopables])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.Array",
      "info": {
        "code": "(function () {\n  if (!(\"Array\" in self)) {\n    return { result: false, message: \"Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Array.at",
      "info": {
        "code": "\"Array\" in self && \"at\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.concat",
      "info": {
        "code": "\"Array\" in self && \"concat\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.copyWithin",
      "info": {
        "code": "\"Array\" in self && \"copyWithin\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.entries",
      "info": {
        "code": "\"Array\" in self && \"entries\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.every",
      "info": {
        "code": "\"Array\" in self && \"every\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.fill",
      "info": {
        "code": "\"Array\" in self && \"fill\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.filter",
      "info": {
        "code": "\"Array\" in self && \"filter\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.find",
      "info": {
        "code": "\"Array\" in self && \"find\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.findIndex",
      "info": {
        "code": "\"Array\" in self && \"findIndex\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.findLast",
      "info": {
        "code": "\"Array\" in self && \"findLast\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.findLastIndex",
      "info": {
        "code": "\"Array\" in self && \"findLastIndex\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.flat",
      "info": {
        "code": "\"Array\" in self && \"flat\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.flatMap",
      "info": {
        "code": "\"Array\" in self && \"flatMap\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.forEach",
      "info": {
        "code": "\"Array\" in self && \"forEach\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.from",
      "info": {
        "code": "\"Array\" in self && \"from\" in Array",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.fromAsync",
      "info": {
        "code": "\"Array\" in self && \"fromAsync\" in Array",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.group",
      "info": {
        "code": "\"Array\" in self && \"group\" in Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Array.groupToMap",
      "info": {
        "code": "\"Array\" in self && \"groupToMap\" in Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Array.includes",
      "info": {
        "code": "\"Array\" in self && \"includes\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.indexOf",
      "info": {
        "code": "\"Array\" in self && \"indexOf\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.isArray",
      "info": {
        "code": "\"Array\" in self && \"isArray\" in Array",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.join",
      "info": {
        "code": "\"Array\" in self && \"join\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.keys",
      "info": {
        "code": "\"Array\" in self && \"keys\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.lastIndexOf",
      "info": {
        "code": "\"Array\" in self && \"lastIndexOf\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.length",
      "info": {
        "code": "\"Array\" in self && \"length\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.map",
      "info": {
        "code": "\"Array\" in self && \"map\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.of",
      "info": {
        "code": "\"Array\" in self && \"of\" in Array",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.pop",
      "info": {
        "code": "\"Array\" in self && \"pop\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.push",
      "info": {
        "code": "\"Array\" in self && \"push\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.reduce",
      "info": {
        "code": "\"Array\" in self && \"reduce\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.reduceRight",
      "info": {
        "code": "\"Array\" in self && \"reduceRight\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.reverse",
      "info": {
        "code": "\"Array\" in self && \"reverse\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.shift",
      "info": {
        "code": "\"Array\" in self && \"shift\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.slice",
      "info": {
        "code": "\"Array\" in self && \"slice\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.some",
      "info": {
        "code": "\"Array\" in self && \"some\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.sort",
      "info": {
        "code": "\"Array\" in self && \"sort\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.splice",
      "info": {
        "code": "\"Array\" in self && \"splice\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.toLocaleString",
      "info": {
        "code": "\"Array\" in self && \"toLocaleString\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.toReversed",
      "info": {
        "code": "\"Array\" in self && \"toReversed\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.toSorted",
      "info": {
        "code": "\"Array\" in self && \"toSorted\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.toSpliced",
      "info": {
        "code": "\"Array\" in self && \"toSpliced\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.toString",
      "info": {
        "code": "\"Array\" in self && \"toString\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.unshift",
      "info": {
        "code": "\"Array\" in self && \"unshift\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.values",
      "info": {
        "code": "\"Array\" in self && \"values\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Array.with",
      "info": {
        "code": "\"Array\" in self && \"with\" in Array.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer",
      "info": {
        "code": "\"ArrayBuffer\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"ArrayBuffer\" in self && !!(ArrayBuffer[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.ArrayBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"ArrayBuffer\" in self)) {\n    return { result: false, message: \"ArrayBuffer is not defined\" };\n  }\n  return bcd.testConstructor(\"ArrayBuffer\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.ArrayBuffer.ArrayBuffer.maxByteLength_option",
      "info": {
        "code": "(function () {\n  function construct(options) {\n    new ArrayBuffer(8, options);\n  }\n  return bcd.testOptionParam(construct, null, \"maxByteLength\", 16);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.byteLength",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"byteLength\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.detached",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"detached\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.isView",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"isView\" in ArrayBuffer",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.maxByteLength",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"maxByteLength\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.resizable",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"resizable\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.resize",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"resize\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.slice",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"slice\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.transfer",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"transfer\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ArrayBuffer.transferToFixed",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"transferToFixed\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.ArrayBuffer.transferToFixedLength",
      "info": {
        "code": "\"ArrayBuffer\" in self && \"transferToFixedLength\" in ArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack",
      "info": {
        "code": "\"AsyncDisposableStack\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.@@asyncDispose",
      "info": {
        "code": "\"Symbol\" in self && \"asyncDispose\" in Symbol && \"AsyncDisposableStack\" in self && !!(AsyncDisposableStack.prototype[Symbol.asyncDispose])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.AsyncDisposableStack",
      "info": {
        "code": "(function () {\n  if (!(\"AsyncDisposableStack\" in self)) {\n    return { result: false, message: \"AsyncDisposableStack is not defined\" };\n  }\n  return bcd.testConstructor(\"AsyncDisposableStack\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AsyncDisposableStack is not defined"
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.adopt",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"adopt\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.defer",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"defer\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.disposeAsync",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"disposeAsync\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.disposed",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"disposed\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.move",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"move\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncDisposableStack.use",
      "info": {
        "code": "\"AsyncDisposableStack\" in self && \"use\" in AsyncDisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncFunction",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function () {\n      return true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncFunction.AsyncFunction",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function () {\n      return true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  var AsyncFunction = func.constructor;\n  if (!AsyncFunction) {\n    return false;\n  }\n  try {\n    new AsyncFunction(\"return true\");\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncFunction.length",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function () {\n      return true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncFunction.name",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function () {\n      return true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncGenerator",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGenerator.next",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"next\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGenerator.return",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"return\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGenerator.throw",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"throw\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGeneratorFunction",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGeneratorFunction.AsyncGeneratorFunction",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  var AsyncGeneratorFunction = func.constructor;\n  if (!AsyncGeneratorFunction) {\n    return false;\n  }\n  try {\n    new AsyncGeneratorFunction(\"yield true\");\n    return true;\n  } catch (e) {\n    return false;\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncGeneratorFunction.length",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncGeneratorFunction.name",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncGeneratorFunction.prototype",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"prototype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncIterator",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncIterator.@@asyncDispose",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"asyncDispose\" in Symbol &&\n    !!instance[Symbol.asyncDispose]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.AsyncIterator.@@asyncIterator",
      "info": {
        "code": "(function () {\n  var func;\n  var instance;\n  try {\n    func = async function* () {\n      yield true;\n    };\n\n    instance = func();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  const AsyncIteratorPrototype = Object.getPrototypeOf(\n    Object.getPrototypeOf(Object.getPrototypeOf(instance))\n  );\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"asyncIterator\" in Symbol &&\n    Symbol.asyncIterator in AsyncIteratorPrototype\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.AsyncIterator.AsyncIterator",
      "info": {
        "code": "(function () {\n  if (!(\"AsyncIterator\" in self)) {\n    return { result: false, message: \"AsyncIterator is not defined\" };\n  }\n  return bcd.testConstructor(\"AsyncIterator\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "AsyncIterator is not defined"
    },
    {
      "name": "javascript.builtins.Atomics",
      "info": {
        "code": "\"Atomics\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.add",
      "info": {
        "code": "\"Atomics\" in self && \"add\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.and",
      "info": {
        "code": "\"Atomics\" in self && \"and\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.compareExchange",
      "info": {
        "code": "\"Atomics\" in self && \"compareExchange\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.exchange",
      "info": {
        "code": "\"Atomics\" in self && \"exchange\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.isLockFree",
      "info": {
        "code": "\"Atomics\" in self && \"isLockFree\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.load",
      "info": {
        "code": "\"Atomics\" in self && \"load\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.notify",
      "info": {
        "code": "\"Atomics\" in self && \"notify\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.or",
      "info": {
        "code": "\"Atomics\" in self && \"or\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.pause",
      "info": {
        "code": "\"Atomics\" in self && \"pause\" in Atomics",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Atomics.store",
      "info": {
        "code": "\"Atomics\" in self && \"store\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.sub",
      "info": {
        "code": "\"Atomics\" in self && \"sub\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.wait",
      "info": {
        "code": "\"Atomics\" in self && \"wait\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.waitAsync",
      "info": {
        "code": "\"Atomics\" in self && \"waitAsync\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Atomics.xor",
      "info": {
        "code": "\"Atomics\" in self && \"xor\" in Atomics",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt",
      "info": {
        "code": "\"BigInt\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt.BigInt",
      "info": {
        "code": "(function () {\n  if (!(\"BigInt\" in self)) {\n    return { result: false, message: \"BigInt is not defined\" };\n  }\n  return bcd.testConstructor(\"BigInt\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: Cannot convert undefined to a BigInt"
    },
    {
      "name": "javascript.builtins.BigInt.asIntN",
      "info": {
        "code": "\"BigInt\" in self && \"asIntN\" in BigInt",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt.asUintN",
      "info": {
        "code": "\"BigInt\" in self && \"asUintN\" in BigInt",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt.toLocaleString",
      "info": {
        "code": "\"BigInt\" in self && \"toLocaleString\" in BigInt.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt.toString",
      "info": {
        "code": "\"BigInt\" in self && \"toString\" in BigInt.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt.valueOf",
      "info": {
        "code": "\"BigInt\" in self && \"valueOf\" in BigInt.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt64Array",
      "info": {
        "code": "\"BigInt64Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigInt64Array.BigInt64Array",
      "info": {
        "code": "(function () {\n  if (!(\"BigInt64Array\" in self)) {\n    return { result: false, message: \"BigInt64Array is not defined\" };\n  }\n  return bcd.testConstructor(\"BigInt64Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.BigUint64Array",
      "info": {
        "code": "\"BigUint64Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.BigUint64Array.BigUint64Array",
      "info": {
        "code": "(function () {\n  if (!(\"BigUint64Array\" in self)) {\n    return { result: false, message: \"BigUint64Array is not defined\" };\n  }\n  return bcd.testConstructor(\"BigUint64Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Boolean",
      "info": {
        "code": "\"Boolean\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Boolean.Boolean",
      "info": {
        "code": "(function () {\n  if (!(\"Boolean\" in self)) {\n    return { result: false, message: \"Boolean is not defined\" };\n  }\n  return bcd.testConstructor(\"Boolean\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Boolean.toString",
      "info": {
        "code": "\"Boolean\" in self && \"toString\" in Boolean.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Boolean.valueOf",
      "info": {
        "code": "\"Boolean\" in self && \"valueOf\" in Boolean.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView",
      "info": {
        "code": "\"DataView\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.DataView",
      "info": {
        "code": "(function () {\n  if (!(\"DataView\" in self)) {\n    return { result: false, message: \"DataView is not defined\" };\n  }\n  return bcd.testConstructor(\"DataView\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: First argument to DataView constructor must be an ArrayBuffer"
    },
    {
      "name": "javascript.builtins.DataView.DataView.sharedarraybuffer_support",
      "info": {
        "code": "(function () {\n  if (!(\"SharedArrayBuffer\" in self)) {\n    return { result: false, message: \"SharedArrayBuffer is not defined\" };\n  }\n  var sab = new SharedArrayBuffer(1024);\n\n  try {\n    var instance = new DataView(sab, 0);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.buffer",
      "info": {
        "code": "\"DataView\" in self && \"buffer\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.byteLength",
      "info": {
        "code": "\"DataView\" in self && \"byteLength\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.byteOffset",
      "info": {
        "code": "\"DataView\" in self && \"byteOffset\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getBigInt64",
      "info": {
        "code": "\"DataView\" in self && \"getBigInt64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getBigUint64",
      "info": {
        "code": "\"DataView\" in self && \"getBigUint64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getFloat16",
      "info": {
        "code": "\"DataView\" in self && \"getFloat16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DataView.getFloat32",
      "info": {
        "code": "\"DataView\" in self && \"getFloat32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getFloat64",
      "info": {
        "code": "\"DataView\" in self && \"getFloat64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getInt16",
      "info": {
        "code": "\"DataView\" in self && \"getInt16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getInt32",
      "info": {
        "code": "\"DataView\" in self && \"getInt32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getInt8",
      "info": {
        "code": "\"DataView\" in self && \"getInt8\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getUint16",
      "info": {
        "code": "\"DataView\" in self && \"getUint16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getUint32",
      "info": {
        "code": "\"DataView\" in self && \"getUint32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.getUint8",
      "info": {
        "code": "\"DataView\" in self && \"getUint8\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setBigInt64",
      "info": {
        "code": "\"DataView\" in self && \"setBigInt64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setBigUint64",
      "info": {
        "code": "\"DataView\" in self && \"setBigUint64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setFloat16",
      "info": {
        "code": "\"DataView\" in self && \"setFloat16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DataView.setFloat32",
      "info": {
        "code": "\"DataView\" in self && \"setFloat32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setFloat64",
      "info": {
        "code": "\"DataView\" in self && \"setFloat64\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setInt16",
      "info": {
        "code": "\"DataView\" in self && \"setInt16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setInt32",
      "info": {
        "code": "\"DataView\" in self && \"setInt32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setInt8",
      "info": {
        "code": "\"DataView\" in self && \"setInt8\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setUint16",
      "info": {
        "code": "\"DataView\" in self && \"setUint16\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setUint32",
      "info": {
        "code": "\"DataView\" in self && \"setUint32\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DataView.setUint8",
      "info": {
        "code": "\"DataView\" in self && \"setUint8\" in DataView.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date",
      "info": {
        "code": "\"Date\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.@@toPrimitive",
      "info": {
        "code": "\"Symbol\" in self && \"toPrimitive\" in Symbol && \"Date\" in self && !!(Date.prototype[Symbol.toPrimitive])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.Date",
      "info": {
        "code": "(function () {\n  if (!(\"Date\" in self)) {\n    return { result: false, message: \"Date is not defined\" };\n  }\n  return bcd.testConstructor(\"Date\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Date.UTC",
      "info": {
        "code": "\"Date\" in self && \"UTC\" in Date",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.UTC.optional_monthIndex",
      "info": {
        "code": "(function () {\n  try {\n    Date.UTC(2024);\n    return {\n      result: true,\n      message: \"Method passed without monthIndex parameter\"\n    };\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Method passed without monthIndex parameter"
    },
    {
      "name": "javascript.builtins.Date.getDate",
      "info": {
        "code": "\"Date\" in self && \"getDate\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getDay",
      "info": {
        "code": "\"Date\" in self && \"getDay\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getFullYear",
      "info": {
        "code": "\"Date\" in self && \"getFullYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getHours",
      "info": {
        "code": "\"Date\" in self && \"getHours\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getMilliseconds",
      "info": {
        "code": "\"Date\" in self && \"getMilliseconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getMinutes",
      "info": {
        "code": "\"Date\" in self && \"getMinutes\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getMonth",
      "info": {
        "code": "\"Date\" in self && \"getMonth\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getSeconds",
      "info": {
        "code": "\"Date\" in self && \"getSeconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getTime",
      "info": {
        "code": "\"Date\" in self && \"getTime\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getTimezoneOffset",
      "info": {
        "code": "\"Date\" in self && \"getTimezoneOffset\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCDate",
      "info": {
        "code": "\"Date\" in self && \"getUTCDate\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCDay",
      "info": {
        "code": "\"Date\" in self && \"getUTCDay\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCFullYear",
      "info": {
        "code": "\"Date\" in self && \"getUTCFullYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCHours",
      "info": {
        "code": "\"Date\" in self && \"getUTCHours\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCMilliseconds",
      "info": {
        "code": "\"Date\" in self && \"getUTCMilliseconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCMinutes",
      "info": {
        "code": "\"Date\" in self && \"getUTCMinutes\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCMonth",
      "info": {
        "code": "\"Date\" in self && \"getUTCMonth\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getUTCSeconds",
      "info": {
        "code": "\"Date\" in self && \"getUTCSeconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.getYear",
      "info": {
        "code": "\"Date\" in self && \"getYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.now",
      "info": {
        "code": "\"Date\" in self && \"now\" in Date",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.parse",
      "info": {
        "code": "\"Date\" in self && \"parse\" in Date",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setDate",
      "info": {
        "code": "\"Date\" in self && \"setDate\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setFullYear",
      "info": {
        "code": "\"Date\" in self && \"setFullYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setHours",
      "info": {
        "code": "\"Date\" in self && \"setHours\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setMilliseconds",
      "info": {
        "code": "\"Date\" in self && \"setMilliseconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setMinutes",
      "info": {
        "code": "\"Date\" in self && \"setMinutes\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setMonth",
      "info": {
        "code": "\"Date\" in self && \"setMonth\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setSeconds",
      "info": {
        "code": "\"Date\" in self && \"setSeconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setTime",
      "info": {
        "code": "\"Date\" in self && \"setTime\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCDate",
      "info": {
        "code": "\"Date\" in self && \"setUTCDate\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCFullYear",
      "info": {
        "code": "\"Date\" in self && \"setUTCFullYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCHours",
      "info": {
        "code": "\"Date\" in self && \"setUTCHours\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCMilliseconds",
      "info": {
        "code": "\"Date\" in self && \"setUTCMilliseconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCMinutes",
      "info": {
        "code": "\"Date\" in self && \"setUTCMinutes\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCMonth",
      "info": {
        "code": "\"Date\" in self && \"setUTCMonth\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setUTCSeconds",
      "info": {
        "code": "\"Date\" in self && \"setUTCSeconds\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.setYear",
      "info": {
        "code": "\"Date\" in self && \"setYear\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toDateString",
      "info": {
        "code": "\"Date\" in self && \"toDateString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toGMTString",
      "info": {
        "code": "\"Date\" in self && \"toGMTString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toISOString",
      "info": {
        "code": "\"Date\" in self && \"toISOString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toJSON",
      "info": {
        "code": "\"Date\" in self && \"toJSON\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toLocaleDateString",
      "info": {
        "code": "\"Date\" in self && \"toLocaleDateString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toLocaleString",
      "info": {
        "code": "\"Date\" in self && \"toLocaleString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toLocaleTimeString",
      "info": {
        "code": "\"Date\" in self && \"toLocaleTimeString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toString",
      "info": {
        "code": "\"Date\" in self && \"toString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toTemporalInstant",
      "info": {
        "code": "\"Date\" in self && \"toTemporalInstant\" in Date.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Date.toTimeString",
      "info": {
        "code": "\"Date\" in self && \"toTimeString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.toUTCString",
      "info": {
        "code": "\"Date\" in self && \"toUTCString\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Date.valueOf",
      "info": {
        "code": "\"Date\" in self && \"valueOf\" in Date.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.DisposableStack",
      "info": {
        "code": "\"DisposableStack\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.@@dispose",
      "info": {
        "code": "\"Symbol\" in self && \"dispose\" in Symbol && \"DisposableStack\" in self && !!(DisposableStack.prototype[Symbol.dispose])",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.DisposableStack",
      "info": {
        "code": "(function () {\n  if (!(\"DisposableStack\" in self)) {\n    return { result: false, message: \"DisposableStack is not defined\" };\n  }\n  return bcd.testConstructor(\"DisposableStack\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "DisposableStack is not defined"
    },
    {
      "name": "javascript.builtins.DisposableStack.adopt",
      "info": {
        "code": "\"DisposableStack\" in self && \"adopt\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.defer",
      "info": {
        "code": "\"DisposableStack\" in self && \"defer\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.dispose",
      "info": {
        "code": "\"DisposableStack\" in self && \"dispose\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.disposed",
      "info": {
        "code": "\"DisposableStack\" in self && \"disposed\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.move",
      "info": {
        "code": "\"DisposableStack\" in self && \"move\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.DisposableStack.use",
      "info": {
        "code": "\"DisposableStack\" in self && \"use\" in DisposableStack.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.Error",
      "info": {
        "code": "(function () {\n  if (!(\"Error\" in self)) {\n    return { result: false, message: \"Error is not defined\" };\n  }\n  return bcd.testConstructor(\"Error\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Error.Error.fileName_parameter",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  var e = new Error(\"foo\", \"bar.js\");\n  return e.fileName === \"bar.js\";\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.Error.lineNumber_parameter",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  var e = new Error(\"foo\", \"bar.js\", 420);\n  return e.lineNumber === 420;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.Error.options_cause_parameter",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  var e = new Error(\"foo\", { cause: \"testing\" });\n  return e.cause === \"testing\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.captureStackTrace",
      "info": {
        "code": "\"Error\" in self && \"captureStackTrace\" in Error",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.cause",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"cause\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.columnNumber",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"columnNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.fileName",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"fileName\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.isError",
      "info": {
        "code": "\"Error\" in self && \"isError\" in Error",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.lineNumber",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"lineNumber\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Error.message",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"message\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.name",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.stack",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"stack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.stackTraceLimit",
      "info": {
        "code": "\"Error\" in self && \"stackTraceLimit\" in Error",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Error.toString",
      "info": {
        "code": "(function () {\n  var instance = new Error(\"hello world\", { cause: \"for testing\" });\n  return !!instance && \"toString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.EvalError",
      "info": {
        "code": "\"EvalError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.EvalError.EvalError",
      "info": {
        "code": "(function () {\n  if (!(\"EvalError\" in self)) {\n    return { result: false, message: \"EvalError is not defined\" };\n  }\n  return bcd.testConstructor(\"EvalError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.FinalizationRegistry",
      "info": {
        "code": "\"FinalizationRegistry\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.FinalizationRegistry.FinalizationRegistry",
      "info": {
        "code": "(function () {\n  if (!(\"FinalizationRegistry\" in self)) {\n    return { result: false, message: \"FinalizationRegistry is not defined\" };\n  }\n  return bcd.testConstructor(\"FinalizationRegistry\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: FinalizationRegistry: cleanup must be callable"
    },
    {
      "name": "javascript.builtins.FinalizationRegistry.register",
      "info": {
        "code": "\"FinalizationRegistry\" in self && \"register\" in FinalizationRegistry.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.FinalizationRegistry.register.symbol_as_target",
      "info": {
        "code": "(function () {\n  try {\n    new FinalizationRegistry(() => {}).register(Symbol());\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.FinalizationRegistry.unregister",
      "info": {
        "code": "\"FinalizationRegistry\" in self && \"unregister\" in FinalizationRegistry.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float16Array",
      "info": {
        "code": "\"Float16Array\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Float16Array.Float16Array",
      "info": {
        "code": "(function () {\n  if (!(\"Float16Array\" in self)) {\n    return { result: false, message: \"Float16Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Float16Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Float16Array is not defined"
    },
    {
      "name": "javascript.builtins.Float32Array",
      "info": {
        "code": "\"Float32Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float32Array.Float32Array",
      "info": {
        "code": "(function () {\n  if (!(\"Float32Array\" in self)) {\n    return { result: false, message: \"Float32Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Float32Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Float32Array.Float32Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Float32Array\" in self)) {\n    return { result: false, message: \"Float32Array is not defined\" };\n  }\n  try {\n    new Float32Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float32Array.Float32Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Float32Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float64Array",
      "info": {
        "code": "\"Float64Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float64Array.Float64Array",
      "info": {
        "code": "(function () {\n  if (!(\"Float64Array\" in self)) {\n    return { result: false, message: \"Float64Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Float64Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Float64Array.Float64Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Float64Array\" in self)) {\n    return { result: false, message: \"Float64Array is not defined\" };\n  }\n  try {\n    new Float64Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Float64Array.Float64Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Float64Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function",
      "info": {
        "code": "\"Function\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.@@hasInstance",
      "info": {
        "code": "\"Symbol\" in self && \"hasInstance\" in Symbol && \"Function\" in self && !!(Function.prototype[Symbol.hasInstance])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.Function",
      "info": {
        "code": "(function () {\n  if (!(\"Function\" in self)) {\n    return { result: false, message: \"Function is not defined\" };\n  }\n  return bcd.testConstructor(\"Function\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Function.apply",
      "info": {
        "code": "\"Function\" in self && \"apply\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.arguments",
      "info": {
        "code": "\"Function\" in self && \"arguments\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.bind",
      "info": {
        "code": "\"Function\" in self && \"bind\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.call",
      "info": {
        "code": "\"Function\" in self && \"call\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.caller",
      "info": {
        "code": "\"Function\" in self && \"caller\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.length",
      "info": {
        "code": "\"Function\" in self && \"length\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.name",
      "info": {
        "code": "(function () {\n  function doTheThing() {}\n  return doTheThing.name == \"doTheThing\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Function.prototype",
      "info": {
        "code": "\"Function\" in self && \"prototype\" in Function.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Function.toString",
      "info": {
        "code": "\"Function\" in self && \"toString\" in Function.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Generator",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Generator.next",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"next\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Generator.return",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"return\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Generator.throw",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"throw\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.GeneratorFunction",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.GeneratorFunction.GeneratorFunction",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.GeneratorFunction.length",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.GeneratorFunction.name",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"name\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.GeneratorFunction.prototype",
      "info": {
        "code": "(function () {\n  var instance;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    instance = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  return !!instance && \"prototype\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Infinity",
      "info": {
        "code": "\"Infinity\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int16Array",
      "info": {
        "code": "\"Int16Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int16Array.Int16Array",
      "info": {
        "code": "(function () {\n  if (!(\"Int16Array\" in self)) {\n    return { result: false, message: \"Int16Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Int16Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Int16Array.Int16Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Int16Array\" in self)) {\n    return { result: false, message: \"Int16Array is not defined\" };\n  }\n  try {\n    new Int16Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int16Array.Int16Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Int16Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int32Array",
      "info": {
        "code": "\"Int32Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int32Array.Int32Array",
      "info": {
        "code": "(function () {\n  if (!(\"Int32Array\" in self)) {\n    return { result: false, message: \"Int32Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Int32Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Int32Array.Int32Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Int32Array\" in self)) {\n    return { result: false, message: \"Int32Array is not defined\" };\n  }\n  try {\n    new Int32Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int32Array.Int32Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Int32Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int8Array",
      "info": {
        "code": "\"Int8Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int8Array.Int8Array",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Int8Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Int8Array.Int8Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  try {\n    new Int8Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Int8Array.Int8Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Int8Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.InternalError",
      "info": {
        "code": "\"InternalError\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.InternalError.InternalError",
      "info": {
        "code": "(function () {\n  if (!(\"InternalError\" in self)) {\n    return { result: false, message: \"InternalError is not defined\" };\n  }\n  return bcd.testConstructor(\"InternalError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "InternalError is not defined"
    },
    {
      "name": "javascript.builtins.Intl",
      "info": {
        "code": "\"Intl\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator",
      "info": {
        "code": "\"Intl\" in self && \"Collator\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.Collator\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_caseFirst_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"caseFirst\", \"upper\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_collation_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"collation\", \"default\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_ignorePunctuation_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"ignorePunctuation\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_localeMatcher_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"localeMatcher\", \"best fit\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_numeric_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"numeric\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_sensitivity_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"sensitivity\", \"base\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.Collator.options_usage_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Collator\" in Intl)) {\n    return { result: false, message: \"Intl.Collator is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.Collator(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"usage\", \"sort\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.compare",
      "info": {
        "code": "\"Intl\" in self && \"Collator\" in Intl && \"compare\" in Intl.Collator.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"Collator\" in Intl && \"resolvedOptions\" in Intl.Collator.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Collator.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"Collator\" in Intl && \"supportedLocalesOf\" in Intl.Collator",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.DateTimeFormat\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.locales_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  var instance = new Intl.DateTimeFormat(\"de\");\n  var options = instance.resolvedOptions();\n  return options.locale === \"de\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  } // The timeZone parameter was one of the first options available\n  return bcd.testOptionParam(construct, null, \"timeZone\", \"UTC\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_calendar_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"calendar\", \"chinese\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dateStyle_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"dateStyle\", \"full\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dayPeriod_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"dayPeriod\", \"narrow\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_fractionalSecondDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"fractionalSecondDigits\", 2);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_hourCycle_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"hourCycle\", \"h23\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_numberingSystem_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"numberingSystem\", \"latn\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeStyle_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"timeStyle\", \"full\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"timeZoneName\", \"long\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter.extended_values",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"timeZoneName\", \"shortGeneric\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"timeZone\", \"UTC\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter.iana_time_zones",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DateTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DateTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.DateTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"timeZone\", \"Asia/Shanghai\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.format",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"format\" in Intl.DateTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.formatRange",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"formatRange\" in Intl.DateTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.formatRangeToParts",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"formatRangeToParts\" in Intl.DateTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.formatToParts",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"formatToParts\" in Intl.DateTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"resolvedOptions\" in Intl.DateTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"DateTimeFormat\" in Intl && \"supportedLocalesOf\" in Intl.DateTimeFormat",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DisplayNames",
      "info": {
        "code": "\"Intl\" in self && \"DisplayNames\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DisplayNames.DisplayNames",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DisplayNames\" in Intl)) {\n    return { result: false, message: \"Intl.DisplayNames is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.DisplayNames\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: invalid_argument"
    },
    {
      "name": "javascript.builtins.Intl.DisplayNames.of",
      "info": {
        "code": "\"Intl\" in self && \"DisplayNames\" in Intl && \"of\" in Intl.DisplayNames.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DisplayNames.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"DisplayNames\" in Intl && \"resolvedOptions\" in Intl.DisplayNames.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DisplayNames.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"DisplayNames\" in Intl && \"supportedLocalesOf\" in Intl.DisplayNames",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat",
      "info": {
        "code": "\"Intl\" in self && \"DurationFormat\" in Intl",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat.DurationFormat",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"DurationFormat\" in Intl)) {\n    return { result: false, message: \"Intl.DurationFormat is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.DurationFormat\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Intl.DurationFormat is not defined"
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat.format",
      "info": {
        "code": "\"Intl\" in self && \"DurationFormat\" in Intl && \"format\" in Intl.DurationFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat.formatToParts",
      "info": {
        "code": "\"Intl\" in self && \"DurationFormat\" in Intl && \"formatToParts\" in Intl.DurationFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"DurationFormat\" in Intl && \"resolvedOptions\" in Intl.DurationFormat.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.DurationFormat.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"DurationFormat\" in Intl && \"supportedLocalesOf\" in Intl.DurationFormat",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.ListFormat",
      "info": {
        "code": "\"Intl\" in self && \"ListFormat\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.ListFormat.ListFormat",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"ListFormat\" in Intl)) {\n    return { result: false, message: \"Intl.ListFormat is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.ListFormat\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.ListFormat.format",
      "info": {
        "code": "\"Intl\" in self && \"ListFormat\" in Intl && \"format\" in Intl.ListFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.ListFormat.formatToParts",
      "info": {
        "code": "\"Intl\" in self && \"ListFormat\" in Intl && \"formatToParts\" in Intl.ListFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.ListFormat.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"ListFormat\" in Intl && \"resolvedOptions\" in Intl.ListFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.ListFormat.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"ListFormat\" in Intl && \"supportedLocalesOf\" in Intl.ListFormat",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.Locale",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Locale\" in Intl)) {\n    return { result: false, message: \"Intl.Locale is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.Locale\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: First argument to Intl.Locale constructor can't be empty or missing"
    },
    {
      "name": "javascript.builtins.Intl.Locale.baseName",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"baseName\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.calendar",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"calendar\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.caseFirst",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"caseFirst\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.collation",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"collation\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.getCalendars",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getCalendars\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getCollations",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getCollations\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getHourCycles",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getHourCycles\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getNumberingSystems",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getNumberingSystems\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getTextInfo",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getTextInfo\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getTimeZones",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getTimeZones\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.getWeekInfo",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"getWeekInfo\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Intl.Locale.hourCycle",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"hourCycle\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.language",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"language\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.maximize",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"maximize\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.minimize",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"minimize\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.numberingSystem",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"numberingSystem\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.numeric",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"numeric\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.region",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"region\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.script",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"script\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Locale.toString",
      "info": {
        "code": "\"Intl\" in self && \"Locale\" in Intl && \"toString\" in Intl.Locale.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.NumberFormat\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.locales_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  var instance = new Intl.NumberFormat(\"de\");\n  var options = instance.resolvedOptions();\n  return options.locale === \"de\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  } // The style parameter was one of the first options available\n  return bcd.testOptionParam(construct, null, \"style\", \"currency\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: Currency code is required with currency style."
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_compactDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"compactDisplay\", \"long\", {\n    notation: \"compact\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currencyDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"currencyDisplay\", \"name\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currencySign_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"currencySign\", \"accounting\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currency_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"currency\", \"USD\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_localeMatcher_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"localeMatcher\", \"lookup\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_maximumFractionDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"maximumFractionDigits\", 10);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_maximumSignificantDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"maximumSignificantDigits\", 10);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumFractionDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"minimumFractionDigits\", 10);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumIntegerDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"minimumIntegerDigits\", 10);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumSignificantDigits_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"minimumSignificantDigits\", 10);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_notation_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"notation\", \"compact\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_numberingSystem_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"numberingSystem\", \"latn\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingIncrement_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"roundingIncrement\", 200);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: maximumFractionDigits value is out of range."
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingMode_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"roundingMode\", \"floor\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingPriority_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"roundingPriority\",\n    \"lessPrecision\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"signDisplay\", \"always\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter.negative",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  var instance = Intl.NumberFormat(\"en\", { signDisplay: \"negative\" });\n  var options = instance.resolvedOptions();\n  return options.signDisplay === \"negative\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_style_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"style\", \"currency\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: Currency code is required with currency style."
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_trailingZeroDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"trailingZeroDisplay\",\n    \"currency\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: Value currency out of range for Intl.NumberFormat options property trailingZeroDisplay"
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_unitDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"unitDisplay\", \"narrow\", {\n    unit: \"gigabyte\"\n  });\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_unit_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"unit\", \"gigabyte\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"useGrouping\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter.string_values",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"NumberFormat\" in Intl)) {\n    return { result: false, message: \"Intl.NumberFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.NumberFormat(\"en\", options);\n  }\n  var instance = Intl.NumberFormat(\"en\", { useGrouping: \"always\" });\n  var options = instance.resolvedOptions();\n  return options.useGrouping === \"always\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.format",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"format\" in Intl.NumberFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.formatRange",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"formatRange\" in Intl.NumberFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.formatRangeToParts",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"formatRangeToParts\" in Intl.NumberFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.formatToParts",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"formatToParts\" in Intl.NumberFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"resolvedOptions\" in Intl.NumberFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.NumberFormat.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"NumberFormat\" in Intl && \"supportedLocalesOf\" in Intl.NumberFormat",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules",
      "info": {
        "code": "\"Intl\" in self && \"PluralRules\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.PluralRules\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules.options_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.PluralRules(\"en\", options);\n  } // The roundingPriority parameter was one of the first options available\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"roundingPriority\",\n    \"lessPrecision\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_roundingIncrement_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.PluralRules(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"roundingIncrement\", 200);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: maximumFractionDigits value is out of range."
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_roundingMode_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.PluralRules(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"roundingMode\", \"floor\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_roundingPriority_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.PluralRules(\"en\", options);\n  }\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"roundingPriority\",\n    \"lessPrecision\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_trailingZeroDisplay_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"PluralRules\" in Intl)) {\n    return { result: false, message: \"Intl.PluralRules is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.PluralRules(\"en\", options);\n  }\n  return bcd.testOptionParam(\n    construct,\n    null,\n    \"trailingZeroDisplay\",\n    \"currency\"\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: Value currency out of range for Intl.PluralRules options property trailingZeroDisplay"
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"PluralRules\" in Intl && \"resolvedOptions\" in Intl.PluralRules.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.select",
      "info": {
        "code": "\"Intl\" in self && \"PluralRules\" in Intl && \"select\" in Intl.PluralRules.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.selectRange",
      "info": {
        "code": "\"Intl\" in self && \"PluralRules\" in Intl && \"selectRange\" in Intl.PluralRules.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.PluralRules.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"PluralRules\" in Intl && \"supportedLocalesOf\" in Intl.PluralRules",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat",
      "info": {
        "code": "\"Intl\" in self && \"RelativeTimeFormat\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.RelativeTimeFormat\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.locales_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  }\n  var instance = new Intl.RelativeTimeFormat(\"de\");\n  var options = instance.resolvedOptions();\n  return options.locale === \"de\";\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  } // The style parameter was one of the first options available\n  return bcd.testOptionParam(construct, null, \"style\", \"currency\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: Value currency out of range for Intl.RelativeTimeFormat options property style"
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_localeMatcher_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"localeMatcher\", \"lookup\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_numberingSystem_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"numberingSystem\", \"latn\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_numeric_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"numeric\", \"auto\");\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_style_parameter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"RelativeTimeFormat\" in Intl)) {\n    return { result: false, message: \"Intl.RelativeTimeFormat is not defined\" };\n  }\n\n  function construct(options) {\n    new Intl.RelativeTimeFormat(\"en\", options);\n  }\n  return bcd.testOptionParam(construct, null, \"style\", \"currency\");\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw RangeError: Value currency out of range for Intl.RelativeTimeFormat options property style"
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.format",
      "info": {
        "code": "\"Intl\" in self && \"RelativeTimeFormat\" in Intl && \"format\" in Intl.RelativeTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.formatToParts",
      "info": {
        "code": "\"Intl\" in self && \"RelativeTimeFormat\" in Intl && \"formatToParts\" in Intl.RelativeTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"RelativeTimeFormat\" in Intl && \"resolvedOptions\" in Intl.RelativeTimeFormat.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.RelativeTimeFormat.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"RelativeTimeFormat\" in Intl && \"supportedLocalesOf\" in Intl.RelativeTimeFormat",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segmenter",
      "info": {
        "code": "\"Intl\" in self && \"Segmenter\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segmenter.Segmenter",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self)) {\n    return { result: false, message: \"Intl is not defined\" };\n  }\n  if (!(\"Segmenter\" in Intl)) {\n    return { result: false, message: \"Intl.Segmenter is not defined\" };\n  }\n  return bcd.testConstructor(\"Intl.Segmenter\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Intl.Segmenter.resolvedOptions",
      "info": {
        "code": "\"Intl\" in self && \"Segmenter\" in Intl && \"resolvedOptions\" in Intl.Segmenter.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segmenter.segment",
      "info": {
        "code": "\"Intl\" in self && \"Segmenter\" in Intl && \"segment\" in Intl.Segmenter.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segmenter.supportedLocalesOf",
      "info": {
        "code": "\"Intl\" in self && \"Segmenter\" in Intl && \"supportedLocalesOf\" in Intl.Segmenter",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segments",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self && \"Segmenter\" in Intl)) {\n    return { result: false, message: \"Intl.Segmenter is not defined\" };\n  }\n  var segmenter = new Intl.Segmenter(\"fr\", { granularity: \"word\" });\n  var instance = segmenter.segment(\"Que ma joie demeure\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segments.@@iterator",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self && \"Segmenter\" in Intl)) {\n    return { result: false, message: \"Intl.Segmenter is not defined\" };\n  }\n  var segmenter = new Intl.Segmenter(\"fr\", { granularity: \"word\" });\n  var instance = segmenter.segment(\"Que ma joie demeure\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.Segments.containing",
      "info": {
        "code": "(function () {\n  if (!(\"Intl\" in self && \"Segmenter\" in Intl)) {\n    return { result: false, message: \"Intl.Segmenter is not defined\" };\n  }\n  var segmenter = new Intl.Segmenter(\"fr\", { granularity: \"word\" });\n  var instance = segmenter.segment(\"Que ma joie demeure\");\n  return !!instance && \"containing\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.getCanonicalLocales",
      "info": {
        "code": "\"Intl\" in self && \"getCanonicalLocales\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Intl.supportedValuesOf",
      "info": {
        "code": "\"Intl\" in self && \"supportedValuesOf\" in Intl",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.@@dispose",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"dispose\" in Symbol &&\n    !!instance[Symbol.dispose]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Iterator.@@iterator",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.Iterator",
      "info": {
        "code": "(function () {\n  if (!(\"Iterator\" in self)) {\n    return { result: false, message: \"Iterator is not defined\" };\n  }\n  return bcd.testConstructor(\"Iterator\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": null,
      "message": "threw TypeError: Abstract class Iterator not directly constructable"
    },
    {
      "name": "javascript.builtins.Iterator.drop",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"drop\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.every",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"every\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.filter",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"filter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.find",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"find\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.flatMap",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"flatMap\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.forEach",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.from",
      "info": {
        "code": "\"Iterator\" in self && \"from\" in Iterator",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.map",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"map\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.reduce",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"reduce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.some",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"some\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.take",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"take\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Iterator.toArray",
      "info": {
        "code": "(function () {\n  var array = [1, 2, 3];\n  if (!(\"values\" in array)) {\n    return { result: false, message: \"Array.prototype.values is not defined\" };\n  }\n  var instance = array.values();\n  return !!instance && \"toArray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.JSON",
      "info": {
        "code": "\"JSON\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.JSON.parse",
      "info": {
        "code": "\"JSON\" in self && \"parse\" in JSON",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.JSON.stringify",
      "info": {
        "code": "\"JSON\" in self && \"stringify\" in JSON",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map",
      "info": {
        "code": "\"Map\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"Map\" in self && !!(Map.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"Map\" in self && !!(Map[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.Map",
      "info": {
        "code": "(function () {\n  if (!(\"Map\" in self)) {\n    return { result: false, message: \"Map is not defined\" };\n  }\n  return bcd.testConstructor(\"Map\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Map.Map.iterable_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new Map([\n      [1, \"one\"],\n      [2, \"two\"],\n      [3, \"three\"]\n    ]);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.Map.null_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new Map(null);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.clear",
      "info": {
        "code": "\"Map\" in self && \"clear\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.delete",
      "info": {
        "code": "\"Map\" in self && \"delete\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.entries",
      "info": {
        "code": "\"Map\" in self && \"entries\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.forEach",
      "info": {
        "code": "\"Map\" in self && \"forEach\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.get",
      "info": {
        "code": "\"Map\" in self && \"get\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.getOrInsert",
      "info": {
        "code": "\"Map\" in self && \"getOrInsert\" in Map.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Map.getOrInsertComputed",
      "info": {
        "code": "\"Map\" in self && \"getOrInsertComputed\" in Map.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Map.groupBy",
      "info": {
        "code": "\"Map\" in self && \"groupBy\" in Map",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.has",
      "info": {
        "code": "\"Map\" in self && \"has\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.keys",
      "info": {
        "code": "\"Map\" in self && \"keys\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.set",
      "info": {
        "code": "\"Map\" in self && \"set\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.size",
      "info": {
        "code": "\"Map\" in self && \"size\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Map.values",
      "info": {
        "code": "\"Map\" in self && \"values\" in Map.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math",
      "info": {
        "code": "\"Math\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.E",
      "info": {
        "code": "\"Math\" in self && \"E\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.LN10",
      "info": {
        "code": "\"Math\" in self && \"LN10\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.LN2",
      "info": {
        "code": "\"Math\" in self && \"LN2\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.LOG10E",
      "info": {
        "code": "\"Math\" in self && \"LOG10E\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.LOG2E",
      "info": {
        "code": "\"Math\" in self && \"LOG2E\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.PI",
      "info": {
        "code": "\"Math\" in self && \"PI\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.SQRT1_2",
      "info": {
        "code": "\"Math\" in self && \"SQRT1_2\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.SQRT2",
      "info": {
        "code": "\"Math\" in self && \"SQRT2\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.abs",
      "info": {
        "code": "\"Math\" in self && \"abs\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.acos",
      "info": {
        "code": "\"Math\" in self && \"acos\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.acosh",
      "info": {
        "code": "\"Math\" in self && \"acosh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.asin",
      "info": {
        "code": "\"Math\" in self && \"asin\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.asinh",
      "info": {
        "code": "\"Math\" in self && \"asinh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.atan",
      "info": {
        "code": "\"Math\" in self && \"atan\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.atan2",
      "info": {
        "code": "\"Math\" in self && \"atan2\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.atanh",
      "info": {
        "code": "\"Math\" in self && \"atanh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.cbrt",
      "info": {
        "code": "\"Math\" in self && \"cbrt\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.ceil",
      "info": {
        "code": "\"Math\" in self && \"ceil\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.clz32",
      "info": {
        "code": "\"Math\" in self && \"clz32\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.cos",
      "info": {
        "code": "\"Math\" in self && \"cos\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.cosh",
      "info": {
        "code": "\"Math\" in self && \"cosh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.exp",
      "info": {
        "code": "\"Math\" in self && \"exp\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.expm1",
      "info": {
        "code": "\"Math\" in self && \"expm1\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.f16round",
      "info": {
        "code": "\"Math\" in self && \"f16round\" in Math",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Math.floor",
      "info": {
        "code": "\"Math\" in self && \"floor\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.fround",
      "info": {
        "code": "\"Math\" in self && \"fround\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.hypot",
      "info": {
        "code": "\"Math\" in self && \"hypot\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.imul",
      "info": {
        "code": "\"Math\" in self && \"imul\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.log",
      "info": {
        "code": "\"Math\" in self && \"log\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.log10",
      "info": {
        "code": "\"Math\" in self && \"log10\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.log1p",
      "info": {
        "code": "\"Math\" in self && \"log1p\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.log2",
      "info": {
        "code": "\"Math\" in self && \"log2\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.max",
      "info": {
        "code": "\"Math\" in self && \"max\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.min",
      "info": {
        "code": "\"Math\" in self && \"min\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.pow",
      "info": {
        "code": "\"Math\" in self && \"pow\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.random",
      "info": {
        "code": "\"Math\" in self && \"random\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.round",
      "info": {
        "code": "\"Math\" in self && \"round\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.sign",
      "info": {
        "code": "\"Math\" in self && \"sign\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.sin",
      "info": {
        "code": "\"Math\" in self && \"sin\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.sinh",
      "info": {
        "code": "\"Math\" in self && \"sinh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.sqrt",
      "info": {
        "code": "\"Math\" in self && \"sqrt\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.sumPrecise",
      "info": {
        "code": "\"Math\" in self && \"sumPrecise\" in Math",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Math.tan",
      "info": {
        "code": "\"Math\" in self && \"tan\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.tanh",
      "info": {
        "code": "\"Math\" in self && \"tanh\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Math.trunc",
      "info": {
        "code": "\"Math\" in self && \"trunc\" in Math",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.NaN",
      "info": {
        "code": "\"NaN\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number",
      "info": {
        "code": "\"Number\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.EPSILON",
      "info": {
        "code": "\"Number\" in self && \"EPSILON\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.MAX_SAFE_INTEGER",
      "info": {
        "code": "\"Number\" in self && \"MAX_SAFE_INTEGER\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.MAX_VALUE",
      "info": {
        "code": "\"Number\" in self && \"MAX_VALUE\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.MIN_SAFE_INTEGER",
      "info": {
        "code": "\"Number\" in self && \"MIN_SAFE_INTEGER\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.MIN_VALUE",
      "info": {
        "code": "\"Number\" in self && \"MIN_VALUE\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.NEGATIVE_INFINITY",
      "info": {
        "code": "\"Number\" in self && \"NEGATIVE_INFINITY\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.NaN",
      "info": {
        "code": "\"Number\" in self && \"NaN\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.Number",
      "info": {
        "code": "(function () {\n  if (!(\"Number\" in self)) {\n    return { result: false, message: \"Number is not defined\" };\n  }\n  return bcd.testConstructor(\"Number\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Number.POSITIVE_INFINITY",
      "info": {
        "code": "\"Number\" in self && \"POSITIVE_INFINITY\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.isFinite",
      "info": {
        "code": "\"Number\" in self && \"isFinite\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.isInteger",
      "info": {
        "code": "\"Number\" in self && \"isInteger\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.isNaN",
      "info": {
        "code": "\"Number\" in self && \"isNaN\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.isSafeInteger",
      "info": {
        "code": "\"Number\" in self && \"isSafeInteger\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.parseFloat",
      "info": {
        "code": "\"Number\" in self && \"parseFloat\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.parseInt",
      "info": {
        "code": "\"Number\" in self && \"parseInt\" in Number",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.toExponential",
      "info": {
        "code": "\"Number\" in self && \"toExponential\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.toFixed",
      "info": {
        "code": "\"Number\" in self && \"toFixed\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.toLocaleString",
      "info": {
        "code": "\"Number\" in self && \"toLocaleString\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.toPrecision",
      "info": {
        "code": "\"Number\" in self && \"toPrecision\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.toString",
      "info": {
        "code": "\"Number\" in self && \"toString\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Number.valueOf",
      "info": {
        "code": "\"Number\" in self && \"valueOf\" in Number.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object",
      "info": {
        "code": "\"Object\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.Object",
      "info": {
        "code": "(function () {\n  if (!(\"Object\" in self)) {\n    return { result: false, message: \"Object is not defined\" };\n  }\n  return bcd.testConstructor(\"Object\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Object.assign",
      "info": {
        "code": "\"Object\" in self && \"assign\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.constructor",
      "info": {
        "code": "(function () {\n  var instance = {};\n  return !!instance.constructor;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.create",
      "info": {
        "code": "\"Object\" in self && \"create\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.defineGetter",
      "info": {
        "code": "(function () {\n  return \"__defineGetter__\" in {};\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.defineProperties",
      "info": {
        "code": "\"Object\" in self && \"defineProperties\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.defineProperty",
      "info": {
        "code": "\"Object\" in self && \"defineProperty\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.defineSetter",
      "info": {
        "code": "(function () {\n  return \"__defineSetter__\" in {};\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.entries",
      "info": {
        "code": "\"Object\" in self && \"entries\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.freeze",
      "info": {
        "code": "\"Object\" in self && \"freeze\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.fromEntries",
      "info": {
        "code": "\"Object\" in self && \"fromEntries\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.getOwnPropertyDescriptor",
      "info": {
        "code": "\"Object\" in self && \"getOwnPropertyDescriptor\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.getOwnPropertyDescriptors",
      "info": {
        "code": "\"Object\" in self && \"getOwnPropertyDescriptors\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.getOwnPropertyNames",
      "info": {
        "code": "\"Object\" in self && \"getOwnPropertyNames\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.getOwnPropertySymbols",
      "info": {
        "code": "\"Object\" in self && \"getOwnPropertySymbols\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.getPrototypeOf",
      "info": {
        "code": "\"Object\" in self && \"getPrototypeOf\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.groupBy",
      "info": {
        "code": "\"Object\" in self && \"groupBy\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.hasOwn",
      "info": {
        "code": "\"Object\" in self && \"hasOwn\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.hasOwnProperty",
      "info": {
        "code": "\"Object\" in self && \"hasOwnProperty\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.is",
      "info": {
        "code": "\"Object\" in self && \"is\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.isExtensible",
      "info": {
        "code": "\"Object\" in self && \"isExtensible\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.isFrozen",
      "info": {
        "code": "\"Object\" in self && \"isFrozen\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.isPrototypeOf",
      "info": {
        "code": "\"Object\" in self && \"isPrototypeOf\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.isSealed",
      "info": {
        "code": "\"Object\" in self && \"isSealed\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.keys",
      "info": {
        "code": "\"Object\" in self && \"keys\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.lookupGetter",
      "info": {
        "code": "(function () {\n  return \"__lookupGetter__\" in {};\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.lookupSetter",
      "info": {
        "code": "(function () {\n  return \"__lookupSetter__\" in {};\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.preventExtensions",
      "info": {
        "code": "\"Object\" in self && \"preventExtensions\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.propertyIsEnumerable",
      "info": {
        "code": "\"Object\" in self && \"propertyIsEnumerable\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.proto",
      "info": {
        "code": "(function () {\n  return \"__proto__\" in {};\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.seal",
      "info": {
        "code": "\"Object\" in self && \"seal\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.setPrototypeOf",
      "info": {
        "code": "\"Object\" in self && \"setPrototypeOf\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.toLocaleString",
      "info": {
        "code": "\"Object\" in self && \"toLocaleString\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.toString",
      "info": {
        "code": "\"Object\" in self && \"toString\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.valueOf",
      "info": {
        "code": "\"Object\" in self && \"valueOf\" in Object.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Object.values",
      "info": {
        "code": "\"Object\" in self && \"values\" in Object",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise",
      "info": {
        "code": "\"Promise\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"Promise\" in self && !!(Promise[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.Promise",
      "info": {
        "code": "(function () {\n  if (!(\"Promise\" in self)) {\n    return { result: false, message: \"Promise is not defined\" };\n  }\n  return bcd.testConstructor(\"Promise\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Promise resolver undefined is not a function"
    },
    {
      "name": "javascript.builtins.Promise.all",
      "info": {
        "code": "\"Promise\" in self && \"all\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.allSettled",
      "info": {
        "code": "\"Promise\" in self && \"allSettled\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.any",
      "info": {
        "code": "\"Promise\" in self && \"any\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.catch",
      "info": {
        "code": "\"Promise\" in self && \"catch\" in Promise.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.finally",
      "info": {
        "code": "\"Promise\" in self && \"finally\" in Promise.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.race",
      "info": {
        "code": "\"Promise\" in self && \"race\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.reject",
      "info": {
        "code": "\"Promise\" in self && \"reject\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.resolve",
      "info": {
        "code": "\"Promise\" in self && \"resolve\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.then",
      "info": {
        "code": "\"Promise\" in self && \"then\" in Promise.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Promise.try",
      "info": {
        "code": "\"Promise\" in self && \"try\" in Promise",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Promise.withResolvers",
      "info": {
        "code": "\"Promise\" in self && \"withResolvers\" in Promise",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Proxy",
      "info": {
        "code": "\"Proxy\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Proxy.Proxy",
      "info": {
        "code": "(function () {\n  if (!(\"Proxy\" in self)) {\n    return { result: false, message: \"Proxy is not defined\" };\n  }\n  return bcd.testConstructor(\"Proxy\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: Cannot create proxy with a non-object as target or handler"
    },
    {
      "name": "javascript.builtins.Proxy.revocable",
      "info": {
        "code": "\"Proxy\" in self && \"revocable\" in Proxy",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RangeError",
      "info": {
        "code": "\"RangeError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RangeError.RangeError",
      "info": {
        "code": "(function () {\n  if (!(\"RangeError\" in self)) {\n    return { result: false, message: \"RangeError is not defined\" };\n  }\n  return bcd.testConstructor(\"RangeError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.ReferenceError",
      "info": {
        "code": "\"ReferenceError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.ReferenceError.ReferenceError",
      "info": {
        "code": "(function () {\n  if (!(\"ReferenceError\" in self)) {\n    return { result: false, message: \"ReferenceError is not defined\" };\n  }\n  return bcd.testConstructor(\"ReferenceError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Reflect",
      "info": {
        "code": "\"Reflect\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.apply",
      "info": {
        "code": "\"Reflect\" in self && \"apply\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.construct",
      "info": {
        "code": "\"Reflect\" in self && \"construct\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.defineProperty",
      "info": {
        "code": "\"Reflect\" in self && \"defineProperty\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.deleteProperty",
      "info": {
        "code": "\"Reflect\" in self && \"deleteProperty\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.get",
      "info": {
        "code": "\"Reflect\" in self && \"get\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.getOwnPropertyDescriptor",
      "info": {
        "code": "\"Reflect\" in self && \"getOwnPropertyDescriptor\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.getPrototypeOf",
      "info": {
        "code": "\"Reflect\" in self && \"getPrototypeOf\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.has",
      "info": {
        "code": "\"Reflect\" in self && \"has\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.isExtensible",
      "info": {
        "code": "\"Reflect\" in self && \"isExtensible\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.ownKeys",
      "info": {
        "code": "\"Reflect\" in self && \"ownKeys\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.preventExtensions",
      "info": {
        "code": "\"Reflect\" in self && \"preventExtensions\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.set",
      "info": {
        "code": "\"Reflect\" in self && \"set\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Reflect.setPrototypeOf",
      "info": {
        "code": "\"Reflect\" in self && \"setPrototypeOf\" in Reflect",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@match",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"match\" in Symbol &&\n    !!instance[Symbol.match]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@matchAll",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"matchAll\" in Symbol &&\n    !!instance[Symbol.matchAll]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@replace",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"replace\" in Symbol &&\n    !!instance[Symbol.replace]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@search",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"search\" in Symbol &&\n    !!instance[Symbol.search]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"RegExp\" in self && !!(RegExp[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.@@split",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"split\" in Symbol &&\n    !!instance[Symbol.split]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.RegExp",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  return bcd.testConstructor(\"RegExp\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.RegExp.compile",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"compile\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.dotAll",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"dotAll\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.escape",
      "info": {
        "code": "\"RegExp\" in self && \"escape\" in RegExp",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.RegExp.exec",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"exec\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.flags",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"flags\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.global",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"global\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.hasIndices",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"hasIndices\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.ignoreCase",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"ignoreCase\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.input",
      "info": {
        "code": "\"RegExp\" in self && \"input\" in RegExp",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.lastIndex",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"lastIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.lastMatch",
      "info": {
        "code": "\"RegExp\" in self && \"lastMatch\" in RegExp",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.lastParen",
      "info": {
        "code": "\"RegExp\" in self && \"lastParen\" in RegExp",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.leftContext",
      "info": {
        "code": "\"RegExp\" in self && \"leftContext\" in RegExp",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.multiline",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"multiline\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.n",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return \"$1\" in RegExp;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.rightContext",
      "info": {
        "code": "\"RegExp\" in self && \"rightContext\" in RegExp",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.source",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"source\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.sticky",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"sticky\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.test",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"test\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.toString",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"toString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.unicode",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"unicode\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.RegExp.unicodeSets",
      "info": {
        "code": "(function () {\n  if (!(\"RegExp\" in self)) {\n    return { result: false, message: \"RegExp is not defined\" };\n  }\n  var instance = new RegExp(\"foo\", \"g\");\n  return !!instance && \"unicodeSets\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set",
      "info": {
        "code": "\"Set\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"Set\" in self && !!(Set.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"Set\" in self && !!(Set[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.Set",
      "info": {
        "code": "(function () {\n  if (!(\"Set\" in self)) {\n    return { result: false, message: \"Set is not defined\" };\n  }\n  return bcd.testConstructor(\"Set\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Set.Set.iterable_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new Set([1, 2, 3, 4, 5]);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.Set.null_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new Set(null);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.add",
      "info": {
        "code": "\"Set\" in self && \"add\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.clear",
      "info": {
        "code": "\"Set\" in self && \"clear\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.delete",
      "info": {
        "code": "\"Set\" in self && \"delete\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.difference",
      "info": {
        "code": "\"Set\" in self && \"difference\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.entries",
      "info": {
        "code": "\"Set\" in self && \"entries\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.forEach",
      "info": {
        "code": "\"Set\" in self && \"forEach\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.has",
      "info": {
        "code": "\"Set\" in self && \"has\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.intersection",
      "info": {
        "code": "\"Set\" in self && \"intersection\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.isDisjointFrom",
      "info": {
        "code": "\"Set\" in self && \"isDisjointFrom\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.isSubsetOf",
      "info": {
        "code": "\"Set\" in self && \"isSubsetOf\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.isSupersetOf",
      "info": {
        "code": "\"Set\" in self && \"isSupersetOf\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.keys",
      "info": {
        "code": "\"Set\" in self && \"keys\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.size",
      "info": {
        "code": "\"Set\" in self && \"size\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Set.symmetricDifference",
      "info": {
        "code": "\"Set\" in self && \"symmetricDifference\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.union",
      "info": {
        "code": "\"Set\" in self && \"union\" in Set.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Set.values",
      "info": {
        "code": "\"Set\" in self && \"values\" in Set.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer",
      "info": {
        "code": "\"SharedArrayBuffer\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.@@species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol && \"SharedArrayBuffer\" in self && !!(SharedArrayBuffer[Symbol.species])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.SharedArrayBuffer",
      "info": {
        "code": "(function () {\n  if (!(\"SharedArrayBuffer\" in self)) {\n    return { result: false, message: \"SharedArrayBuffer is not defined\" };\n  }\n  return bcd.testConstructor(\"SharedArrayBuffer\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.byteLength",
      "info": {
        "code": "\"SharedArrayBuffer\" in self && \"byteLength\" in SharedArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.grow",
      "info": {
        "code": "\"SharedArrayBuffer\" in self && \"grow\" in SharedArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.growable",
      "info": {
        "code": "\"SharedArrayBuffer\" in self && \"growable\" in SharedArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.maxByteLength",
      "info": {
        "code": "\"SharedArrayBuffer\" in self && \"maxByteLength\" in SharedArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SharedArrayBuffer.slice",
      "info": {
        "code": "\"SharedArrayBuffer\" in self && \"slice\" in SharedArrayBuffer.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String",
      "info": {
        "code": "\"String\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.@@iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol && \"String\" in self && !!(String.prototype[Symbol.iterator])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.String",
      "info": {
        "code": "(function () {\n  if (!(\"String\" in self)) {\n    return { result: false, message: \"String is not defined\" };\n  }\n  return bcd.testConstructor(\"String\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.String.anchor",
      "info": {
        "code": "\"String\" in self && \"anchor\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.at",
      "info": {
        "code": "\"String\" in self && \"at\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.big",
      "info": {
        "code": "\"String\" in self && \"big\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.blink",
      "info": {
        "code": "\"String\" in self && \"blink\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.bold",
      "info": {
        "code": "\"String\" in self && \"bold\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.charAt",
      "info": {
        "code": "\"String\" in self && \"charAt\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.charCodeAt",
      "info": {
        "code": "\"String\" in self && \"charCodeAt\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.codePointAt",
      "info": {
        "code": "\"String\" in self && \"codePointAt\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.concat",
      "info": {
        "code": "\"String\" in self && \"concat\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.contains",
      "info": {
        "code": "\"String\" in self && \"contains\" in String.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.String.endsWith",
      "info": {
        "code": "\"String\" in self && \"endsWith\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.fixed",
      "info": {
        "code": "\"String\" in self && \"fixed\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.fontcolor",
      "info": {
        "code": "\"String\" in self && \"fontcolor\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.fontsize",
      "info": {
        "code": "\"String\" in self && \"fontsize\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.fromCharCode",
      "info": {
        "code": "\"String\" in self && \"fromCharCode\" in String",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.fromCodePoint",
      "info": {
        "code": "\"String\" in self && \"fromCodePoint\" in String",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.includes",
      "info": {
        "code": "\"String\" in self && \"includes\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.indexOf",
      "info": {
        "code": "\"String\" in self && \"indexOf\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.isWellFormed",
      "info": {
        "code": "\"String\" in self && \"isWellFormed\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.italics",
      "info": {
        "code": "\"String\" in self && \"italics\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.lastIndexOf",
      "info": {
        "code": "\"String\" in self && \"lastIndexOf\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.length",
      "info": {
        "code": "\"String\" in self && \"length\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.link",
      "info": {
        "code": "\"String\" in self && \"link\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.localeCompare",
      "info": {
        "code": "\"String\" in self && \"localeCompare\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.match",
      "info": {
        "code": "\"String\" in self && \"match\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.matchAll",
      "info": {
        "code": "\"String\" in self && \"matchAll\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.normalize",
      "info": {
        "code": "\"String\" in self && \"normalize\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.padEnd",
      "info": {
        "code": "\"String\" in self && \"padEnd\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.padStart",
      "info": {
        "code": "\"String\" in self && \"padStart\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.raw",
      "info": {
        "code": "\"String\" in self && \"raw\" in String",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.repeat",
      "info": {
        "code": "\"String\" in self && \"repeat\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.replace",
      "info": {
        "code": "\"String\" in self && \"replace\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.replaceAll",
      "info": {
        "code": "\"String\" in self && \"replaceAll\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.search",
      "info": {
        "code": "\"String\" in self && \"search\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.slice",
      "info": {
        "code": "\"String\" in self && \"slice\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.small",
      "info": {
        "code": "\"String\" in self && \"small\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.split",
      "info": {
        "code": "\"String\" in self && \"split\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.startsWith",
      "info": {
        "code": "\"String\" in self && \"startsWith\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.strike",
      "info": {
        "code": "\"String\" in self && \"strike\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.sub",
      "info": {
        "code": "\"String\" in self && \"sub\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.substr",
      "info": {
        "code": "\"String\" in self && \"substr\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.substring",
      "info": {
        "code": "\"String\" in self && \"substring\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.sup",
      "info": {
        "code": "\"String\" in self && \"sup\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toLocaleLowerCase",
      "info": {
        "code": "\"String\" in self && \"toLocaleLowerCase\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toLocaleUpperCase",
      "info": {
        "code": "\"String\" in self && \"toLocaleUpperCase\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toLowerCase",
      "info": {
        "code": "\"String\" in self && \"toLowerCase\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toString",
      "info": {
        "code": "\"String\" in self && \"toString\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toUpperCase",
      "info": {
        "code": "\"String\" in self && \"toUpperCase\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.toWellFormed",
      "info": {
        "code": "\"String\" in self && \"toWellFormed\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.trim",
      "info": {
        "code": "\"String\" in self && \"trim\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.trimEnd",
      "info": {
        "code": "\"String\" in self && \"trimEnd\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.trimStart",
      "info": {
        "code": "\"String\" in self && \"trimStart\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.String.valueOf",
      "info": {
        "code": "\"String\" in self && \"valueOf\" in String.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SuppressedError",
      "info": {
        "code": "(function () {\n  if (!(\"SuppressedError\" in self)) {\n    return { result: false, message: \"SuppressedError is not defined\" };\n  }\n  var instance = new SuppressedError(\n    new Error(\"New error\"),\n    new Error(\"Original error\"),\n    \"Hello\"\n  );\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SuppressedError is not defined"
    },
    {
      "name": "javascript.builtins.SuppressedError.SuppressedError",
      "info": {
        "code": "(function () {\n  if (!(\"SuppressedError\" in self)) {\n    return { result: false, message: \"SuppressedError is not defined\" };\n  }\n  return bcd.testConstructor(\"SuppressedError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SuppressedError is not defined"
    },
    {
      "name": "javascript.builtins.SuppressedError.error",
      "info": {
        "code": "(function () {\n  if (!(\"SuppressedError\" in self)) {\n    return { result: false, message: \"SuppressedError is not defined\" };\n  }\n  var instance = new SuppressedError(\n    new Error(\"New error\"),\n    new Error(\"Original error\"),\n    \"Hello\"\n  );\n  return !!instance && \"error\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SuppressedError is not defined"
    },
    {
      "name": "javascript.builtins.SuppressedError.suppressed",
      "info": {
        "code": "(function () {\n  if (!(\"SuppressedError\" in self)) {\n    return { result: false, message: \"SuppressedError is not defined\" };\n  }\n  var instance = new SuppressedError(\n    new Error(\"New error\"),\n    new Error(\"Original error\"),\n    \"Hello\"\n  );\n  return !!instance && \"suppressed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "SuppressedError is not defined"
    },
    {
      "name": "javascript.builtins.Symbol",
      "info": {
        "code": "\"Symbol\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.@@toPrimitive",
      "info": {
        "code": "\"Symbol\" in self && \"toPrimitive\" in Symbol && \"Symbol\" in self && !!(Symbol.prototype[Symbol.toPrimitive])",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.Symbol",
      "info": {
        "code": "(function () {\n  if (!(\"Symbol\" in self)) {\n    return { result: false, message: \"Symbol is not defined\" };\n  }\n  return bcd.testConstructor(\"Symbol\", true);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Symbol.asyncDispose",
      "info": {
        "code": "\"Symbol\" in self && \"asyncDispose\" in Symbol",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Symbol.asyncIterator",
      "info": {
        "code": "\"Symbol\" in self && \"asyncIterator\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.description",
      "info": {
        "code": "\"Symbol\" in self && \"description\" in Symbol.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.dispose",
      "info": {
        "code": "\"Symbol\" in self && \"dispose\" in Symbol",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Symbol.for",
      "info": {
        "code": "\"Symbol\" in self && \"for\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.hasInstance",
      "info": {
        "code": "\"Symbol\" in self && \"hasInstance\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.isConcatSpreadable",
      "info": {
        "code": "\"Symbol\" in self && \"isConcatSpreadable\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.iterator",
      "info": {
        "code": "\"Symbol\" in self && \"iterator\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.keyFor",
      "info": {
        "code": "\"Symbol\" in self && \"keyFor\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.match",
      "info": {
        "code": "\"Symbol\" in self && \"match\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.matchAll",
      "info": {
        "code": "\"Symbol\" in self && \"matchAll\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.replace",
      "info": {
        "code": "\"Symbol\" in self && \"replace\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.search",
      "info": {
        "code": "\"Symbol\" in self && \"search\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.species",
      "info": {
        "code": "\"Symbol\" in self && \"species\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.split",
      "info": {
        "code": "\"Symbol\" in self && \"split\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.toPrimitive",
      "info": {
        "code": "\"Symbol\" in self && \"toPrimitive\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.toString",
      "info": {
        "code": "\"Symbol\" in self && \"toString\" in Symbol.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.toStringTag",
      "info": {
        "code": "\"Symbol\" in self && \"toStringTag\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.unscopables",
      "info": {
        "code": "\"Symbol\" in self && \"unscopables\" in Symbol",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Symbol.valueOf",
      "info": {
        "code": "\"Symbol\" in self && \"valueOf\" in Symbol.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SyntaxError",
      "info": {
        "code": "\"SyntaxError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.SyntaxError.SyntaxError",
      "info": {
        "code": "(function () {\n  if (!(\"SyntaxError\" in self)) {\n    return { result: false, message: \"SyntaxError is not defined\" };\n  }\n  return bcd.testConstructor(\"SyntaxError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Temporal",
      "info": {
        "code": "\"Temporal\" in self",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.Duration",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"Duration\" in Temporal)) {\n    return { result: false, message: \"Temporal.Duration is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.Duration\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.Duration.abs",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"abs\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.add",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"add\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.blank",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"blank\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.compare",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"compare\" in Temporal.Duration",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.days",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"days\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.from",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"from\" in Temporal.Duration",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.hours",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"hours\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.microseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"microseconds\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.milliseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"milliseconds\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.minutes",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"minutes\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.months",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"months\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.nanoseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"nanoseconds\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.negated",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"negated\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.round",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"round\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.seconds",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"seconds\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.sign",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"sign\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"subtract\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"toJSON\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"toLocaleString\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.toString",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"toString\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.total",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"total\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"valueOf\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.weeks",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"weeks\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.with",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"with\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Duration.years",
      "info": {
        "code": "\"Temporal\" in self && \"Duration\" in Temporal && \"years\" in Temporal.Duration.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.Instant",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"Instant\" in Temporal)) {\n    return { result: false, message: \"Temporal.Instant is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.Instant\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.Instant.add",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"add\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.compare",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"compare\" in Temporal.Instant",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.epochMilliseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"epochMilliseconds\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.epochNanoseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"epochNanoseconds\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.equals",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"equals\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.from",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"from\" in Temporal.Instant",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.fromEpochMilliseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"fromEpochMilliseconds\" in Temporal.Instant",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.fromEpochNanoseconds",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"fromEpochNanoseconds\" in Temporal.Instant",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.round",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"round\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.since",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"since\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"subtract\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"toJSON\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"toLocaleString\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.toString",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"toString\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.toZonedDateTimeISO",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"toZonedDateTimeISO\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.until",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"until\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Instant.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"Instant\" in Temporal && \"valueOf\" in Temporal.Instant.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.instant",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"instant\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.plainDateISO",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"plainDateISO\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.plainDateTimeISO",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"plainDateTimeISO\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.plainTimeISO",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"plainTimeISO\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.timeZoneId",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"timeZoneId\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.Now.zonedDateTimeISO",
      "info": {
        "code": "\"Temporal\" in self && \"Now\" in Temporal && \"zonedDateTimeISO\" in Temporal.Now",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.PlainDate",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"PlainDate\" in Temporal)) {\n    return { result: false, message: \"Temporal.PlainDate is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.PlainDate\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.add",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"add\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.calendarId",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"calendarId\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.compare",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"compare\" in Temporal.PlainDate",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.day",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"day\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.dayOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"dayOfWeek\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.dayOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"dayOfYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.daysInMonth",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"daysInMonth\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.daysInWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"daysInWeek\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.daysInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"daysInYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.equals",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"equals\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.era",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"era\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.eraYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"eraYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.from",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"from\" in Temporal.PlainDate",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.inLeapYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"inLeapYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.month",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"month\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.monthCode",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"monthCode\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.monthsInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"monthsInYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.since",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"since\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"subtract\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toJSON\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toLocaleString\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toPlainDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toPlainDateTime\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toPlainMonthDay",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toPlainMonthDay\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toPlainYearMonth",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toPlainYearMonth\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toString\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.toZonedDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"toZonedDateTime\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.until",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"until\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"valueOf\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.weekOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"weekOfYear\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.with",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"with\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.withCalendar",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"withCalendar\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.year",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"year\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDate.yearOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDate\" in Temporal && \"yearOfWeek\" in Temporal.PlainDate.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.PlainDateTime",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"PlainDateTime\" in Temporal)) {\n    return { result: false, message: \"Temporal.PlainDateTime is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.PlainDateTime\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.add",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"add\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.calendarId",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"calendarId\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.compare",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"compare\" in Temporal.PlainDateTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.day",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"day\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.dayOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"dayOfWeek\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.dayOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"dayOfYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.daysInMonth",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"daysInMonth\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.daysInWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"daysInWeek\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.daysInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"daysInYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.equals",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"equals\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.era",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"era\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.eraYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"eraYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.from",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"from\" in Temporal.PlainDateTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.hour",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"hour\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.inLeapYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"inLeapYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.microsecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"microsecond\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.millisecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"millisecond\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.minute",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"minute\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.month",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"month\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.monthCode",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"monthCode\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.monthsInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"monthsInYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.nanosecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"nanosecond\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.round",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"round\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.second",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"second\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.since",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"since\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"subtract\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toJSON\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toLocaleString\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toPlainDate",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toPlainDate\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toPlainTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toPlainTime\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toString\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.toZonedDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"toZonedDateTime\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.until",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"until\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"valueOf\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.weekOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"weekOfYear\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.with",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"with\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.withCalendar",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"withCalendar\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.withPlainTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"withPlainTime\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.year",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"year\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainDateTime.yearOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"PlainDateTime\" in Temporal && \"yearOfWeek\" in Temporal.PlainDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.PlainMonthDay",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"PlainMonthDay\" in Temporal)) {\n    return { result: false, message: \"Temporal.PlainMonthDay is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.PlainMonthDay\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.calendarId",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"calendarId\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.day",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"day\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.equals",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"equals\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.from",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"from\" in Temporal.PlainMonthDay",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.getISOFields",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"getISOFields\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.monthCode",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"monthCode\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"toJSON\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"toLocaleString\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.toPlainDate",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"toPlainDate\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.toString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"toString\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"valueOf\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainMonthDay.with",
      "info": {
        "code": "\"Temporal\" in self && \"PlainMonthDay\" in Temporal && \"with\" in Temporal.PlainMonthDay.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.PlainTime",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"PlainTime\" in Temporal)) {\n    return { result: false, message: \"Temporal.PlainTime is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.PlainTime\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.add",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"add\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.compare",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"compare\" in Temporal.PlainTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.equals",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"equals\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.from",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"from\" in Temporal.PlainTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.hour",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"hour\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.microsecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"microsecond\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.millisecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"millisecond\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.minute",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"minute\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.nanosecond",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"nanosecond\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.round",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"round\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.second",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"second\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.since",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"since\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"subtract\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"toJSON\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"toLocaleString\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.toString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"toString\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.until",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"until\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"valueOf\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainTime.with",
      "info": {
        "code": "\"Temporal\" in self && \"PlainTime\" in Temporal && \"with\" in Temporal.PlainTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.PlainYearMonth",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"PlainYearMonth\" in Temporal)) {\n    return { result: false, message: \"Temporal.PlainYearMonth is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.PlainYearMonth\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.add",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"add\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.calendarId",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"calendarId\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.compare",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"compare\" in Temporal.PlainYearMonth",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.daysInMonth",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"daysInMonth\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.daysInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"daysInYear\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.equals",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"equals\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.era",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"era\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.eraYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"eraYear\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.from",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"from\" in Temporal.PlainYearMonth",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.inLeapYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"inLeapYear\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.month",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"month\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.monthCode",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"monthCode\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.monthsInYear",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"monthsInYear\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.since",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"since\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"subtract\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"toJSON\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"toLocaleString\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.toPlainDate",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"toPlainDate\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.toString",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"toString\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.until",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"until\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"valueOf\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.with",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"with\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.PlainYearMonth.year",
      "info": {
        "code": "\"Temporal\" in self && \"PlainYearMonth\" in Temporal && \"year\" in Temporal.PlainYearMonth.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.ZonedDateTime",
      "info": {
        "code": "(function () {\n  if (!(\"Temporal\" in self)) {\n    return { result: false, message: \"Temporal is not defined\" };\n  }\n  if (!(\"ZonedDateTime\" in Temporal)) {\n    return { result: false, message: \"Temporal.ZonedDateTime is not defined\" };\n  }\n  return bcd.testConstructor(\"Temporal.ZonedDateTime\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "Temporal is not defined"
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.add",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"add\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.calendarId",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"calendarId\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.compare",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"compare\" in Temporal.ZonedDateTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.day",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"day\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.dayOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"dayOfWeek\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.dayOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"dayOfYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.daysInMonth",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"daysInMonth\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.daysInWeek",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"daysInWeek\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.daysInYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"daysInYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.epochMilliseconds",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"epochMilliseconds\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.epochNanoseconds",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"epochNanoseconds\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.equals",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"equals\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.era",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"era\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.eraYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"eraYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.from",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"from\" in Temporal.ZonedDateTime",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.getTimeZoneTransition",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"getTimeZoneTransition\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.hour",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"hour\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.hoursInDay",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"hoursInDay\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.inLeapYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"inLeapYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.microsecond",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"microsecond\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.millisecond",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"millisecond\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.minute",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"minute\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.month",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"month\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.monthCode",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"monthCode\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.monthsInYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"monthsInYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.nanosecond",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"nanosecond\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.offset",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"offset\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.offsetNanoseconds",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"offsetNanoseconds\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.round",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"round\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.second",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"second\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.since",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"since\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.startOfDay",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"startOfDay\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.subtract",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"subtract\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.timeZoneId",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"timeZoneId\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toInstant",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toInstant\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toJSON",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toJSON\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toLocaleString",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toLocaleString\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toPlainDate",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toPlainDate\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toPlainDateTime",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toPlainDateTime\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toPlainTime",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toPlainTime\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.toString",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"toString\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.until",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"until\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.valueOf",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"valueOf\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.weekOfYear",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"weekOfYear\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.with",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"with\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.withCalendar",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"withCalendar\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.withPlainTime",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"withPlainTime\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.withTimeZone",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"withTimeZone\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.year",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"year\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Temporal.ZonedDateTime.yearOfWeek",
      "info": {
        "code": "\"Temporal\" in self && \"ZonedDateTime\" in Temporal && \"yearOfWeek\" in Temporal.ZonedDateTime.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.TypeError",
      "info": {
        "code": "\"TypeError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypeError.TypeError",
      "info": {
        "code": "(function () {\n  if (!(\"TypeError\" in self)) {\n    return { result: false, message: \"TypeError is not defined\" };\n  }\n  return bcd.testConstructor(\"TypeError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.TypedArray",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.@@iterator",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return (\n    !!instance &&\n    \"Symbol\" in self &&\n    \"iterator\" in Symbol &&\n    !!instance[Symbol.iterator]\n  );\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.@@species",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return \"Symbol\" in self && \"species\" in Symbol && !!Int8Array[Symbol.species];\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.at",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"at\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.buffer",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"buffer\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.byteLength",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"byteLength\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.byteOffset",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"byteOffset\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  try {\n    new Int8Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.copyWithin",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"copyWithin\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.entries",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"entries\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.every",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"every\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.fill",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"fill\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.filter",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"filter\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.find",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"find\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.findIndex",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"findIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.findLast",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"findLast\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.findLastIndex",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"findLastIndex\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.forEach",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"forEach\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.from",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return \"from\" in Int8Array;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.includes",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"includes\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.indexOf",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"indexOf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.iterable_in_constructor",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Int8Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.join",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"join\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.keys",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"keys\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.lastIndexOf",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"lastIndexOf\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.length",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"length\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.map",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"map\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.of",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return \"of\" in Int8Array;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.prototype",
      "info": {
        "code": "\"TypedArray\" in self && \"prototype\" in TypedArray",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.TypedArray.reduce",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"reduce\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.reduceRight",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"reduceRight\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.reverse",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"reverse\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.set",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"set\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.slice",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"slice\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.some",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"some\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.sort",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"sort\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.subarray",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"subarray\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.toLocaleString",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"toLocaleString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.toReversed",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"toReversed\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.toSorted",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"toSorted\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.toString",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"toString\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.values",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"values\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.TypedArray.with",
      "info": {
        "code": "(function () {\n  if (!(\"Int8Array\" in self)) {\n    return { result: false, message: \"Int8Array is not defined\" };\n  }\n  var instance = new Int8Array(2);\n  return !!instance && \"with\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.URIError",
      "info": {
        "code": "\"URIError\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.URIError.URIError",
      "info": {
        "code": "(function () {\n  if (!(\"URIError\" in self)) {\n    return { result: false, message: \"URIError is not defined\" };\n  }\n  return bcd.testConstructor(\"URIError\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Uint16Array",
      "info": {
        "code": "\"Uint16Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint16Array.Uint16Array",
      "info": {
        "code": "(function () {\n  if (!(\"Uint16Array\" in self)) {\n    return { result: false, message: \"Uint16Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Uint16Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Uint16Array.Uint16Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Uint16Array\" in self)) {\n    return { result: false, message: \"Uint16Array is not defined\" };\n  }\n  try {\n    new Uint16Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint16Array.Uint16Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Uint16Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint32Array",
      "info": {
        "code": "\"Uint32Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint32Array.Uint32Array",
      "info": {
        "code": "(function () {\n  if (!(\"Uint32Array\" in self)) {\n    return { result: false, message: \"Uint32Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Uint32Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Uint32Array.Uint32Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Uint32Array\" in self)) {\n    return { result: false, message: \"Uint32Array is not defined\" };\n  }\n  try {\n    new Uint32Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint32Array.Uint32Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Uint32Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8Array",
      "info": {
        "code": "\"Uint8Array\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8Array.Uint8Array",
      "info": {
        "code": "(function () {\n  if (!(\"Uint8Array\" in self)) {\n    return { result: false, message: \"Uint8Array is not defined\" };\n  }\n  return bcd.testConstructor(\"Uint8Array\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Uint8Array.Uint8Array.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Uint8Array\" in self)) {\n    return { result: false, message: \"Uint8Array is not defined\" };\n  }\n  try {\n    new Uint8Array();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8Array.Uint8Array.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Uint8Array(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8Array.fromBase64",
      "info": {
        "code": "\"Uint8Array\" in self && \"fromBase64\" in Uint8Array",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8Array.fromHex",
      "info": {
        "code": "\"Uint8Array\" in self && \"fromHex\" in Uint8Array",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8Array.setFromBase64",
      "info": {
        "code": "\"Uint8Array\" in self && \"setFromBase64\" in Uint8Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8Array.setFromHex",
      "info": {
        "code": "\"Uint8Array\" in self && \"setFromHex\" in Uint8Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8Array.toBase64",
      "info": {
        "code": "\"Uint8Array\" in self && \"toBase64\" in Uint8Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8Array.toHex",
      "info": {
        "code": "\"Uint8Array\" in self && \"toHex\" in Uint8Array.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.Uint8ClampedArray",
      "info": {
        "code": "\"Uint8ClampedArray\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8ClampedArray.Uint8ClampedArray",
      "info": {
        "code": "(function () {\n  if (!(\"Uint8ClampedArray\" in self)) {\n    return { result: false, message: \"Uint8ClampedArray is not defined\" };\n  }\n  return bcd.testConstructor(\"Uint8ClampedArray\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.Uint8ClampedArray.Uint8ClampedArray.constructor_without_parameters",
      "info": {
        "code": "(function () {\n  if (!(\"Uint8ClampedArray\" in self)) {\n    return { result: false, message: \"Uint8ClampedArray is not defined\" };\n  }\n  try {\n    new Uint8ClampedArray();\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.Uint8ClampedArray.Uint8ClampedArray.iterable_allowed",
      "info": {
        "code": "(function () {\n  var iterable;\n  try {\n    function* a() {\n      yield true;\n    }\n\n    iterable = a();\n  } catch (e) {\n    if (e instanceof TypeError) {\n      return { result: false, message: e.message };\n    }\n    throw e;\n  }\n  if (!iterable) {\n    return { result: false, message: \"iterable is falsy\" };\n  }\n  try {\n    new Uint8ClampedArray(iterable);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap",
      "info": {
        "code": "\"WeakMap\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.WeakMap",
      "info": {
        "code": "(function () {\n  if (!(\"WeakMap\" in self)) {\n    return { result: false, message: \"WeakMap is not defined\" };\n  }\n  return bcd.testConstructor(\"WeakMap\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.WeakMap.WeakMap.iterable_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new WeakMap([\n      [window, \"one\"],\n      [{}, \"two\"]\n    ]);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window is not defined"
    },
    {
      "name": "javascript.builtins.WeakMap.WeakMap.null_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new WeakMap(null);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.delete",
      "info": {
        "code": "\"WeakMap\" in self && \"delete\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.get",
      "info": {
        "code": "\"WeakMap\" in self && \"get\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.getOrInsert",
      "info": {
        "code": "\"WeakMap\" in self && \"getOrInsert\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.WeakMap.getOrInsertComputed",
      "info": {
        "code": "\"WeakMap\" in self && \"getOrInsertComputed\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "javascript.builtins.WeakMap.has",
      "info": {
        "code": "\"WeakMap\" in self && \"has\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.set",
      "info": {
        "code": "\"WeakMap\" in self && \"set\" in WeakMap.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakMap.symbol_as_keys",
      "info": {
        "code": "(function () {\n  try {\n    new WeakMap().set(Symbol(), null);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakRef",
      "info": {
        "code": "\"WeakRef\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakRef.WeakRef",
      "info": {
        "code": "(function () {\n  if (!(\"WeakRef\" in self)) {\n    return { result: false, message: \"WeakRef is not defined\" };\n  }\n  return bcd.testConstructor(\"WeakRef\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WeakRef: invalid target"
    },
    {
      "name": "javascript.builtins.WeakRef.WeakRef.symbol_as_target",
      "info": {
        "code": "(function () {\n  try {\n    new WeakRef(Symbol());\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakRef.deref",
      "info": {
        "code": "\"WeakRef\" in self && \"deref\" in WeakRef.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet",
      "info": {
        "code": "\"WeakSet\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet.WeakSet",
      "info": {
        "code": "(function () {\n  if (!(\"WeakSet\" in self)) {\n    return { result: false, message: \"WeakSet is not defined\" };\n  }\n  return bcd.testConstructor(\"WeakSet\", false);\n})();\n",
        "exposure": "Window"
      },
      "result": true,
      "message": "Constructor passed with no errors"
    },
    {
      "name": "javascript.builtins.WeakSet.WeakSet.iterable_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new WeakSet([window, {}]);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": false,
      "message": "window is not defined"
    },
    {
      "name": "javascript.builtins.WeakSet.WeakSet.null_allowed",
      "info": {
        "code": "(function () {\n  try {\n    new WeakSet(null);\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet.add",
      "info": {
        "code": "\"WeakSet\" in self && \"add\" in WeakSet.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet.delete",
      "info": {
        "code": "\"WeakSet\" in self && \"delete\" in WeakSet.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet.has",
      "info": {
        "code": "\"WeakSet\" in self && \"has\" in WeakSet.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.WeakSet.symbol_as_keys",
      "info": {
        "code": "(function () {\n  try {\n    new WeakSet().add(Symbol());\n    return true;\n  } catch (e) {\n    return { result: false, message: e.message };\n  }\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.decodeURI",
      "info": {
        "code": "\"decodeURI\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.decodeURIComponent",
      "info": {
        "code": "\"decodeURIComponent\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.encodeURI",
      "info": {
        "code": "\"encodeURI\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.encodeURIComponent",
      "info": {
        "code": "\"encodeURIComponent\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.escape",
      "info": {
        "code": "\"escape\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.eval",
      "info": {
        "code": "\"eval\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.globalThis",
      "info": {
        "code": "\"globalThis\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.isFinite",
      "info": {
        "code": "\"isFinite\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.isNaN",
      "info": {
        "code": "\"isNaN\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.parseFloat",
      "info": {
        "code": "\"parseFloat\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.parseInt",
      "info": {
        "code": "\"parseInt\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.undefined",
      "info": {
        "code": "\"undefined\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "javascript.builtins.unescape",
      "info": {
        "code": "\"unescape\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api",
      "info": {
        "code": "\"WebAssembly\" in self",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Exception",
      "info": {
        "code": "\"WebAssembly\" in self && \"Exception\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Exception.Exception",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Exception')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Exception(): Argument 0 must be a WebAssembly tag"
    },
    {
      "name": "webassembly.api.Exception.getArg",
      "info": {
        "code": "\"WebAssembly\" in self && \"Exception\" in WebAssembly && \"getArg\" in WebAssembly.Exception.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Exception.is",
      "info": {
        "code": "\"WebAssembly\" in self && \"Exception\" in WebAssembly && \"is\" in WebAssembly.Exception.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Exception.stack",
      "info": {
        "code": "(function () {\n  if (!(\"WebAssembly\" in self && \"Exception\" in WebAssembly)) {\n    return { result: false, message: \"WebAssembly.Exception is not defined\" };\n  }\n  var instance = new WebAssembly.Exception(\n    new WebAssembly.Tag({ parameters: [\"i32\", \"i64\"] }),\n    [\"i32\", BigInt(64)],\n    { traceStack: true }\n  );\n  return !!instance && \"stack\" in instance;\n})();\n",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Global",
      "info": {
        "code": "\"WebAssembly\" in self && \"Global\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Global.Global",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Global')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Global(): Argument 0 must be a global descriptor"
    },
    {
      "name": "webassembly.api.Global.value",
      "info": {
        "code": "\"WebAssembly\" in self && \"Global\" in WebAssembly && \"value\" in WebAssembly.Global.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Global.valueOf",
      "info": {
        "code": "\"WebAssembly\" in self && \"Global\" in WebAssembly && \"valueOf\" in WebAssembly.Global.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Instance",
      "info": {
        "code": "\"WebAssembly\" in self && \"Instance\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Instance.Instance",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Instance')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Instance(): Argument 0 must be a WebAssembly.Module"
    },
    {
      "name": "webassembly.api.Instance.exports",
      "info": {
        "code": "\"WebAssembly\" in self && \"Instance\" in WebAssembly && \"exports\" in WebAssembly.Instance.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.JSTag_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"JSTag\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Memory",
      "info": {
        "code": "\"WebAssembly\" in self && \"Memory\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Memory.Memory",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Memory')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Memory(): Argument 0 must be a memory descriptor"
    },
    {
      "name": "webassembly.api.Memory.buffer",
      "info": {
        "code": "\"WebAssembly\" in self && \"Memory\" in WebAssembly && \"buffer\" in WebAssembly.Memory.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Memory.grow",
      "info": {
        "code": "\"WebAssembly\" in self && \"Memory\" in WebAssembly && \"grow\" in WebAssembly.Memory.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Memory.toFixedLengthBuffer",
      "info": {
        "code": "\"WebAssembly\" in self && \"Memory\" in WebAssembly && \"toFixedLengthBuffer\" in WebAssembly.Memory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "webassembly.api.Memory.toResizableBuffer",
      "info": {
        "code": "\"WebAssembly\" in self && \"Memory\" in WebAssembly && \"toResizableBuffer\" in WebAssembly.Memory.prototype",
        "exposure": "Window"
      },
      "result": false
    },
    {
      "name": "webassembly.api.Module",
      "info": {
        "code": "\"WebAssembly\" in self && \"Module\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Module.Module",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Module')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Module(): Argument 0 must be a buffer source"
    },
    {
      "name": "webassembly.api.Module.customSections_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"Module\" in WebAssembly && \"customSections\" in WebAssembly.Module",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Module.exports_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"Module\" in WebAssembly && \"exports\" in WebAssembly.Module",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Module.imports_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"Module\" in WebAssembly && \"imports\" in WebAssembly.Module",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Table",
      "info": {
        "code": "\"WebAssembly\" in self && \"Table\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Table.Table",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Table')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Table(): Argument 0 must be a table descriptor"
    },
    {
      "name": "webassembly.api.Table.get",
      "info": {
        "code": "\"WebAssembly\" in self && \"Table\" in WebAssembly && \"get\" in WebAssembly.Table.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Table.grow",
      "info": {
        "code": "\"WebAssembly\" in self && \"Table\" in WebAssembly && \"grow\" in WebAssembly.Table.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Table.length",
      "info": {
        "code": "\"WebAssembly\" in self && \"Table\" in WebAssembly && \"length\" in WebAssembly.Table.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Table.set",
      "info": {
        "code": "\"WebAssembly\" in self && \"Table\" in WebAssembly && \"set\" in WebAssembly.Table.prototype",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Tag",
      "info": {
        "code": "\"WebAssembly\" in self && \"Tag\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.Tag.Tag",
      "info": {
        "code": "bcd.testConstructor('WebAssembly.Tag')",
        "exposure": "Window"
      },
      "result": true,
      "message": "threw TypeError: WebAssembly.Tag(): Argument 0 must be a tag type"
    },
    {
      "name": "webassembly.api.compileStreaming_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"compileStreaming\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.compile_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"compile\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.instantiateStreaming_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"instantiateStreaming\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.instantiate_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"instantiate\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    },
    {
      "name": "webassembly.api.validate_static",
      "info": {
        "code": "\"WebAssembly\" in self && \"validate\" in WebAssembly",
        "exposure": "Window"
      },
      "result": true
    }
  ]
}
最小能力探针源码

打开原文件 FILES.json

工作区提供名称、模块与行为的最小探针,已完成本机验收。历史完整批量采集采用另一份实现;运行这份最小探针时,应保存自己部署入口的实际输出。

名称、模块与行为探针源码正在加载代码工作区...