{
  "results": [
    {
      "test": "/workers/name-property.html",
      "status": "ERROR",
      "message": "Can't find variable: SharedWorker",
      "subtests": [
        {
          "name": "name property value for DedicatedWorkerGlobalScope",
          "status": "PASS",
          "message": null
        },
        {
          "name": "name property is replaceable for DedicatedWorkerGlobalScope",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Declaring name as an accidental global must not cause a harness error for DedicatedWorkerGlobalScope",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/interface-objects.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "expected interface objects/constructors",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/008.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "messagechannel in shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/worker-performance.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Can use performance.now in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Can use performance.mark in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Can use performance.measure in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Can use performance.getEntriesByName in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Can use performance.getEntriesByType in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Performance marks and measures seem to be working correctly in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Can use clearMarks and clearMeasures in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Resource timing seems to work in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "performance.clearResourceTimings in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "performance.setResourceTimingBufferSize in workers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "performance.timing is not available in workers",
          "status": "FAIL",
          "message": "assert_equals: performance.timing is undefined expected \"undefined\" but got \"object\""
        },
        {
          "name": "performance.navigation is not available in workers",
          "status": "FAIL",
          "message": "assert_equals: performance.navigation is undefined expected \"undefined\" but got \"object\""
        },
        {
          "name": "performance.toJSON is available in workers",
          "status": "FAIL",
          "message": "assert_equals: performance.toJSON is a function expected \"function\" but got \"undefined\""
        },
        {
          "name": "There are no navigation type performance entries in workers",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerPerformanceNow.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "performance.now() exists in dedicated workers and reports reasonable times",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/011.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts(null)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "EventTarget interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object])",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: operation dispatchEvent(Event)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventListener interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute navigator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation importScripts(USVString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute onlanguagechange",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"onlanguagechange\" expected true got false"
        },
        {
          "name": "WorkerGlobalScope interface: attribute onoffline",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute ononline",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute onrejectionhandled",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute onunhandledrejection",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: attribute origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation btoa(DOMString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation atob(DOMString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation setTimeout(TimerHandler, long, any)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation clearTimeout(long)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation setInterval(TimerHandler, long, any)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation clearInterval(long)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: attribute name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: operation postMessage(any, [object Object])",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: operation close()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: attribute onmessage",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: attribute onmessageerror",
          "status": "FAIL",
          "message": "assert_own_property: The global object must have a property \"onmessageerror\" expected property \"onmessageerror\" missing"
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope must be primary interface of self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: self must inherit property \"name\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: self must inherit property \"postMessage(any, [object Object])\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: calling postMessage(any, [object Object]) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: self must inherit property \"close()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: self must inherit property \"onmessage\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DedicatedWorkerGlobalScope interface: self must inherit property \"onmessageerror\" with the proper type",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"onmessageerror\" missing"
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"self\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"location\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"navigator\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"importScripts(USVString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling importScripts(USVString) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"onerror\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"onlanguagechange\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"onlanguagechange\" not found in prototype chain"
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"onoffline\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"ononline\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"onrejectionhandled\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"onunhandledrejection\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"origin\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"btoa(DOMString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"atob(DOMString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"setTimeout(TimerHandler, long, any)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling setTimeout(TimerHandler, long, any) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"clearTimeout(long)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling clearTimeout(long) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"setInterval(TimerHandler, long, any)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling setInterval(TimerHandler, long, any) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"clearInterval(long)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling clearInterval(long) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"createImageBitmap(ImageBitmapSource, ImageBitmapOptions)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: self must inherit property \"createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: self must inherit property \"addEventListener(DOMString, EventListener, [object Object],[object Object])\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: self must inherit property \"removeEventListener(DOMString, EventListener, [object Object],[object Object])\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: self must inherit property \"dispatchEvent(Event)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventTarget interface: calling dispatchEvent(Event) on self with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute appCodeName",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute appName",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute appVersion",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute platform",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute product",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: member productSub",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute userAgent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: member vendor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: member vendorSub",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute language",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute languages",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute onLine",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: attribute hardwareConcurrency",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"hardwareConcurrency\" expected true got false"
        },
        {
          "name": "WorkerNavigator must be primary interface of self.navigator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of self.navigator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"appCodeName\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"appName\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"appVersion\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"platform\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"product\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must not have property \"productSub\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"userAgent\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must not have property \"vendor\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must not have property \"vendorSub\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"language\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"languages\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"onLine\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerNavigator interface: self.navigator must inherit property \"hardwareConcurrency\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"hardwareConcurrency\" not found in prototype chain"
        },
        {
          "name": "WorkerLocation interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute href",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: stringifier",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute protocol",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute host",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute hostname",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute port",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute pathname",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute search",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: attribute hash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation must be primary interface of self.location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of self.location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"href\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"origin\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"protocol\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"host\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"hostname\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"port\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"pathname\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"search\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerLocation interface: self.location must inherit property \"hash\" with the proper type",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/URLMismatchError.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Web Workers: SharedWorker - same name, different URL",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/WindowTimers/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setInterval",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/ctor-1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "1 as argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setting postMessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_setTimeout.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope API: setTimeout() ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/xhr-in-sharedworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in classic shared workers: XHR",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/importScripts-in-sharedworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in classic shared workers: importScripts",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/unresolvable-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "unresolvable url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/SharedWorkerPerformanceNow.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "performance.now() exists in shared workers and reports reasonable times",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "dedicated",
          "status": "PASS",
          "message": null
        },
        {
          "name": "shared",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_ErrorEvent_colno.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope onerror event handler argument: col ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts running scripts",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/encodings/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "encoding, shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/close/setTimeout.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "close() and setTimeout",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_type.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " AbstractWorker ErrorEvent.type ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.onLine",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_message.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " AbstractWorker ErrorEvent.message ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/name.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "self.name",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_importScripts_NetworkErr.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " importScripts() with non-existent script file ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-options-credentials.html",
      "status": "ERROR",
      "message": "SyntaxError: Unexpected string literal './credentials.py'. import call expects exactly one argument.",
      "subtests": [
        {
          "name": "Test initialization: setting up cross-origin cookie",
          "status": "PASS",
          "message": null
        },
        {
          "name": "new Worker() with type=module and default credentials option should behave as credentials=same-origin and send the credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=omit should not send the credentials",
          "status": "FAIL",
          "message": "assert_equals: expected \"\" but got \"1\""
        },
        {
          "name": "new Worker() with type=module and credentials=same-origin should send the credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=include should send the credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "new Worker() with type=module and default credentials option should behave as credentials=same-origin and send the credentials for same-origin static imports",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "new Worker() with type=module and credentials=omit should not send the credentials for same-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=same-origin should send the credentials for same-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=include should send the credentials for same-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and default credentials option should behave as credentials=same-origin and not send the credentials for cross-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type-module credentials=omit should not send the credentials for cross-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=same-origin should not send the credentials for cross-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=include should send the credentials for cross-origin static imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and default credentials option should behave as credentials=same-origin and send the credentials for same-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=omit should not send the credentials for same-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=same-origin should send the credentials for same-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=include should send the credentials for same-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and default credentials option should behave as credentials=same-origin and not send the credentials for cross-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type-module credentials=omit should not send the credentials for cross-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=same-origin should not send the credentials for cross-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=module and credentials=include should send the credentials for cross-origin dynamic imports",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials regardless of the credentials option (default).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials regardless of the credentials option (omit).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials regardless of the credentials option (same-origin).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials regardless of the credentials option (include).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials for same-origin dynamic imports regardless of the credentials option (default).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials for same-origin dynamic imports regardless of the credentials option (omit).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials for same-origin dynamic imports regardless of the credentials option (same-origin).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should always send the credentials for same-origin dynamic imports regardless of the credentials option (include).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should never send the credentials for cross-origin dynamic imports regardless of the credentials option (default).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should never send the credentials for cross-origin dynamic imports regardless of the credentials option (omit).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should never send the credentials for cross-origin dynamic imports regardless of the credentials option (same-origin).",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "new Worker() with type=classic should never send the credentials for cross-origin dynamic imports regardless of the credentials option (include).",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.userAgent",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation object ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_href.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation href attribute ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/nested_worker_terminate_from_document.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test terminating a chain of nested workers by calling terminate() from the owning document",
          "status": "FAIL",
          "message": "assert_equals: expected \"Pass\" but got \"Fail: ReferenceError: Can't find variable: Worker\""
        }
      ]
    },
    {
      "test": "/workers/nested_worker_close_from_parent_worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test terminating a nested workers by calling terminate() from its parent worker",
          "status": "FAIL",
          "message": "assert_equals: expected \"Pass\" but got \"Fail: ReferenceError: Can't find variable: Worker\""
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "sync XMLHttpRequest in shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "dedicated worker in shared worker in dedicated worker",
          "status": "FAIL",
          "message": "assert_unreached: error Reached unreachable code"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/number-arguments.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "1 as arguments",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/Worker_NosniffErr.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " Worker with nosniff X-Content-Type-Options header ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Using null in postMessage's second argument",
          "status": "FAIL",
          "message": "assert_equals: expected (boolean) true but got (number) 1"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/no-arguments-ctor.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "no arguments",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n    var worker = new SharedWorker();\n  }\" threw object \"ReferenceError: Can't find variable: SharedWorker\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "structured clone of ImageData",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "base url, shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/Worker_basic.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Worker constructor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageEvent.data",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessageEvent.type",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.appName",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Using [null] in postMessage's second argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/SharedWorker_dataUrl.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Data URL not shared by cross-origin SharedWorkers",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Data URLs shared by same-origin SharedWorkers",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/ctor-null.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "null as argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/shared-worker-name-via-options.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test the name property of shared workers mixing constructor options and constructor strings",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "async XMLHttpRequest in shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts broken script",
          "status": "FAIL",
          "message": "assert_true: expected SyntaxError expected true got \"Error: Script error.\""
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/self.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "self",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_ErrorEvent_lineno.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope onerror event handler argument: line ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/SharedWorkerGlobalScope/name/getting.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "getting name",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "getting name 1",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "getting name 2",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/WindowTimers/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "clearInterval",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/connect-event.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "connect event",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/nested_worker_sync_xhr.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Nested worker that issues a sync XHR",
          "status": "FAIL",
          "message": "Can't find variable: Worker"
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_hash.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: hash ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onerror, \"not handled\" with only window.onerror defined",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/postMessage_ports_readonly_array.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage(): read-only ports array ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/data-url-shared.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "application/javascript MIME allowed",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "text/plain MIME allowed",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "empty MIME allowed",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "communication goes both ways",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "indexedDB is present",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "indexedDB is inaccessible",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "cross-origin worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "worker has opaque origin",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "A data: URL shared worker should not be shared among origins.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/import-in-moduleworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in module dedicated workers: import",
          "status": "FAIL",
          "message": "assert_unreached: Got error event Reached unreachable code"
        }
      ]
    },
    {
      "test": "/workers/WorkerNavigator_appVersion.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerNavigator appVersion ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/setting-port-members.html",
      "status": "ERROR",
      "message": "ReferenceError: Can't find variable: SharedWorker",
      "subtests": [
        {
          "name": "postMessage",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "start",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "close",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "onmessage",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "addEventListener",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "removeEventListener",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        },
        {
          "name": "despatchEvent",
          "status": "FAIL",
          "message": "Can't find variable: worker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/010.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts(undefined)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker with multiple documents",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/Blob-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Worker supports Blob url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/expected-self-properties.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "existence of XMLHttpRequest",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of WebSocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of EventSource",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of MessageChannel",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of Worker",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        },
        {
          "name": "existence of SharedWorker",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        }
      ]
    },
    {
      "test": "/workers/Worker_dispatchEvent_ErrorEvent.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " ErrorEvent and Worker.dispatchEvent() ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "initErrorEvent",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/SharedWorker_blobUrl.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Blob URL shared by document on SharedWorker",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"ReferenceError: Can't find variable: SharedWorker\""
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/no-arguments-ctor.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "without arguments",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_ErrorEvent_filename.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope onerror event handler argument: location ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WorkerGlobalScope_requestAnimationFrame",
          "status": "FAIL",
          "message": "Can't find variable: requestAnimationFrame"
        }
      ]
    },
    {
      "test": "/workers/semantics/encodings/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL encoding, dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/run-a-worker/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "worker",
          "status": "PASS",
          "message": null
        },
        {
          "name": "shared",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/importscripts_mime.tentative.any.serviceworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importscripts_mime",
          "status": "FAIL",
          "message": "undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')"
        }
      ]
    },
    {
      "test": "/workers/semantics/run-a-worker/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "worker global scope, shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/port-readonly.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setting worker.port",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/onerror/not-handled.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onerror, \"not handled\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "base url, dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-meta.html",
      "status": "ERROR",
      "message": "SyntaxError: import.meta is only valid inside modules.",
      "subtests": [
        {
          "name": "Test import.meta.url on the top-level module script.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: import.meta is only valid inside modules.\""
        },
        {
          "name": "Test import.meta.url on the imported module script.",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        },
        {
          "name": "Test import.meta.url on the imported module script with a fragment.",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import.any.html",
      "status": "ERROR",
      "message": "SyntaxError: Unexpected token '*'. import call expects exactly one argument.",
      "subtests": [
        {
          "name": "Static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected token '*'. import call expects exactly one argument.\""
        },
        {
          "name": "Nested static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected token '*'. import call expects exactly one argument.\""
        },
        {
          "name": "Static import and then dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected token '*'. import call expects exactly one argument.\""
        },
        {
          "name": "Dynamic import.",
          "status": "FAIL",
          "message": "assert_array_equals: value is \"Failed to do dynamic import: Error: Could not import the module './export-on-load-script.js'.\", expected array"
        },
        {
          "name": "Nested dynamic import.",
          "status": "FAIL",
          "message": "assert_array_equals: value is \"Failed to do dynamic import: Error: Could not import the module './export-on-dynamic-import-script.js'.\", expected array"
        },
        {
          "name": "Dynamic import and then static import.",
          "status": "FAIL",
          "message": "assert_array_equals: value is \"Failed to do dynamic import: Error: Could not import the module './export-on-static-import-script.js'.\", expected array"
        },
        {
          "name": "eval(import()).",
          "status": "FAIL",
          "message": "assert_array_equals: value is \"Failed to do dynamic import: Error: Could not import the module './export-on-load-script.js'.\", expected array"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/WindowTimers/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setTimeout",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker in dedicated worker in shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/returns-same-object.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "location === location",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.platform",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_pathname.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: pathname ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/009.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "variables and functions crossing importScripts boundary, take 2",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/close/incoming-message.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "close() and incoming message",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerNavigator_platform.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerNavigator.platform ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_host.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: host ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onerror, \"not handled\" with an error in the onerror function",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "sync XMLHttpRequest in dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/xhr/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "async XMLHttpRequest in dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "postMessage in importScripts",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-options-type.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test worker construction with the default worker type.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test worker construction with the \"classic\" worker type.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test worker construction with the \"module\" worker type.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test worker construction with an empty worker type.",
          "status": "FAIL",
          "message": "assert_equals: expected \"TypeError\" but got \"Error\""
        },
        {
          "name": "Test worker construction with an unknown worker type.",
          "status": "FAIL",
          "message": "assert_equals: expected \"TypeError\" but got \"Error\""
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_search.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: search ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/postMessage_event_properties.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage(): MessageEvent properties ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/encodings/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL encoding, shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/interface-objects/002.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "The SharedWorkerGlobalScope interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The AbstractView interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The AbstractWorker interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ApplicationCache interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Location interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Navigator interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Audio interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The HTMLCanvasElement interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Path interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The TextMetrics interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CanvasProxy interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CanvasRenderingContext2D interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The DrawingStyle interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The BeforeUnloadEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The PopStateEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The HashChangeEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The PageTransitionEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The DOMImplementation interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ReadableStreamDefaultReader interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ReadableStreamBYOBReader interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ReadableStreamDefaultController interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ReadableByteStreamController interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WritableStreamDefaultWriter interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WritableStreamDefaultController interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBEnvironment interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Database interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The UIEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The FocusEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The MouseEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WheelEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The InputEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The KeyboardEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CompositionEvent interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The VTTCue interface object should not be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The VTTRegion interface object should not be exposed.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/002.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "002",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_hash_nonexist.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation.hash with no <fragment> component ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/unresolvable-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolving broken url",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n    var worker = new SharedWorker('http://foo bar');\n  }\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SyntaxError: property \"code\" is equal to undefined, expected 12"
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_search_nonexist.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation.search  with no <query> component ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/postMessage_DataCloneErr.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage() with WorkerNavigator ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/encodings/004.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Decoding invalid utf-8",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_hash_encoding.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation.hash with url encoding string ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/WindowTimers/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "clearTimeout",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/null-arguments.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "null as arguments",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/close/sending-messages.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "close() and sending messages",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_importScripts.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope API: importScripts() ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_error.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Error handler outside the worker should not see the error value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Error handlers inside a worker should see the error value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker_ErrorEvent_error",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-referrer.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin top-level module script loading with \"no-referrer\" referrer policy",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin top-level module script loading with \"origin\" referrer policy",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin top-level module script loading with \"same-origin\" referrer policy",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin static import with \"no-referrer\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin static import with \"origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin static import with \"same-origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin static import with \"no-referrer\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin static import with \"origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin static import with \"same-origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin dynamic import with \"no-referrer\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin dynamic import with \"origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same-origin dynamic import with \"same-origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin dynamic import with \"no-referrer\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin dynamic import with \"origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin dynamic import with \"same-origin\" referrer policy.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/WindowTimers/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setInterval when closing",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/SharedWorkerGlobalScope/name/setting.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setting name",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/unexpected-global-properties.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "unexpected members/interface objects/constructors",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/006.html",
      "status": "ERROR",
      "message": "DataCloneError: The object can not be cloned.",
      "subtests": [
        {
          "name": "importScripts uncaught exception",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/language.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.language",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/shared-worker-from-blob-url.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Creating a shared worker from a blob URL works.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"ReferenceError: Can't find variable: SharedWorker\""
        },
        {
          "name": "Creating a shared worker from a blob URL works immediately before revoking.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"ReferenceError: Can't find variable: SharedWorker\""
        },
        {
          "name": "Connecting to a shared worker on a revoked blob URL works.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"ReferenceError: Can't find variable: SharedWorker\""
        }
      ]
    },
    {
      "test": "/workers/nested_worker_importScripts.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Nested worker that calls importScripts()",
          "status": "FAIL",
          "message": "Can't find variable: Worker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/worker-separate-file.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "location with a worker in separate file",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/SharedWorkerGlobalScope/onconnect.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onconnect",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/unexpected-self-properties.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "existence of open",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of print",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of stop",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of getComputedStyle",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of getSelection",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of releaseEvents",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of captureEvents",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of alert",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of confirm",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of prompt",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of addEventStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of removeEventStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of back",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of forward",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of attachEvent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of detachEvent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of navigate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of DOMParser",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of XMLSerializer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of XPathEvaluator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of XSLTProcessor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of opera",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of Image",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of Option",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of frames",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of Audio",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of SVGUnitTypes",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of SVGZoomAndPan",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of java",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of netscape",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of sun",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of Packages",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of ByteArray",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of closed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of defaultStatus",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of document",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of event",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of frameElement",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of history",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of innerHeight",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of innerWidth",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of opener",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of outerHeight",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of outerWidth",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of pageXOffset",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of pageYOffset",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of parent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of screen",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of screenLeft",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of screenTop",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of screenX",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of screenY",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of status",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of top",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of window",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of length",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_terminate_event_queue.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " AbstractWorker terminate(): clear event queue ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation-origin.sub.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "workerLocation.origin must use ASCII code points",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerNavigator_onLine.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerNavigator.onLine ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/sharedworker-in-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in workers: new SharedWorker()",
          "status": "FAIL",
          "message": "assert_unreached: Got error event Reached unreachable code"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/global-members.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "members of SharedWorkerGlobalScope",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/members.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "members of WorkerLocation",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/port-onmessage.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "worker.port.onmessage",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/WorkerNavigator_userAgent.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerNavigator.userAgent ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_hostname.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: hostname ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/use-base-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Use the document base url when resolving worker URLs",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Using undefined in postMessage's second argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/encodings/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "encoding, dedicated worker",
          "status": "FAIL",
          "message": "assert_equals: expected \"å\" but got \"Ã¥\""
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_search_empty.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation.search with empty <query> ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/redirect-module.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WorkerLocation with redirects: module dedicated workers",
          "status": "FAIL",
          "message": "assert_equals: expected \"http://webapitests2018.ctawave.org:8000/workers/interfaces/WorkerGlobalScope/location/post-location-members.js?a\" but got \"http://webapitests2018.ctawave.org:8000/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py?fail\""
        }
      ]
    },
    {
      "test": "/workers/semantics/structured-clone/shared.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "structured clone to shared worker",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/012.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts(1)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/navigation/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigating",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/postMessage_clone_port.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage(): clone a port ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/reporting-errors/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker, addEventListener",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_importScripts_NosniffErr.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts throws on 'nosniff' violation",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/undefined-arguments.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined as arguments",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Properties of the 'message' event",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/reporting-errors/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker, no error event on worker or port",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-data-url.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "Nested static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "Static import and then dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "Dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "Nested dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "Dynamic import and then static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        },
        {
          "name": "eval(import()).",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"SecurityError: The operation is insecure.\""
        }
      ]
    },
    {
      "test": "/workers/semantics/interface-objects/003.html",
      "status": "ERROR",
      "message": "ReferenceError: Can't find variable: SharedWorker",
      "subtests": []
    },
    {
      "test": "/workers/constructors/Worker/AbstractWorker.onerror.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "AbstractWorker.onerror",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/nested_worker.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Nested worker",
          "status": "FAIL",
          "message": "Can't find variable: Worker"
        }
      ]
    },
    {
      "test": "/workers/Worker_cross_origin_security_err.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cross-origin classic workers should fail to fetch",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin module workers should fail to fetch",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/reporting-errors/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker, not handled",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-blob-url.any.html",
      "status": "ERROR",
      "message": "SyntaxError: Unexpected string literal \"http://webapitests2018.ctawave.org:8000/workers/modules/resources/dynamic-import-and-then-static-import-worker.js\". import call expects exactly one argument.",
      "subtests": [
        {
          "name": "Static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/static-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "Nested static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/nested-static-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "Static import and then dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/static-import-and-then-dynamic-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "Dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/dynamic-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "Nested dynamic import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/nested-dynamic-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "Dynamic import and then static import.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/dynamic-import-and-then-static-import-worker.js\\\". import call expects exactly one argument.\""
        },
        {
          "name": "eval(import()).",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"SyntaxError: Unexpected string literal \\\"http://webapitests2018.ctawave.org:8000/workers/modules/resources/eval-dynamic-import-worker.js\\\". import call expects exactly one argument.\""
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker in dedicated worker in shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/onerror/handled.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onerror, \"handled\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigator.appVersion",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/001.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "001",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/redirect.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WorkerLocation with redirects: classic dedicated workers",
          "status": "FAIL",
          "message": "assert_equals: expected \"http://webapitests2018.ctawave.org:8000/workers/interfaces/WorkerGlobalScope/location/post-location-members.js?a\" but got \"http://webapitests2018.ctawave.org:8000/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py?fail\""
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "return value of postMessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/008.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "variables and functions crossing importScripts boundary",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_lineno.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " AbstractWorker ErrorEvent.lineno ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/same-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "unsupported_scheme",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data_url",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "about_blank",
          "status": "PASS",
          "message": null
        },
        {
          "name": "example_invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "port_81",
          "status": "PASS",
          "message": null
        },
        {
          "name": "https_port_80",
          "status": "PASS",
          "message": null
        },
        {
          "name": "https_port_8000",
          "status": "PASS",
          "message": null
        },
        {
          "name": "http_post_8012",
          "status": "PASS",
          "message": null
        },
        {
          "name": "javascript_url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/port-properties.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "worker.port",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/onmessage.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Setting onmessage to 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Setting onmessage to an object",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        },
        {
          "name": "Setting onmessage to a function",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Setting onmessage to 1 (again)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_script_mimetype.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " Worker constructor with script inside text file ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_filename.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " AbstractWorker ErrorEvent.filename ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "creating 3 sibling dedicated workers",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_close.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope close(): clear events queue ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WorkerLocation with redirects: classic shared workers",
          "status": "FAIL",
          "message": "ReferenceError: Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/postMessage_clone_port_error.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage(): cloning source port ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/dummy-name.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "creating a dummy shared worker with name \"foo\"",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/empty-name.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "creating a dummy shared worker with explicit name \"\"",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/semantics/structured-clone/dedicated.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "primitive undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive string, empty string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive string, lone high surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive string, lone low surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive string, NUL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive string, astral character",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, 0.2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, -0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, NaN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, -Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, 9007199254740992",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, -9007199254740992",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, 9007199254740994",
          "status": "PASS",
          "message": null
        },
        {
          "name": "primitive number, -9007199254740994",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array primitives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object primitives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Boolean true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Boolean false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Boolean objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Boolean objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String empty string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String lone high surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String lone low surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String NUL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String astral character",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array String objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object String objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number 0.2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number -0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number NaN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number -Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number 9007199254740992",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number -9007199254740992",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number 9007199254740994",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Number -9007199254740994",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Number objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Number objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Date 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Date -0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Date -8.64e15",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Date 8.64e15",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Date objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Date objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RegExp flags and lastIndex",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RegExp sticky flag",
          "status": "FAIL",
          "message": "assert_equals: sticky expected true but got false"
        },
        {
          "name": "RegExp unicode flag",
          "status": "FAIL",
          "message": "assert_equals: unicode expected true but got false"
        },
        {
          "name": "RegExp empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RegExp slash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RegExp new line",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array RegExp object, RegExp flags and lastIndex",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array RegExp object, RegExp sticky flag",
          "status": "FAIL",
          "message": "assert_equals: sticky expected true but got false"
        },
        {
          "name": "Array RegExp object, RegExp unicode flag",
          "status": "FAIL",
          "message": "assert_equals: unicode expected true but got false"
        },
        {
          "name": "Array RegExp object, RegExp empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array RegExp object, RegExp slash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array RegExp object, RegExp new line",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object RegExp object, RegExp flags and lastIndex",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object RegExp object, RegExp sticky flag",
          "status": "FAIL",
          "message": "assert_equals: sticky expected true but got false"
        },
        {
          "name": "Object RegExp object, RegExp unicode flag",
          "status": "FAIL",
          "message": "assert_equals: unicode expected true but got false"
        },
        {
          "name": "Object RegExp object, RegExp empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object RegExp object, RegExp slash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object RegExp object, RegExp new line",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob basic",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob unpaired high surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob unpaired low surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob paired surrogates (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blob NUL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob basic",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob unpaired high surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob unpaired low surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob paired surrogates (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array Blob object, Blob NUL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob basic",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob unpaired high surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob unpaired low surrogate (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob paired surrogates (invalid utf-8)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object Blob object, Blob NUL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "File basic",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FileList empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array FileList object, FileList empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object FileList object, FileList empty",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ImageData 1x1 transparent black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ImageData 1x1 non-transparent non-black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array ImageData object, ImageData 1x1 transparent black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array ImageData object, ImageData 1x1 non-transparent non-black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object ImageData object, ImageData 1x1 transparent black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object ImageData object, ImageData 1x1 non-transparent non-black",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array sparse",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array with non-index property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with index property and length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array with circular reference",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with circular reference",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Array with identical property values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with identical property values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with property on prototype",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with non-enumerable property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with non-writable property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object with non-configurable property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ImageBitmap 1x1 transparent black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "ImageBitmap 1x1 non-transparent non-black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "Array ImageBitmap object, ImageBitmap 1x1 transparent black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "Array ImageBitmap object, ImageBitmap 1x1 transparent non-black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "Object ImageBitmap object, ImageBitmap 1x1 transparent black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "Object ImageBitmap object, ImageBitmap 1x1 transparent non-black",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Type error\""
        },
        {
          "name": "ArrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MessagePort",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-failure.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts() on module worker should throw an exception.",
          "status": "FAIL",
          "message": "assert_equals: expected \"TypeError\" but got \"LOADED\""
        },
        {
          "name": "Static import on classic worker should throw an exception.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker construction for non-existent script should dispatch an ErrorEvent.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Static import for non-existent script should dispatch an ErrorEvent.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Dynamic import for non-existent script should throw an exception.",
          "status": "FAIL",
          "message": "assert_equals: expected \"TypeError\" but got \"Error\""
        },
        {
          "name": "Worker construction for an invalid URL should throw an exception.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker construction for a file URL should throw an exception.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_setInterval.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope API: setInterval() ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/EventTarget.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "removeEventListener",
          "status": "PASS",
          "message": null
        },
        {
          "name": "target",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/run-a-worker/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "worker global scope, dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/nested_worker_close_self.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Nested work that closes itself",
          "status": "FAIL",
          "message": "Can't find variable: Worker"
        }
      ]
    },
    {
      "test": "/workers/postMessage_target_source.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " postMessage(): target port and source port ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/same-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "unsupported_scheme",
          "status": "FAIL",
          "message": "assert_throws: function \"function () { new SharedWorker('unsupported:', ''); }\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "data_url",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        },
        {
          "name": "javascript_url",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "about_blank",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "opera_com",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "port_81",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "https_port_80",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "https_port_8000",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        },
        {
          "name": "http_port_8012",
          "status": "FAIL",
          "message": "assert_throws: DOMExceptions thrown on cross-origin SharedWorker construction must be SecurityErrors function \"() => {throw e}\" threw object \"ReferenceError: Can't find variable: SharedWorker\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        }
      ]
    },
    {
      "test": "/workers/semantics/interface-objects/001.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "The WorkerGlobalScope interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The DedicatedWorkerGlobalScope interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Worker interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"Worker\" missing"
        },
        {
          "name": "The SharedWorker interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"SharedWorker\" missing"
        },
        {
          "name": "The MessagePort interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The MessageEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WorkerNavigator interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The MessageChannel interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WorkerLocation interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ImageData interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ImageBitmap interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CanvasGradient interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CanvasPattern interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CanvasPath interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"CanvasPath\" missing"
        },
        {
          "name": "The Path2D interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The PromiseRejectionEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The EventSource interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WebSocket interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CloseEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The BroadcastChannel interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"BroadcastChannel\" missing"
        },
        {
          "name": "The ArrayBuffer interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Int8Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Uint8Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Uint8ClampedArray interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Int16Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Uint16Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Int32Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Uint32Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Float32Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Float64Array interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The DataView interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The XMLHttpRequestEventTarget interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The XMLHttpRequestUpload interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"XMLHttpRequestUpload\" missing"
        },
        {
          "name": "The XMLHttpRequest interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ProgressEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The FormData interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"FormData\" missing"
        },
        {
          "name": "The URL interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The URLSearchParams interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The File interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"File\" missing"
        },
        {
          "name": "The Blob interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The FileList interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"FileList\" missing"
        },
        {
          "name": "The FileReader interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The FileReaderSync interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The EventTarget interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ErrorEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The Event interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CustomEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The DOMException interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The ReadableStream interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The WritableStream interface object should be exposed.",
          "status": "FAIL",
          "message": "assert_own_property: expected property \"WritableStream\" missing"
        },
        {
          "name": "The ByteLengthQueuingStrategy interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The CountQueuingStrategy interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBRequest interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBOpenDBRequest interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBVersionChangeEvent interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBFactory interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBDatabase interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBObjectStore interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBIndex interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBKeyRange interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBCursor interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBCursorWithValue interface object should be exposed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The IDBTransaction interface object should be exposed.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/modules/dedicated-worker-import-csp.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "worker-src 'self' directive should disallow cross origin static import.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "worker-src * directive should allow cross origin static import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "script-src 'self' directive should disallow cross origin static import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "script-src * directive should allow cross origin static import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "worker-src * directive should override script-src 'self' directive and allow cross origin static import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "worker-src 'self' directive should override script-src * directive and disallow cross origin static import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "script-src 'self' directive should disallow cross origin dynamic import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "script-src * directive should allow cross origin dynamic import.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "worker-src 'self' directive should not take effect on dynamic import.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/navigation/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "navigating 2",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/dedicated-worker-from-blob-url.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Creating a dedicated worker from a blob URL works.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Creating a dedicated worker from a blob URL works immediately before revoking.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_search_fragment.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation.search with <fragment> in <query> ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/importScripts-in-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts",
          "status": "FAIL",
          "message": "assert_equals: expected \"gamma/script.js\" but got \"beta/script.js\""
        }
      ]
    },
    {
      "test": "/workers/semantics/multiple-workers/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "creating 3 nested dedicated workers",
          "status": "FAIL",
          "message": "assert_unreached: error Reached unreachable code"
        }
      ]
    },
    {
      "test": "/workers/data-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "application/javascript MIME allowed",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "text/plain MIME allowed",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "empty MIME allowed",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "communication goes both ways",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "indexedDB is present",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "indexedDB is inaccessible",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "cross-origin worker",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "worker has opaque origin",
          "status": "FAIL",
          "message": "The operation is insecure."
        },
        {
          "name": "invalid javascript produces error",
          "status": "FAIL",
          "message": "The operation is insecure."
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/close/setInterval.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "close() and setInterval",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/opaque-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Worker has an opaque origin.",
          "status": "FAIL",
          "message": "assert_equals: expected \"blob://\" but got \"null\""
        },
        {
          "name": "Worker can read its own blobs.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"from worker\" but got (object) null"
        },
        {
          "name": "Worker can read its owners blobs.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"from page\" but got (object) null"
        },
        {
          "name": "Worker can XHR fetch a blob.",
          "status": "FAIL",
          "message": "assert_equals: expected \"from page\" but got \"\""
        },
        {
          "name": "Worker can fetch a blob.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Cross origin requests are only supported for HTTP.\""
        },
        {
          "name": "Worker can access BroadcastChannel",
          "status": "FAIL",
          "message": "Can't find variable: BroadcastChannel"
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/xhr-in-moduleworker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in module dedicated workers: XHR",
          "status": "FAIL",
          "message": "assert_equals: expected \"gamma\\n\" but got \"beta\\n\""
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/navigator/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "readonlyness of members of Navigator",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerGlobalScope/location/setting-members.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "setting members of WorkerLocation",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/worker-in-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Base URL in workers: new Worker()",
          "status": "FAIL",
          "message": "assert_unreached: Got error event Reached unreachable code"
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "posting an imagedata (from a cloned canvas) in an array",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/baseurl/alpha/xhr-in-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "xhr-worker",
          "status": "FAIL",
          "message": "assert_equals: expected \"gamma\\n\" but got \"beta\\n\""
        }
      ]
    },
    {
      "test": "/workers/Worker_ErrorEvent_bubbles_cancelable.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "ErrorEvent on worker doesn't bubble and is cancelable",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_protocol.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: protocol ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerNavigator_appName.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerNavigator appName ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/WorkerUtils/importScripts/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "importScripts separate scripts",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/interface-objects/004.html",
      "status": "ERROR",
      "message": "ReferenceError: Can't find variable: SharedWorker",
      "subtests": []
    },
    {
      "test": "/workers/constructors/Worker/resolve-empty-string.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "resolve the empty string",
          "status": "FAIL",
          "message": "The string did not match the expected pattern."
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "e.ports in dedicated worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/semantics/reporting-errors/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "shared worker in two documents and window.onerror",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "structured clone of message",
          "status": "PASS",
          "message": null
        },
        {
          "name": "undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "false",
          "status": "PASS",
          "message": null
        },
        {
          "name": "true",
          "status": "PASS",
          "message": null
        },
        {
          "name": "1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "NaN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Infinity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "date",
          "status": "PASS",
          "message": null
        },
        {
          "name": "regexp",
          "status": "PASS",
          "message": null
        },
        {
          "name": "self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "array",
          "status": "PASS",
          "message": null
        },
        {
          "name": "object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "error",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerLocation_port.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerLocation URL decomposition IDL attribute: port ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/WorkerGlobalScope_ErrorEvent_message.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": " WorkerGlobalScope onerror event handler argument: message ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Using dictionary as postMessage's second argument",
          "status": "FAIL",
          "message": "Type error"
        }
      ]
    },
    {
      "test": "/workers/constructors/SharedWorker/dummy-shared-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "creating a dummy shared worker",
          "status": "FAIL",
          "message": "Can't find variable: SharedWorker"
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "existence of postMessage",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of onmessage",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of self",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of close",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of onoffline",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of ononline",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of addEventListener",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of removeEventListener",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of dispatchEvent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of importScripts",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of navigator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of setTimeout",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of clearTimeout",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of setInterval",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of clearInterval",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of btoa",
          "status": "PASS",
          "message": null
        },
        {
          "name": "existence of atob",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/ctor-undefined.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "undefined as argument",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/workers/constructors/Worker/terminate.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "terminate()",
          "status": "PASS",
          "message": null
        }
      ]
    }
  ]
}