<!DOCTYPE HTML>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=737087
-->
<title>Test for Bug 737087</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=737087">Mozilla Bug 737087</a>
<script>

/** Test for Bug 737087 **/
SimpleTest.waitForExplicitFinish();

var bubbled = false;
var capturedEvent = null;
var inlineFiredEvent = null;

addEventListener("error", function() { bubbled = true });
addEventListener("error", function(e) {
  capturedEvent = e;
  is(typeof e, "object", "Error event must be object");
  is(Object.getPrototypeOf(e), Event.prototype, "Error event must be Event");
  is(e.bubbles, false, "e.bubbles must be false");
  is(e.cancelable, false, "e.cancelable must be false");
}, true);

addLoadEvent(function() {
  is(bubbled, false, "Error event must not bubble");
  isnot(capturedEvent, null, "Error event must be captured");
  isnot(inlineFiredEvent, null, "Inline error handler must fire");
  is(capturedEvent, inlineFiredEvent,
     "Same event must be handled by both handlers");
  SimpleTest.finish();
});
</script>
<script src=nonexistent
  onerror="inlineFiredEvent = event"></script>
