script: Mark callback methods with CanGc. (#35753)

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
Josh Matthews 2025-03-03 07:17:25 -05:00 committed by GitHub
parent 3d320fa96a
commit 5650fa2e79
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 133 additions and 67 deletions

View file

@ -103,7 +103,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
}
// https://dom.spec.whatwg.org/#dom-nodeiterator-nextnode
fn NextNode(&self) -> Fallible<Option<DomRoot<Node>>> {
fn NextNode(&self, can_gc: CanGc) -> Fallible<Option<DomRoot<Node>>> {
// https://dom.spec.whatwg.org/#concept-NodeIterator-traverse
// Step 1.
let node = self.reference_node.get();
@ -116,7 +116,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
before_node = false;
// Step 3-2.
let result = self.accept_node(&node)?;
let result = self.accept_node(&node, can_gc)?;
// Step 3-3.
if result == NodeFilterConstants::FILTER_ACCEPT {
@ -131,7 +131,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
// Step 3-1.
for following_node in node.following_nodes(&self.root_node) {
// Step 3-2.
let result = self.accept_node(&following_node)?;
let result = self.accept_node(&following_node, can_gc)?;
// Step 3-3.
if result == NodeFilterConstants::FILTER_ACCEPT {
@ -147,7 +147,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
}
// https://dom.spec.whatwg.org/#dom-nodeiterator-previousnode
fn PreviousNode(&self) -> Fallible<Option<DomRoot<Node>>> {
fn PreviousNode(&self, can_gc: CanGc) -> Fallible<Option<DomRoot<Node>>> {
// https://dom.spec.whatwg.org/#concept-NodeIterator-traverse
// Step 1.
let node = self.reference_node.get();
@ -160,7 +160,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
before_node = true;
// Step 3-2.
let result = self.accept_node(&node)?;
let result = self.accept_node(&node, can_gc)?;
// Step 3-3.
if result == NodeFilterConstants::FILTER_ACCEPT {
@ -175,7 +175,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
// Step 3-1.
for preceding_node in node.preceding_nodes(&self.root_node) {
// Step 3-2.
let result = self.accept_node(&preceding_node)?;
let result = self.accept_node(&preceding_node, can_gc)?;
// Step 3-3.
if result == NodeFilterConstants::FILTER_ACCEPT {
@ -198,7 +198,7 @@ impl NodeIteratorMethods<crate::DomTypeHolder> for NodeIterator {
impl NodeIterator {
// https://dom.spec.whatwg.org/#concept-node-filter
fn accept_node(&self, node: &Node) -> Fallible<u16> {
fn accept_node(&self, node: &Node, can_gc: CanGc) -> Fallible<u16> {
// Step 1.
if self.active.get() {
return Err(Error::InvalidState);
@ -217,7 +217,7 @@ impl NodeIterator {
// Step 5.
self.active.set(true);
// Step 6.
let result = callback.AcceptNode_(self, node, Rethrow);
let result = callback.AcceptNode_(self, node, Rethrow, can_gc);
// Step 7.
self.active.set(false);
// Step 8.