{
  "results": [
    {
      "test": "/uievents/order-of-events/focus-events/focus-automated-blink-webkit.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Focus-related events should fire in the correct order (same DocumentOwner)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Focus-related events should fire in the correct order (different DocumentOwner)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/idlharness.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "idl_test setup",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface UIEvent: original interface defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface KeyboardEvent: original interface defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of UIEvent is not Event expected function \"function Event() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "UIEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: attribute view",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get view' expected \"get view\" but got \"view\""
        },
        {
          "name": "UIEvent interface: attribute detail",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get detail' expected \"get detail\" but got \"detail\""
        },
        {
          "name": "UIEvent interface: attribute which",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"which\" expected true got false"
        },
        {
          "name": "UIEvent must be primary interface of new UIEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new UIEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new UIEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new UIEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new UIEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"which\" not found in prototype chain"
        },
        {
          "name": "FocusEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of FocusEvent is not UIEvent expected function \"function UIEvent() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "FocusEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface: attribute relatedTarget",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get relatedTarget' expected \"get relatedTarget\" but got \"relatedTarget\""
        },
        {
          "name": "FocusEvent must be primary interface of new FocusEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new FocusEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "FocusEvent interface: new FocusEvent(\"event\") must inherit property \"relatedTarget\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new FocusEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new FocusEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new FocusEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"which\" not found in prototype chain"
        },
        {
          "name": "MouseEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of MouseEvent is not UIEvent expected function \"function UIEvent() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "MouseEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: attribute screenX",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get screenX' expected \"get screenX\" but got \"screenX\""
        },
        {
          "name": "MouseEvent interface: attribute screenY",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get screenY' expected \"get screenY\" but got \"screenY\""
        },
        {
          "name": "MouseEvent interface: attribute clientX",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get clientX' expected \"get clientX\" but got \"clientX\""
        },
        {
          "name": "MouseEvent interface: attribute clientY",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get clientY' expected \"get clientY\" but got \"clientY\""
        },
        {
          "name": "MouseEvent interface: attribute ctrlKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get ctrlKey' expected \"get ctrlKey\" but got \"ctrlKey\""
        },
        {
          "name": "MouseEvent interface: attribute shiftKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get shiftKey' expected \"get shiftKey\" but got \"shiftKey\""
        },
        {
          "name": "MouseEvent interface: attribute altKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get altKey' expected \"get altKey\" but got \"altKey\""
        },
        {
          "name": "MouseEvent interface: attribute metaKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get metaKey' expected \"get metaKey\" but got \"metaKey\""
        },
        {
          "name": "MouseEvent interface: attribute button",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get button' expected \"get button\" but got \"button\""
        },
        {
          "name": "MouseEvent interface: attribute buttons",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get buttons' expected \"get buttons\" but got \"buttons\""
        },
        {
          "name": "MouseEvent interface: attribute relatedTarget",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get relatedTarget' expected \"get relatedTarget\" but got \"relatedTarget\""
        },
        {
          "name": "MouseEvent interface: operation getModifierState(DOMString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent must be primary interface of new MouseEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new MouseEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"screenX\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"screenY\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"clientX\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"clientY\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"ctrlKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"shiftKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"altKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"metaKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"button\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"buttons\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"relatedTarget\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new MouseEvent(\"event\") must inherit property \"getModifierState(DOMString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: calling getModifierState(DOMString) on new MouseEvent(\"event\") with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new MouseEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new MouseEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new MouseEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of WheelEvent is not MouseEvent expected function \"function MouseEvent() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "WheelEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_PIXEL on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_PIXEL on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_LINE on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_LINE on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_PAGE on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: constant DOM_DELTA_PAGE on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: attribute deltaX",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get deltaX' expected \"get deltaX\" but got \"deltaX\""
        },
        {
          "name": "WheelEvent interface: attribute deltaY",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get deltaY' expected \"get deltaY\" but got \"deltaY\""
        },
        {
          "name": "WheelEvent interface: attribute deltaZ",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get deltaZ' expected \"get deltaZ\" but got \"deltaZ\""
        },
        {
          "name": "WheelEvent interface: attribute deltaMode",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get deltaMode' expected \"get deltaMode\" but got \"deltaMode\""
        },
        {
          "name": "WheelEvent must be primary interface of new WheelEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new WheelEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"DOM_DELTA_PIXEL\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"DOM_DELTA_LINE\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"DOM_DELTA_PAGE\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"deltaX\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"deltaY\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"deltaZ\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WheelEvent interface: new WheelEvent(\"event\") must inherit property \"deltaMode\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"screenX\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"screenY\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"clientX\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"clientY\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"ctrlKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"shiftKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"altKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"metaKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"button\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"buttons\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"relatedTarget\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: new WheelEvent(\"event\") must inherit property \"getModifierState(DOMString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "MouseEvent interface: calling getModifierState(DOMString) on new WheelEvent(\"event\") with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new WheelEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new WheelEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new WheelEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "InputEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface object length",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface object name",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: existence and properties of interface prototype object",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: attribute data",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: attribute isComposing",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent interface: attribute inputType",
          "status": "FAIL",
          "message": "assert_own_property: self does not have own property \"InputEvent\" expected property \"InputEvent\" missing"
        },
        {
          "name": "InputEvent must be primary interface of new InputEvent(\"event\")",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "Stringification of new InputEvent(\"event\")",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "InputEvent interface: new InputEvent(\"event\") must inherit property \"data\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "InputEvent interface: new InputEvent(\"event\") must inherit property \"isComposing\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "InputEvent interface: new InputEvent(\"event\") must inherit property \"inputType\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "UIEvent interface: new InputEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "UIEvent interface: new InputEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "UIEvent interface: new InputEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "FAIL",
          "message": "assert_equals: Unexpected exception when evaluating object expected null but got object \"ReferenceError: 'InputEvent' is not defined\""
        },
        {
          "name": "KeyboardEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of KeyboardEvent is not UIEvent expected function \"function UIEvent() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "KeyboardEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_STANDARD on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_STANDARD on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_LEFT on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_LEFT on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_RIGHT on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_RIGHT on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_NUMPAD on interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: constant DOM_KEY_LOCATION_NUMPAD on interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: attribute key",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get key' expected \"get key\" but got \"key\""
        },
        {
          "name": "KeyboardEvent interface: attribute code",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"code\" expected true got false"
        },
        {
          "name": "KeyboardEvent interface: attribute location",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get location' expected \"get location\" but got \"location\""
        },
        {
          "name": "KeyboardEvent interface: attribute ctrlKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get ctrlKey' expected \"get ctrlKey\" but got \"ctrlKey\""
        },
        {
          "name": "KeyboardEvent interface: attribute shiftKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get shiftKey' expected \"get shiftKey\" but got \"shiftKey\""
        },
        {
          "name": "KeyboardEvent interface: attribute altKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get altKey' expected \"get altKey\" but got \"altKey\""
        },
        {
          "name": "KeyboardEvent interface: attribute metaKey",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get metaKey' expected \"get metaKey\" but got \"metaKey\""
        },
        {
          "name": "KeyboardEvent interface: attribute repeat",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get repeat' expected \"get repeat\" but got \"repeat\""
        },
        {
          "name": "KeyboardEvent interface: attribute isComposing",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"isComposing\" expected true got false"
        },
        {
          "name": "KeyboardEvent interface: operation getModifierState(DOMString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: attribute charCode",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get charCode' expected \"get charCode\" but got \"charCode\""
        },
        {
          "name": "KeyboardEvent interface: attribute keyCode",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get keyCode' expected \"get keyCode\" but got \"keyCode\""
        },
        {
          "name": "KeyboardEvent must be primary interface of new KeyboardEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new KeyboardEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"DOM_KEY_LOCATION_STANDARD\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"DOM_KEY_LOCATION_LEFT\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"DOM_KEY_LOCATION_RIGHT\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"DOM_KEY_LOCATION_NUMPAD\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"key\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"code\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"code\" not found in prototype chain"
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"location\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"ctrlKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"shiftKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"altKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"metaKey\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"repeat\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"isComposing\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"isComposing\" not found in prototype chain"
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"getModifierState(DOMString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: calling getModifierState(DOMString) on new KeyboardEvent(\"event\") with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"charCode\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "KeyboardEvent interface: new KeyboardEvent(\"event\") must inherit property \"keyCode\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new KeyboardEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new KeyboardEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new KeyboardEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: existence and properties of interface object",
          "status": "FAIL",
          "message": "assert_equals: prototype of CompositionEvent is not UIEvent expected function \"function UIEvent() { [native code] }\" but got function \"function() {\n    [native code]\n}\""
        },
        {
          "name": "CompositionEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: attribute data",
          "status": "FAIL",
          "message": "assert_equals: getter must have the name 'get data' expected \"get data\" but got \"data\""
        },
        {
          "name": "CompositionEvent must be primary interface of new CompositionEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new CompositionEvent(\"event\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CompositionEvent interface: new CompositionEvent(\"event\") must inherit property \"data\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new CompositionEvent(\"event\") must inherit property \"view\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new CompositionEvent(\"event\") must inherit property \"detail\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UIEvent interface: new CompositionEvent(\"event\") must inherit property \"which\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"which\" not found in prototype chain"
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: stopPropagation() prevents other event listeners from being triggered but its effect must be deferred until all event listeners attached on the Event.currentTarget have been triggered.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/legacy/Event-subclasses-init.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Call initUIEvent without parameters",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Call initMouseEvent without parameters",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Call initKeyboardEvent without parameters",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Call initCompositionEvent without parameters",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/mouse/mouse_buttons_back_forward.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Tests that the mouseup is preventable.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: Implementations of the DOM event model must be reentrant. Event listeners may perform actions that cause additional events to be dispatched. Such events are handled in a synchronous manner, the event propagation that causes the event listener to be triggered must resume only after the event dispatch of the new event is completed.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: DOMCharacterDataModified event fires after ProcessingInstruction.data have been modified, but the node itself has not been inserted or deleted. The proximal event target of this event shall be the ProcessingInstruction node.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/approved/stopImmediatePropagation.effect.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: stopImmediatePropagation() prevents other event listeners from being triggered and, unlike Event.stopPropagation(), its effect must be immediate. Once it has been called, further calls to this method have no additional effect.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/approved/domnodeinserted.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test Description: DOMNodeInserted event fires when a node has been added as a child of another node.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/uievents/constructors/inputevent-constructor.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "InputEvent constructor without InputEventInit.",
          "status": "FAIL",
          "message": "'InputEvent' is not defined"
        },
        {
          "name": "InputEvent construtor with InputEventInit where data is null",
          "status": "FAIL",
          "message": "'InputEvent' is not defined"
        },
        {
          "name": "InputEvent construtor with InputEventInit where data is empty string",
          "status": "FAIL",
          "message": "'InputEvent' is not defined"
        },
        {
          "name": "InputEvent construtor with InputEventInit where data is non empty string",
          "status": "FAIL",
          "message": "'InputEvent' is not defined"
        }
      ]
    },
    {
      "test": "/uievents/order-of-events/mouse-events/click-cancel.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Default action is canceled if the click event is canceled.",
          "status": "FAIL",
          "message": "assert_unreached: click failed Reached unreachable code"
        }
      ]
    },
    {
      "test": "/uievents/interface/click-event.htm",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "synthetic click event is a MouseEvent",
          "status": "FAIL",
          "message": "assert_equals: expected function \"function MouseEvent() { [native code] }\" but got function \"function PointerEvent() { [native code] }\""
        }
      ]
    },
    {
      "test": "/uievents/legacy-domevents-tests/approved/dispatchEvent.click.checkbox.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Checkbox state is unchanged before the synthetic click event is dispatched",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Description: MouseEvent: Default action is performed when a synthetic click event is dispatched on a checkbox element",
          "status": "PASS",
          "message": null
        }
      ]
    }
  ]
}