From 271dfaed2b15251861bc3bb5748d1d062da3c084 Mon Sep 17 00:00:00 2001 From: Monti-27 Date: Fri, 27 Mar 2026 20:12:55 +0530 Subject: [PATCH] fix abortsignal event names --- core/runtime/src/abort/mod.rs | 2 +- core/runtime/src/abort/tests.rs | 45 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/core/runtime/src/abort/mod.rs b/core/runtime/src/abort/mod.rs index 6fddc490b83..0834b497ec6 100644 --- a/core/runtime/src/abort/mod.rs +++ b/core/runtime/src/abort/mod.rs @@ -159,7 +159,7 @@ impl JsAbortSignal { context: &mut Context, ) -> JsResult<()> { if event_type.to_std_string_escaped() != "abort" { - return Err(js_error!(TypeError: "AbortSignal only supports the 'abort' event type")); + return Ok(()); } if self.aborted.get() { callback.call(&JsValue::undefined(), &[], context)?; diff --git a/core/runtime/src/abort/tests.rs b/core/runtime/src/abort/tests.rs index 5c6bfb1d71d..4ccc2e3ebff 100644 --- a/core/runtime/src/abort/tests.rs +++ b/core/runtime/src/abort/tests.rs @@ -117,6 +117,51 @@ fn add_event_listener_fires_on_abort() { ]); } +#[test] +fn add_event_listener_ignores_unknown_event_names() { + run_test_actions([ + TestAction::run( + r" + let ctrl = new AbortController(); + let called = false; + ctrl.signal.addEventListener('nope', function() { + called = true; + }); + ctrl.abort(); + ", + ), + TestAction::inspect_context(|ctx| { + ctx.run_jobs().unwrap(); + }), + TestAction::run( + r" + if (called) { + throw new Error('unknown event listener should not fire'); + } + ", + ), + ]); +} + +#[test] +fn add_event_listener_ignores_unknown_event_names_after_abort() { + run_test_actions([TestAction::run( + r" + let ctrl = new AbortController(); + ctrl.abort(); + + let called = false; + ctrl.signal.addEventListener('nope', function() { + called = true; + }); + + if (called) { + throw new Error('unknown event listener should not fire after abort'); + } + ", + )]); +} + #[test] fn multiple_listeners() { run_test_actions([