<!DOCTYPE html>
<meta charset=utf-8>
<title>DOMRect's handling of NaN in top/bottom/left/right</title>
<link rel=help href="https://drafts.fxtf.org/geometry/#dom-domrectreadonly-domrect-top">
<link rel=help href="https://drafts.fxtf.org/geometry/#dom-domrectreadonly-domrect-bottom">
<link rel=help href="https://drafts.fxtf.org/geometry/#dom-domrectreadonly-domrect-left">
<link rel=help href="https://drafts.fxtf.org/geometry/#dom-domrectreadonly-domrect-right">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
"use strict";

for (const i of [1, 2, 3, 4]) {
  for (const comp of ["x", "y"]) {
    test(() => {
      const args = [{ x: 0, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }, { x: 0, y: 0 }];
      args[i - 1][comp] = NaN;
      const quad = new DOMQuad(...args);
      const bounds = quad.getBounds();
      if (comp === "x") {
        assert_equals(bounds.x, NaN, "x coordinate");
        assert_equals(bounds.y, 0, "y coordinate");
        assert_equals(bounds.width, NaN, "width");
        assert_equals(bounds.height, 0, "height");
      } else {
        assert_equals(bounds.x, 0, "x coordinate");
        assert_equals(bounds.y, NaN, "y coordinate");
        assert_equals(bounds.width, 0, "width");
        assert_equals(bounds.height, NaN, "height");
      }
    }, `Setting DOMQuad's p${i}.${comp} to NaN`);
  }
}
</script>
