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