Status: FAIL | Duration: 184ms | Subtests: 8/138 | Open test on wpt.live | wpt.fyi
Data from commit:
1884860 Copy-on-write style attribute blocks that are in the rule tree (#831) (2026-09-02)
| Subtest | Status | Message |
|---|---|---|
| new DOMMatrix() | FAIL | not a constructor |
| new DOMMatrix(undefined) | FAIL | not a constructor |
| new DOMMatrix(new DOMMatrix()) | FAIL | not a constructor |
| new DOMMatrix("none") | FAIL | not a constructor |
| new DOMMatrix(" none") | FAIL | not a constructor |
| new DOMMatrix("none ") | FAIL | not a constructor |
| new DOMMatrix("NONE") | FAIL | not a constructor |
| new DOMMatrix("none/**/") | FAIL | not a constructor |
| new DOMMatrix("/**/none") | FAIL | not a constructor |
| new DOMMatrix("") | FAIL | not a constructor |
| new DOMMatrix(float32Array) 16 elements | FAIL | not a constructor |
| new DOMMatrix(float32Array) 6 elements | FAIL | not a constructor |
| new DOMMatrix(float64Array) 16 elements | FAIL | not a constructor |
| new DOMMatrix((float64Array) 6 elements | FAIL | not a constructor |
| new DOMMatrix(sequence) 16 elements | FAIL | not a constructor |
| new DOMMatrix(sequence) 6 elements | FAIL | not a constructor |
| new DOMMatrix("scale(2) translateX(5px) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrix("scale(2, 2) translateX(5px) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrix("scale(2)translateX(5px)translateY(5px)") | FAIL | not a constructor |
| new DOMMatrix("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrix("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") | FAIL | not a constructor |
| new DOMMatrix("translateX (5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("scale(2 2) translateX(5) translateY(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("scale(2, 2), translateX(5) ,translateY(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("scale(sign(1em))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("scale(sibling-index())") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5em)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5ex)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5ch)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5rem)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqw)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqh)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqb)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqi)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqmin)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5cqmax)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vw)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vh)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vb)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vi)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vmin)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5vmax)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(5%)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(calc(10px * sign(1em - 10px)))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("translateX(calc(10px * sibling-index()))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(5, 5, 5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(5, 5px, 5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(5deg, 5px, 5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(calc(5deg * sign(1em - 10px)))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("rotate(calc(5deg * sibling-index()))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix(" ") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("/**/") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("\0") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix(";") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("none;") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("null") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix(null) | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("undefined") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("inherit") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("initial") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix("unset") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix(sequence) | FAIL | not a constructor |
| new DOMMatrix(matrix) | FAIL | not a constructor |
| new DOMMatrix("scale(2, 2), translateX(5px) translateY(5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrix(sequence) 17 elements | PASS | |
| new DOMMatrix(sequence) 15 elements | PASS | |
| new DOMMatrix(sequence) 5 elements | PASS | |
| new DOMMatrix(sequence) 0 elements | PASS | |
| new DOMMatrixReadOnly() | FAIL | not a constructor |
| new DOMMatrixReadOnly(undefined) | FAIL | not a constructor |
| new DOMMatrixReadOnly(new DOMMatrixReadOnly()) | FAIL | not a constructor |
| new DOMMatrixReadOnly("none") | FAIL | not a constructor |
| new DOMMatrixReadOnly(" none") | FAIL | not a constructor |
| new DOMMatrixReadOnly("none ") | FAIL | not a constructor |
| new DOMMatrixReadOnly("NONE") | FAIL | not a constructor |
| new DOMMatrixReadOnly("none/**/") | FAIL | not a constructor |
| new DOMMatrixReadOnly("/**/none") | FAIL | not a constructor |
| new DOMMatrixReadOnly("") | FAIL | not a constructor |
| new DOMMatrixReadOnly(float32Array) 16 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly(float32Array) 6 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly(float64Array) 16 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly((float64Array) 6 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly(sequence) 16 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly(sequence) 6 elements | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2, 2) translateX(5px) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2)translateX(5px)translateY(5px)") | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") | FAIL | not a constructor |
| new DOMMatrixReadOnly("translateX (5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("scale(2, 2), translateX(5) ,translateY(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("scale(sign(1em))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("scale(sibling-index())") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5em)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5ex)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5ch)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5rem)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqw)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqh)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqb)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqi)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqmin)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5cqmax)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vw)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vh)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vb)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vi)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vmin)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5vmax)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(5%)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(calc(10px * sign(1em - 10px)))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("translateX(calc(10px * sibling-index()))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(5, 5, 5)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(5, 5px, 5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(5deg, 5px, 5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(calc(5deg * sign(1em - 10px)))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("rotate(calc(5deg * sibling-index()))") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly(" ") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("/**/") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("\0") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly(";") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("none;") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("null") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly(null) | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("undefined") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("inherit") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("initial") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly("unset") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly(sequence) | FAIL | not a constructor |
| new DOMMatrixReadOnly(matrix) | FAIL | not a constructor |
| new DOMMatrixReadOnly("scale(2, 2), translateX(5px) translateY(5px)") | FAIL | assert_throws_dom: function "function() { new self[constr](string); }" threw object "TypeError: not a constructor" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12 |
| new DOMMatrixReadOnly(sequence) 17 elements | PASS | |
| new DOMMatrixReadOnly(sequence) 15 elements | PASS | |
| new DOMMatrixReadOnly(sequence) 5 elements | PASS | |
| new DOMMatrixReadOnly(sequence) 0 elements | PASS |
/css/geometry/DOMMatrix-001.html
<!DOCTYPE html> <html> <head> <title>Geometry Interfaces: DOMMatrix and DOMMatrixReadOnly constructors</title> <link rel="author" title="Dirk Schulze" href="mailto:dschulze@adobe.com" /> <link rel="help" href="https://drafts.fxtf.org/geometry/#DOMMatrix"> <link rel="help" href="https://drafts.fxtf.org/geometry/#dommatrix-constructors"> <link rel="help" href="https://drafts.fxtf.org/geometry/#dom-dommatrix-dommatrix"> <script src="support/dommatrix-test-util.js"></script> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> </head> <body> <div id="log"></div> <script> var initial = { m11: 1, m21: 0, m31: 0, m41: 0, m12: 0, m22: 1, m32: 0, m42: 0, m13: 0, m23: 0, m33: 1, m43: 0, m14: 0, m24: 0, m34: 0, m44: 1, is2D: true, isIdentity: true }; var scaleTranslate2D = { m11: 2, m21: 0, m31: 0, m41: 10, m12: 0, m22: 2, m32: 0, m42: 10, m13: 0, m23: 0, m33: 1, m43: 0, m14: 0, m24: 0, m34: 0, m44: 1, is2D: true, isIdentity: false }; ["DOMMatrix", "DOMMatrixReadOnly"].forEach(function(constr) { test(function() { checkMatrix(new self[constr](), initial); }, `new ${constr}()`); test(function() { checkMatrix(new self[constr](undefined), initial); }, `new ${constr}(undefined)`); test(function() { checkMatrix(new self[constr](new self[constr]()), initial); }, `new ${constr}(new ${constr}())`); ['none', ' none', 'none ', 'NONE', 'none/**/', '/**/none', '', ].forEach(function(string) { test(function() { checkMatrix(new self[constr](string), initial); }, `new ${constr}(${format_value(string)})`); }); test(function() { var float32Array = new Float32Array([ 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 1.0]); checkMatrix(new self[constr](float32Array), matrix3D(scaleTranslate2D)); }, `new ${constr}(float32Array) 16 elements`); test(function() { var float32Array = new Float32Array([2.0, 0.0, 0.0, 2.0, 10.0, 10.0]); checkMatrix(new self[constr](float32Array), scaleTranslate2D); }, `new ${constr}(float32Array) 6 elements`); test(function() { var float64Array = new Float64Array([ 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 1.0]); checkMatrix(new self[constr](float64Array), matrix3D(scaleTranslate2D)); }, `new ${constr}(float64Array) 16 elements`); test(function() { var float64Array = new Float64Array([2.0, 0.0, 0.0, 2.0, 10.0, 10.0]); checkMatrix(new self[constr](float64Array), scaleTranslate2D); }, `new ${constr}((float64Array) 6 elements`); [ [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 1.0], [2.0, 0.0, 0.0, 2.0, 10.0, 10.0], ].forEach(function(sequence) { test(function() { var expected = sequence.length == 6 ? scaleTranslate2D : matrix3D(scaleTranslate2D); checkMatrix(new self[constr](sequence), expected); }, `new ${constr}(sequence) ${sequence.length} elements`); }); { const epsilon = 0.0000000005; ['scale(2) translateX(5px) translateY(5px)', 'scale(2, 2) translateX(5px) translateY(5px)', 'scale(2)translateX(5px)translateY(5px)', 'scale(2) translateX(calc(2 * 2.5px)) translateY(5px)', 'scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)', ].forEach(function(string) { test(function() { checkMatrix(new self[constr](string), scaleTranslate2D, { epsilon }); }, `new ${constr}(${format_value(string)})`); }); } ['translateX (5px)', 'scale(2 2) translateX(5) translateY(5)', 'scale(2, 2), translateX(5) ,translateY(5)', 'scale(sign(1em))', 'scale(sibling-index())', 'translateX(5em)', 'translateX(5ex)', 'translateX(5ch)', 'translateX(5rem)', 'translateX(5cqw)', 'translateX(5cqh)', 'translateX(5cqb)', 'translateX(5cqi)', 'translateX(5cqmin)', 'translateX(5cqmax)', 'translateX(5vw)', 'translateX(5vh)', 'translateX(5vb)', 'translateX(5vi)', 'translateX(5vmin)', 'translateX(5vmax)', 'translateX(5%)', 'translateX(calc(10px * sign(1em - 10px)))', 'translateX(calc(10px * sibling-index()))', 'rotate(5)', 'rotate(5, 5, 5)', 'rotate(5, 5px, 5px)', 'rotate(5deg, 5px, 5px)', 'rotate(calc(5deg * sign(1em - 10px)))', 'rotate(calc(5deg * sibling-index()))', ' ', '/**/', '\0', ';', 'none;', 'null', null, // is converted to 'null' by IDL 'undefined', 'inherit', 'initial', 'unset', ].forEach(function(string) { test(function() { assert_throws_dom('SyntaxError', function() { new self[constr](string); }); }, `new ${constr}(${format_value(string)})`); }); test(function() { var sequence = [ 2.0, 1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 1.0]; checkMatrix(new self[constr](sequence), { m11: 2, m21: 1, m31: 0, m41: 10, m12: 1, m22: 2, m32: 0, m42: 10, m13: 0, m23: 0, m33: 1, m43: 0, m14: 0, m24: 0, m34: 0, m44: 1, is2D: false, isIdentity: false }); }, `new ${constr}(sequence)`); test(function() { var matrix = new self[constr]([ 2.0, 1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 1.0]); checkMatrix(new self[constr](matrix), { m11: 2, m21: 1, m31: 0, m41: 10, m12: 1, m22: 2, m32: 0, m42: 10, m13: 0, m23: 0, m33: 1, m43: 0, m14: 0, m24: 0, m34: 0, m44: 1, is2D: false, isIdentity: false }); }, `new ${constr}(matrix)`); ['scale(2, 2), translateX(5px) translateY(5px)', ].forEach(function(string) { test(function() { assert_throws_dom("SyntaxError", function() { new self[constr](string); }); }, `new ${constr}(${format_value(string)})`); }); [ [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0, 2.0, 0.0], // 17 elements [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 10.0, 0.0], // 15 elements [2.0, 0.0, 0.0, 2.0, 10.0], // 5 elements [], // 0 elements ].forEach(function(sequence) { test(function() { assert_throws_js(TypeError, function() { new self[constr](sequence); }); }, `new ${constr}(sequence) ${sequence.length} elements`); }); }); </script> </body> </html>