Skip to main content

Module events

Module events 

Source

Functions§

animation_event_ctor 🔒
new AnimationEvent(type, options)(丸ごと未対応だった。CSS アニメーション 完了シミュレーションの el.dispatchEvent(new AnimationEvent ('animationend', {animationName})) という定番パターン)。基底の Event プロパティは event_ctor を再利用し、animationName/ elapsedTime/pseudoElement を追加する。
bc_registry 🔒
broadcast_channel_ctor 🔒
broadcast_channel_post_message 🔒
channel.postMessage(data)。仕様どおり送信元自身へは配送しない (同名の他インスタンス全てへ message_port_deliver で配送する)。
clipboard_event_ctor 🔒
new ClipboardEvent(type, options)(丸ごと未対応だった。el.dispatchEvent (new ClipboardEvent('paste', {clipboardData})) というコピー&ペースト シミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、clipboardData のみ追加する(本物の DataTransfer 実装はこの処理系に無いため、渡された値をそのまま透過する 簡略実装)。
command_event_ctor 🔒
new CommandEvent(type, options)(Invoker Commands API / WHATWG HTML Standard。 <button command="..." commandfor="..."> のアクション時に発火するイベント。 command/source をプロパティとして保持する)。
composition_event_ctor 🔒
new CompositionEvent(type, options)(丸ごと未対応だった。IME 変換中の el.dispatchEvent(new CompositionEvent('compositionupdate', {data})) というシミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、data のみ追加する。
custom_event_ctor 🔒
new CustomEvent(type, {detail, bubbles, cancelable})。以前は options.bubbles を一切読まず常に false を決め打ちしていたため、new CustomEvent('x', {bubbles: true}) が矛盾した bubbles === false なイベントになるバグだった (event_ctorbubbles を正しく読んでいたのに、こちらだけ漏れていた)。
drag_event_ctor 🔒
new DragEvent(type, options)(丸ごと未対応だった。el.dispatchEvent(new DragEvent('drop', {dataTransfer})) というドラッグ&ドロップシミュレー ションの定番パターン)。仕様どおり MouseEvent を継承するため mouse_event_ctor をそのまま土台にし、dataTransfer を追加する(本物の DataTransfer 実装はこの処理系に無いため、渡された値をそのまま透過する 簡略実装)。
error_event_ctor 🔒
new ErrorEvent(type, options)(丸ごと未対応だった。reportError() は 内部でこの形の Event を素朴な Obj::plain() で組み立てていたが、 ユーザーコードから直接構築するコンストラクタ自体が存在しなかった)。 基底の Event プロパティは event_ctor を再利用し、 message/filename/lineno/colno/error を追加する。
event_ctor 🔒
event_prevent_default 🔒
new Event(type, {bubbles, cancelable}) → 最小限の Event オブジェクト。 event.preventDefault()new Event()/new CustomEvent() で手動構築した イベント向け)。以前は無条件 no-op で defaultPrevented を一切追跡せず、 EventTarget.dispatchEvent() の戻り値(!defaultPrevented)が常に trueに なってしまうバグだった。仕様どおり cancelable: false の場合は何もしない。
event_stop_immediate_propagation 🔒
event_target_add_event_listener 🔒
target.addEventListener(type, fn, options)。他の EventTarget 風オブジェクト (XHR/AbortSignal 等)と違い、こちらは仕様どおり型ごとに複数リスナを保持する (同じ関数参照の重複登録は無視する)。第3引数の {once} は保持され、 dispatchEvent 側で初回呼び出し後に自動解除する。capture は元々 「DOM ツリーを持たないこのクラスでは意味を持たないため無視する」設計 だったが、document.addEventListenerwindow_api.rsdocument_add_ event_listener)がこの実装を再利用するようになった(2026-07-16)ため、 documentに対してはcaptureフェーズでの発火判定に使う必要が生じ、 エントリの4要素目として保持するよう拡張した(既存のXHR/AbortSignal 等の呼び出し元は4要素目を単に読まないため無害)。
event_target_composed_path 🔒
event.composedPath()EventTarget 経路用)。DOM ツリーが無いこのクラスでは dispatchEvent 中のみ target プロパティが設定されるため、それを利用して 「発火中は [target]、発火前は []」という簡略化した経路を返す。
event_target_ctor 🔒
event_target_dispatch_event 🔒
target.dispatchEvent(event)。仕様どおり !event.defaultPrevented を返す。
event_target_listener_aborted 🔒
リスナ格納エントリの {signal} が abort 済みかどうか(addEventListener{signal} オプション。丸ごと未対応だった。2026-07-14 発見・実装)。
event_target_listener_capture 🔒
リスナ格納エントリの capture フラグを取り出す(4要素目。document のキャプチャフェーズ発火判定用に2026-07-16新設。他のEventTarget風 オブジェクト(XHR/AbortSignal等)は3要素のまま登録されることがあり、 その場合は get(3)None になり false へ安全にフォールバックする)。
event_target_listener_cb 🔒
リスナ格納エントリ([cb, once] の2要素配列)から実際のコールバックを取り出す。
event_target_listener_once 🔒
リスナ格納エントリの once フラグを取り出す。
event_target_listeners 🔒
event_target_remove_event_listener 🔒
target.removeEventListener(type, fn, options)。仕様どおり (listener, capture) の組が一致するエントリのみを取り除く。以前は capture を 一切見ず cb のみで判定していたため、同じ関数を {capture:true}/ {capture:false} で2回登録した場合に removeEventListener('type', fn)capture 省略=既定 false)を呼ぶと両方まとめて消えてしまい、 capture 側だけ残す意図が達成できないバグだった(documentのcapture 対応〔2026-07-16〕でcaptureをエントリへ保持するようになったことで 顕在化・同日発見・修正)。
event_target_stop_propagation 🔒
event.stopPropagation()EventTarget 経路用)。DOM ツリーが無いため 伝播そのものを止める効果は無い(dom_noop と同じ no-op)が、レガシー event.cancelBubble が丸ごと未対応で追従していなかったバグの修正として フラグだけは立てる。
focus_event_ctor 🔒
new FocusEvent(type, options)(丸ごと未対応だった。el.dispatchEvent(new FocusEvent('focusout', {relatedTarget})) というフォーカス移動 シミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、relatedTarget のみ追加する。
form_data_event_ctor 🔒
new FormDataEvent(type, options)(WHATWG HTML Standard。<form> 発火の formdata イベント向け。formData をプロパティとして保持する)。
hash_change_event_ctor 🔒
new HashChangeEvent(type, options)(丸ごと未対応だった。 window.addEventListener('hashchange', ...) 自体は既に登録経路が あったが、oldURL/newURL を持つ専用イベントコンストラクタが無く window.dispatchEvent(new HashChangeEvent('hashchange', {oldURL, newURL})) というシミュレーションの定番パターンが使えなかった)。 基底の Event プロパティは event_ctor を再利用する。
input_event_ctor 🔒
new InputEvent(type, options)(丸ごと未対応だった。el.dispatchEvent(new InputEvent('input', {data:'a', inputType:'insertText'})) という入力 シミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、data/inputType/isComposing を追加する。
keyboard_event_ctor 🔒
new KeyboardEvent(type, options)(丸ごと未対応だった。el.dispatchEvent (new KeyboardEvent('keydown', {key:'a', code:'KeyA'})) というキーボード 操作シミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、key/code/keyCode(レガシー)/which (レガシー)/location/repeat/修飾キー4種を追加する。
message_channel_ctor 🔒
message_event_ctor 🔒
new MessageEvent(type, options)(丸ごと未対応だった。window. postMessage()/reportError() は内部でこの形の Event を素朴な Obj::plain() で組み立てていたが、ユーザーコードから同じ形を dispatchEvent シミュレーション用に直接構築するコンストラクタ自体が 存在しなかった)。基底の Event プロパティは event_ctor を再利用し、 data/origin/lastEventId/source/ports を追加する。
message_port_close 🔒
message_port_deliver 🔒
相手ポートへ message イベントを配送する。port.onmessage = fn(単一 リスナ方式)と port.addEventListener('message', fn)(複数リスナ方式) の両方をサポートする(他の EventTarget 風オブジェクトと同じ二重経路)。
message_port_is_closed 🔒
message_port_new 🔒
message_port_post_message 🔒
port.postMessage(data)structuredClone と同じアルゴリズムでデータを 複製してから相手側ポートへ同期配送する(close() 済みのポートからは 送信しても無視する)。
mouse_event_ctor 🔒
new MouseEvent(type, options)(丸ごと未対応だった。el.dispatchEvent(new MouseEvent('click', {clientX, clientY})) というポインタ操作シミュレー ションの定番パターン)。基底の Event プロパティは event_ctor を 再利用し、座標系4種/button/buttons/修飾キー4種/relatedTarget を 追加する。
page_transition_event_ctor 🔒
new PageTransitionEvent(type, options)(丸ごと未対応だった。 window.addEventListener('pageshow'/'pagehide', ...) を BFCache シミュレーションでテストする定番パターン向け)。
pointer_event_ctor 🔒
new PointerEvent(type, options)(丸ごと未対応だった。el.dispatchEvent (new PointerEvent('pointerdown', {pointerId, pointerType:'touch'})) というポインタ入力シミュレーションの定番パターン)。仕様どおり MouseEvent を継承するため mouse_event_ctor をそのまま土台にし、 pointerId/width/height/pressure/tangentialPressure/tiltX/ tiltY/twist/pointerType/isPrimary を追加する。
pop_state_event_ctor 🔒
new PopStateEvent(type, options)(丸ごと未対応だった。2026-07-17 発見。実ナビゲーション経由のpopstate発火(interp.rsfire_ popstate)は既にstateプロパティ付きで正しく動いていたが、 window.dispatchEvent(new PopStateEvent('popstate', {state}))という 手動シミュレーションの定番パターン向けの専用コンストラクタ自体が 無かった)。基底の Event プロパティは event_ctor を再利用する。
progress_event_ctor 🔒
new ProgressEvent(type, options)(丸ごと未対応だった。xhr. dispatchEvent(new ProgressEvent('progress', {loaded, total}))/ fetch 進捗イベントのシミュレーション定番パターン)。基底の Event プロパティは event_ctor を再利用し、lengthComputable/loaded/ total を追加する。
storage_event_ctor 🔒
new StorageEvent(type, options)(丸ごと未対応だった。window. dispatchEvent(new StorageEvent('storage', {key, newValue, oldValue})) というクロスタブ同期シミュレーションの定番パターン。この処理系には 実際の複数タブ間 localStorage 同期機構は無いため、コンストラクタ経由の 手動発火のみをサポートする簡略実装)。基底の Event プロパティは event_ctor を再利用し、key/oldValue/newValue/url/storageArea を追加する。
submit_event_ctor 🔒
new SubmitEvent(type, options)(丸ごと未対応だった。form. dispatchEvent(new SubmitEvent('submit', {submitter})) という「どの ボタンで送信されたか」を伝えるシミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、submitter のみ追加する。
toggle_event_ctor 🔒
new ToggleEvent(type, options)(WHATWG HTML Standard。<details>popover 等の トグル状態で発火するイベント。oldState/newState をプロパティとして保持する)。
touch_ctor 🔒
new Touch(options)(Touch Events。丸ごと未対応だった)。この処理系の USB HID スタックはマウス/キーボードのみでタッチスクリーン入力自体を 生成しないが、new TouchEvent(...) でタッチ操作をシミュレートする テストコードから使われる定番パターンのため、コンストラクタ自体は 対応する(実際のタッチ入力イベント発火経路は無い)。
touch_event_ctor 🔒
new TouchEvent(type, options)(丸ごと未対応だった。touches/ targetTouches/changedTouches は仕様上 TouchList だが、この 処理系は他のイベント同様プレーンな配列で簡略表現する。基底の Event プロパティは event_ctor を再利用する。
transition_event_ctor 🔒
new TransitionEvent(type, options)(丸ごと未対応だった。CSS トランジション 完了シミュレーションの定番パターン)。基底の Event プロパティは event_ctor を再利用し、propertyName/elapsedTime/pseudoElement を追加する。
wheel_event_ctor 🔒
new WheelEvent(type, options)(丸ごと未対応だった。el.dispatchEvent(new WheelEvent('wheel', {deltaY})) というホイール操作シミュレーションの 定番パターン)。仕様どおり MouseEvent を継承するため mouse_event_ctor をそのまま土台にし、deltaX/deltaY/deltaZ/deltaMode を追加する。