Skip to main content

abort_signal_any

Function abort_signal_any 

Source
pub(crate) fn abort_signal_any(
    it: &mut Interp,
    _t: Value,
    a: &[Value],
) -> Result<Value, Value>
Expand description

AbortSignal.any(iterable)(ES2024)。渡した signal 群のいずれかが中断された 時点で中断される合成 signal を返す(複数の中断条件を1つの signal にまとめる 定番パターン)。既存の addEventListener('abort', fn) は「on<type> に単一 リスナを格納する」簡略実装のため、入力 signal 側に別のリスナが既に登録済みだと 上書きしてしまう制約がある(この処理系の EventTarget 系オブジェクト全般に 共通の既知の簡略化)。abort_signal_timeout と同じ理由(ネイティブ関数は クロージャで値を束縛できない)で、入力配列をグローバルの一時変数経由で 渡した上で eval_source に組み立てた JS を実行する。