| <!DOCTYPE html> | |
| <meta charset=utf-8> | |
| <title>DOMQuad's handling of NaN in getBounds()</title> | |
| <link rel=help href="https://drafts.fxtf.org/geometry/#dom-domquad-getbounds"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| "use strict"; | |
| const testCases = [ | |
| { | |
| name: "x coordinate is NaN", | |
| idx: 0, | |
| exp: { | |
| x: NaN, | |
| y: 0, | |
| width: 0, | |
| height: 0, | |
| top: 0, | |
| bottom: 0, | |
| left: NaN, | |
| right: NaN | |
| } | |
| }, | |
| { | |
| name: "y coordinate is NaN", | |
| idx: 1, | |
| exp: { | |
| x: 0, | |
| y: NaN, | |
| width: 0, | |
| height: 0, | |
| top: NaN, | |
| bottom: NaN, | |
| left: 0, | |
| right: 0 | |
| } | |
| }, | |
| { | |
| name: "width is NaN", | |
| idx: 2, | |
| exp: { | |
| x: 0, | |
| y: 0, | |
| width: NaN, | |
| height: 0, | |
| top: 0, | |
| bottom: 0, | |
| left: NaN, | |
| right: NaN | |
| } | |
| }, | |
| { | |
| name: "height is NaN", | |
| idx: 3, | |
| exp: { | |
| x: 0, | |
| y: 0, | |
| width: 0, | |
| height: NaN, | |
| top: NaN, | |
| bottom: NaN, | |
| left: 0, | |
| right: 0 | |
| } | |
| }, | |
| ]; | |
| for (const Rect of [DOMRect, DOMRectReadOnly]) { | |
| for (const testCase of testCases) { | |
| test(() => { | |
| const args = [0, 0, 0, 0]; | |
| args[testCase.idx] = NaN; | |
| const rect = new Rect(...args); | |
| assert_object_equals(rect.toJSON(), testCase.exp); | |
| }, `${Rect.name}'s ${testCase.name}`); | |
| } | |
| } | |
| </script> |