| <!DOCTYPE html> | |
| <title>Geometry Interfaces: DOMMatrix and DOMMatrixReadOnly [NewObject] methods</title> | |
| <link rel="help" href="https://drafts.fxtf.org/geometry/#DOMMatrix"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| function getReturnType(method) { | |
| switch(method) { | |
| case "transformPoint": return "DOMPoint"; break; | |
| case "toFloat32Array": return "Float32Array"; break; | |
| case "toFloat64Array": return "Float64Array"; break; | |
| default: return "DOMMatrix"; break; | |
| } | |
| } | |
| ["DOMMatrix", "DOMMatrixReadOnly"].forEach((constr) => { | |
| ["translate", | |
| "scale", | |
| "scale3d", | |
| "rotate", | |
| "rotateFromVector", | |
| "rotateAxisAngle", | |
| "skewX", | |
| "skewY", | |
| "multiply", | |
| "flipX", | |
| "flipY", | |
| "inverse", | |
| "transformPoint", | |
| "toFloat32Array", | |
| "toFloat64Array"].forEach((method) => { | |
| test(() => { | |
| const matrix = new self[constr](); | |
| const a = matrix[method](); | |
| const b = matrix[method](); | |
| assert_class_string(matrix, constr, 'matrix'); | |
| assert_class_string(a, getReturnType(method), 'a'); | |
| assert_class_string(b, getReturnType(method), 'b'); | |
| assert_not_equals(a, b, 'a !== b'); | |
| assert_not_equals(a, matrix, 'a !== matrix'); | |
| assert_not_equals(b, matrix, 'b !== matrix'); | |
| }, `${constr} ${method}`); | |
| }); | |
| }); | |
| </script> |