| <!DOCTYPE html> | |
| <title>Geometry Interfaces: DOMMatrix and DOMMatrixReadOnly a-f alias attributes</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 defineThrowingGetter(object, attribute) { | |
| Object.defineProperty(object, attribute, { | |
| get: () => assert_unreached(`getter for ${attribute}`) | |
| }); | |
| } | |
| function defineThrowingSetter(object, attribute) { | |
| Object.defineProperty(object, attribute, { | |
| set: () => assert_unreached(`setter for ${attribute}`) | |
| }); | |
| } | |
| ["DOMMatrix", "DOMMatrixReadOnly"].forEach((constr) => { | |
| [ | |
| ["a", "m11"], | |
| ["b", "m12"], | |
| ["c", "m21"], | |
| ["d", "m22"], | |
| ["e", "m41"], | |
| ["f", "m42"], | |
| ].forEach(([aliasAttribute, mAttribute]) => { | |
| test(() => { | |
| const matrix = new self[constr]([0, 0, 0, 0, 0, 0]); | |
| defineThrowingGetter(matrix, mAttribute); | |
| assert_equals(matrix[aliasAttribute], 0); | |
| }, `${constr} getting ${aliasAttribute} with throwing getter for ${mAttribute}`); | |
| test(() => { | |
| const matrix = new self[constr]([0, 0, 0, 0, 0, 0]); | |
| defineThrowingGetter(matrix, aliasAttribute); | |
| assert_equals(matrix[mAttribute], 0); | |
| }, `${constr} getting ${mAttribute} with throwing getter for ${aliasAttribute}`); | |
| if (constr === "DOMMatrix") { | |
| test(() => { | |
| const matrix = new self[constr]([0, 0, 0, 0, 0, 0]); | |
| defineThrowingSetter(matrix, mAttribute); | |
| matrix[aliasAttribute] = 1; | |
| assert_equals(matrix[aliasAttribute], 1); | |
| }, `${constr} setting ${aliasAttribute} with throwing setter for ${mAttribute}`); | |
| test(() => { | |
| const matrix = new self[constr]([0, 0, 0, 0, 0, 0]); | |
| defineThrowingSetter(matrix, aliasAttribute); | |
| matrix[mAttribute] = 1; | |
| assert_equals(matrix[mAttribute], 1); | |
| }, `${constr} setting ${mAttribute} with throwing setter for ${aliasAttribute}`); | |
| } | |
| }); | |
| }); | |
| </script> |