| <!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> |