diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index ef158e5c332..d019b498de5 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -3213,12 +3213,14 @@ impl Document { // Breaking potential re-borrow cycle on `resize_observers`: // broadcasting resize observations calls into a JS callback, // which can add new observers. - for observer in self + let iterator: Vec> = self .resize_observers .borrow() .iter() - .map(|obs| DomRoot::from_ref(&**obs)) - { + .cloned() + .map(|obs| DomRoot::from_ref(&*obs)) + .collect(); + for observer in iterator { observer.broadcast_active_resize_observations(&mut shallowest, can_gc); } shallowest diff --git a/tests/wpt/meta/resize-observer/calculate-depth-for-node.html.ini b/tests/wpt/meta/resize-observer/calculate-depth-for-node.html.ini index 5fb84219874..4e3c57f9422 100644 --- a/tests/wpt/meta/resize-observer/calculate-depth-for-node.html.ini +++ b/tests/wpt/meta/resize-observer/calculate-depth-for-node.html.ini @@ -1,4 +1,5 @@ [calculate-depth-for-node.html] - expected: CRASH + expected: ERROR + ["Calculate depth for node" algorithm with Shadow DOM] expected: FAIL