canvas: Implement line dash setters and getters (#36257)

Implement `setLineDash`, `getLineDash`, and `lineDashOffset` from
`CanvasPathDrawingStyles` mixin, according to the spec
https://html.spec.whatwg.org/multipage/canvas.html#canvaspathdrawingstyles.

Testing: Existing WPT.

---------

Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
This commit is contained in:
Steven Novaryo 2025-04-01 19:22:00 +08:00 committed by GitHub
parent bc6926d1fe
commit a77592e281
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 144 additions and 92 deletions

View file

@ -1,7 +0,0 @@
[setLineDash.html]
[Invalid arguments to setLineDash()]
expected: FAIL
[setLineDash]
expected: FAIL

View file

@ -1,2 +0,0 @@
[2d.reset.render.line.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash.html]
[check that the line dash is reset]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash_offset.html]
[check that the state is reset]
expected: FAIL

View file

@ -1,2 +0,0 @@
[2d.reset.render.line.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash.html]
[check that the line dash is reset]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash.worker.html]
[check that the line dash is reset]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash_offset.html]
[check that the state is reset]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.reset.state.line_dash_offset.worker.html]
[check that the state is reset]
expected: FAIL

View file

@ -71,15 +71,6 @@
[OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation getLineDash()]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL

View file

@ -146,9 +146,6 @@
[OffscreenCanvasRenderingContext2D interface: operation commit()]
expected: FAIL
[CanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)]
expected: FAIL
[DataTransferItemList interface object name]
expected: FAIL
@ -4613,15 +4610,6 @@
[CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[CanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)]
expected: FAIL
[CanvasRenderingContext2D interface: operation getLineDash()]
expected: FAIL
[CanvasRenderingContext2D interface: attribute lineDashOffset]
expected: FAIL
[CanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL
@ -4691,18 +4679,6 @@
[CanvasRenderingContext2D interface: calling strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setLineDash(sequence<unrestricted double>)" with the proper type]
expected: FAIL
[CanvasRenderingContext2D interface: calling setLineDash(sequence<unrestricted double>) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getLineDash()" with the proper type]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineDashOffset" with the proper type]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "letterSpacing" with the proper type]
expected: FAIL
@ -4802,15 +4778,6 @@
[OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation getLineDash()]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL

View file

@ -1,18 +0,0 @@
[sequence-conversion.html]
[An array]
expected: FAIL
[A generator]
expected: FAIL
[An array with an overridden Symbol.iterator]
expected: FAIL
[An array with an overridden Symbol.iterator on the prototype]
expected: FAIL
[An array with an overridden %ArrayIterator%.prototype.next]
expected: FAIL
[A holey array with fallback to an accessor on the prototype]
expected: FAIL