1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:57:35 +00:00

LibWeb: Fix DOMMatrix fromMatrix to use complete DOMMatrixInit struct

DOMMatrix fromMatrix was using create_from_dom_matrix_2d_init to make
a DOMMatrix for it's init struct this is wrong because only the 2D
params of the DOMMatrix are put into the new matrix. I have added
a non 2D version of that function that takes the full DOMMatrixInit
so now fromMatrix works correctly again. I also have added some
text tests to test if it works correctly.

I split the dommatrix.html text tests into multiple files because that
file was becoming to big so now every sub function is a seperate file.
This commit is contained in:
Bastiaan van der Plaat 2023-09-07 21:26:21 +02:00 committed by Andrew Kaster
parent 5d37e1c220
commit 67f6a9ee12
14 changed files with 174 additions and 69 deletions

View file

@ -0,0 +1,33 @@
<script src="../include.js"></script>
<script>
test(() => {
let testCounter = 1;
function testPart(part) {
println(`${testCounter++}. ${JSON.stringify(part())}`);
}
// 1. Skew X DOMMatrix
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60]).skewXSelf(10));
// 2. Skew X DOMMatrix with multiply
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60]).multiply(new DOMMatrix().skewX(10)));
// 3. Skew X DOMMatrix
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]).skewXSelf(20));
// 4. Skew X DOMMatrix with multiply
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]).multiply(new DOMMatrix().skewX(20)));
// 5. Skew Y DOMMatrix
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60]).skewYSelf(10));
// 6. Skew Y DOMMatrix with multiply
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60]).multiply(new DOMMatrix().skewY(10)));
// 7. Skew Y DOMMatrix
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]).skewYSelf(20));
// 8. Skew Y DOMMatrix with multiply
testPart(() => new DOMMatrix([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]).multiply(new DOMMatrix().skewY(20)));
});
</script>