<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<body>
<div></div>
<script>

  test(function () {

    var div = document.querySelector("div");
    var clickEvent = null;

    div.addEventListener("click", function (ev) { clickEvent = ev; });
    div.click();

    assert_not_equals(clickEvent, null, "click event captured");

    var getter_called = false;
    var setter_called = false;

    Object.defineProperty(Array.prototype, "0", {
      get: function () { getter_called = true; },
      set: function () { setter_called = true; }
    });

    var path = clickEvent.path;

    delete Array.prototype["0"];

    assert_false(getter_called, "Array.prototype[0] getter called");
    assert_false(setter_called, "Array.prototype[0] setter called");

    assert_equals(clickEvent.path.length, 5, "click event path length");

  }, "conversion should use [[DefineOwnProperty]]");

</script>
</body>
