diff --git a/crates/js/src/dom_bridge.rs b/crates/js/src/dom_bridge.rs index eac948b..c687922 100644 --- a/crates/js/src/dom_bridge.rs +++ b/crates/js/src/dom_bridge.rs @@ -1941,7 +1941,7 @@ pub fn run_event_dispatch(vm: &mut Vm, target_idx: usize, event_ref: GcRef) -> V _ => false, }; - if bubbles { + if bubbles && !is_propagation_stopped(&vm.gc, event_ref) { set_builtin_prop(&mut vm.gc, event_ref, "eventPhase", Value::Number(3.0)); set_builtin_prop(&mut vm.gc, event_ref, EVENT_PHASE_KEY, Value::Number(3.0)); @@ -2069,10 +2069,6 @@ fn invoke_listeners( if is_immediate_stopped(&vm.gc, event_ref) { break; } - if is_propagation_stopped(&vm.gc, event_ref) && capture_only { - break; - } - // Set `this` to currentTarget for the callback. let old_this = vm.get_global("this").cloned(); vm.set_global("this", Value::Object(current_target_wrapper));