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