WPT
wpt / css / geometry / DOMMatrix2DInit-validate-fixup.html
Spec: Geometry Interfaces ↗
Runs: Chrome 155.0.8042.0 (wpt@0a3996025, 2026-09-04) | Firefox 157.0a1 (wpt@972e0e100, 2026-09-04) | Safari 251 preview (wpt@972e0e100, 2026-09-04) | Ladybird 1.0-481bc (wpt@d317428a6, 2026-09-05) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 108/112 | 108/112 | 108/112 | 112/112 | 112/112 | 0/112 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| setTransform({a: 1, m11: 2}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({a: 1, m11: 2}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({b: 0, m12: -1}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({b: 0, m12: -1}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({c: Infinity, m21: -Infinity}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: Infinity, m21: -Infinity}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({d: 0, m22: NaN}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({d: 0, m22: NaN}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({e: 1, m41: 1.00000001}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({e: 1, m41: 1.00000001}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: 0, m42: 5e-324}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: 0, m42: 5e-324}) (invalid) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform (Sanity check without dictionary) | PASS | PASS | PASS | PASS | PASS | — |
| addPath (Sanity check without second parameter) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({is2D: undefined}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({is2D: undefined}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({a: 1, m11: 1}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({a: 1, m11: 1}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({b: 0, m12: undefined}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({b: 0, m12: undefined}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({c: 0, m21: 0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: 0, m21: 0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({c: 0, m21: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: 0, m21: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({c: -0, m21: 0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: -0, m21: 0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({c: -0, m21: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: -0, m21: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({d: Infinity, m22: Infinity}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({d: Infinity, m22: Infinity}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({e: -Infinity, m41: -Infinity}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({e: -Infinity, m41: -Infinity}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: NaN, m42: NaN}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: NaN, m42: NaN}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: NaN, m42: NaN, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: NaN, m42: NaN, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: 0, m42: null}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: 0, m42: null}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: -0, m42: null}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: -0, m42: null}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({a: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({a: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({b: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({b: 2}) | FAIL | FAIL | FAIL | PASS | PASS | — |
| setTransform({c: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({c: 2}) | FAIL | FAIL | FAIL | PASS | PASS | — |
| setTransform({d: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({d: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({e: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({e: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({f: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({f: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m11: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m11: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m12: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m12: 2}) | FAIL | FAIL | FAIL | PASS | PASS | — |
| setTransform({m21: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m21: 2}) | FAIL | FAIL | FAIL | PASS | PASS | — |
| setTransform({m22: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m22: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m41: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m41: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m42: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m42: 2}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m13: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m13: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m13: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m13: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m14: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m14: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m14: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m14: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m23: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m23: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m23: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m23: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m24: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m24: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m24: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m24: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m31: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m31: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m31: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m31: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m32: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m32: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m32: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m32: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m33: 1, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m33: 1, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m34: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m34: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m34: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m34: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m43: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m43: 0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m43: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m43: -0, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({m44: 1, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({m44: 1, is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| setTransform({is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |
| addPath({is2D: true}) | PASS | PASS | PASS | PASS | PASS | — |