script: Include constructors and static methods in generated DOM traits (#33665)

* Add all constructors, special operations, and static methods to generated DOM interface traits.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Move all constructors and static methods defined in bare impl blocks inside FooMethods trait impls.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Add missing doc links.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
Josh Matthews 2024-10-07 21:51:58 -04:00 committed by GitHub
parent 946fa9cdee
commit 7d931e673a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
133 changed files with 1479 additions and 1438 deletions

View file

@ -26,6 +26,34 @@ pub struct WebGLContextEvent {
}
impl WebGLContextEventMethods for WebGLContextEvent {
// https://registry.khronos.org/webgl/specs/latest/1.0/#5.15
fn Constructor(
window: &Window,
proto: Option<HandleObject>,
can_gc: CanGc,
type_: DOMString,
init: &WebGLContextEventInit,
) -> Fallible<DomRoot<WebGLContextEvent>> {
let status_message = match init.statusMessage.as_ref() {
Some(message) => message.clone(),
None => DOMString::new(),
};
let bubbles = EventBubbles::from(init.parent.bubbles);
let cancelable = EventCancelable::from(init.parent.cancelable);
Ok(WebGLContextEvent::new_with_proto(
window,
proto,
Atom::from(type_),
bubbles,
cancelable,
status_message,
can_gc,
))
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
fn StatusMessage(&self) -> DOMString {
self.status_message.clone()
@ -86,32 +114,4 @@ impl WebGLContextEvent {
event
}
#[allow(non_snake_case)]
pub fn Constructor(
window: &Window,
proto: Option<HandleObject>,
can_gc: CanGc,
type_: DOMString,
init: &WebGLContextEventInit,
) -> Fallible<DomRoot<WebGLContextEvent>> {
let status_message = match init.statusMessage.as_ref() {
Some(message) => message.clone(),
None => DOMString::new(),
};
let bubbles = EventBubbles::from(init.parent.bubbles);
let cancelable = EventCancelable::from(init.parent.cancelable);
Ok(WebGLContextEvent::new_with_proto(
window,
proto,
Atom::from(type_),
bubbles,
cancelable,
status_message,
can_gc,
))
}
}