w3c / css-houdini-drafts

Mirror of https://hg.css-houdini.org/drafts
https://drafts.css-houdini.org/
Other
1.84k stars 141 forks source link

[css-paint-api] Paint worklets need to do the state setup other specs expect before calling JS constructors #918

Open bzbarsky opened 5 years ago

bzbarsky commented 5 years ago

https://drafts.css-houdini.org/css-paint-api-1/#invoke-a-paint-callback step 5.3 does:

Let paintInstance be the result of Construct(paintCtor).

but doesn't define the state changes necessary to do things like handle Promises queued from inside the constructor and whatnot. See https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-script and https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script

Depending on what things the constructor can be here, https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-a-callback and https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-a-callback might be needed too.

In general, using https://heycam.github.io/webidl/#construct-a-callback-function here instead of manually calling https://tc39.es/ecma262/#sec-construct might be a good idea.

bzbarsky commented 5 years ago

Also, this would let you make it clear what the return value of the constructor is expected to be, by just writing it clearly in the IDL. Presumably just object in this case.