Skip to main content

Module extra_methods

Module extra_methods 

Source

Functions§

arr_at 🔒
arr_entries 🔒
arr_find_last 🔒
arr_find_last_index 🔒
arr_flat_map 🔒
arr_keys 🔒
arr_reduce_right 🔒
arr_values 🔒
iterator_concat_static
Iterator.concat(...iterables)(ES2025 Standard)。 複数のイテラブルオブジェクトの要素を順番に連結した新しい Iterator を返す。
iterator_drop
Iterator.prototype.drop(n)(ES2025)。
iterator_every
iterator_filter
Iterator.prototype.filter(fn)(ES2025)。
iterator_find
iterator_flat_map
Iterator.prototype.flatMap(fn)(ES2025 Iterator Helpers。map/filter/take/ drop/toArray/forEach/reduce/some/every/find は既に対応済みだったが、 この提案の最後の1つが丸ごと未対応だった)。各要素にコールバックを適用し、 その戻り値(イテラブルであることが前提)を1段だけ展開して連結する (Array.prototype.flatMap と同じ「1段だけ」の展開規則)。
iterator_for_each
Iterator.prototype.forEach(fn)(ES2025)。
iterator_from_static
Iterator.from(iterable)(ES2025 Standard)。 指定されたイテラブルオブジェクトから Iterator オブジェクトを返す。
iterator_map
Iterator.prototype.map(fn)(ES2025 Iterator Helpers)。
iterator_next
iterator_reduce
Iterator.prototype.reduce(fn, initial?)(ES2025)。
iterator_remaining 🔒
make_iterator() の残り要素(_pos 以降)を取り出し、消費済みにする(_pos を末尾へ 進める)。Iterator Helpers(ES2025: map/filter/take/drop/toArray/forEach/ reduce)用の共通ヘルパ。仕様上これらは遅延評価(要素を1つずつ必要な分だけ取り出す) だが、本エンジンの軽量イテレータ表現(_items/_pos を持つ Obj::host("iterator")) では、呼び出し時点で残り要素をまとめて処理する即時評価で近似する(無限イテレータの take 等、遅延性に依存するケースは非対応。他の組込み簡略化と同種の割り切り)。
iterator_self
iterator_some
Iterator.prototype.some(fn)/.every(fn)/.find(fn)(ES2025 Iterator Helpers。 map/filter/take/drop/toArray/forEach/reduce は既に対応済みだったが、 同じ提案に含まれるこの3つが丸ごと未対応だった)。他のヘルパと同じ「残り要素を まとめて処理する即時評価」方式(無限イテレータには非対応の簡略実装)。
iterator_take
Iterator.prototype.take(n)(ES2025)。
iterator_to_array
Iterator.prototype.toArray()(ES2025)。
make_iterator
entries/keys/values が返すべき本物の Iterator オブジェクト(.next()/ [Symbol.iterator] を持つ)を、Obj::host("iterator") + 内部プロパティ _items/_pos で近似する(ObjKind に新しい variant を追加すると全 exhaustive match への波及が大きいため、既存の Host タグ機構に乗せる軽量な実装)。以前は単なる配列を 返しており、for...of(配列自体が for-of 可能なため気づかれなかった)は動くが const it = arr.values(); it.next() のような明示的なイテレータプロトコル駆動が 「next が存在しない」で壊れていた。
promise_all_settled_static 🔒
promise_any_static 🔒
Promise.any(iterable)(ES2021)。以前は全て reject した場合に最後の reject 理由 だけをそのまま投げており、仕様上必要な AggregateError.errors に全 reject 理由を 保持する専用の例外型。AggregateError 自体が丸ごと欠落していた)を一切使っていなかった。 途中の理由が失われる(1つ目が reject でも最後だけ見える)バグも合わせて修正。
promise_race_static 🔒
resolve_maybe_thenable 🔒
値を「Promise 化した状態」に正規化する共通ヘルパ。本物の Promise ならその state、汎用 thenable(.then を持つがそれ自体は Promise ではないオブジェクト。 Promise.resolve/await は同化に対応済みだったが allSettled/race/any の 配列要素だけ「非 Promise」として素通ししてしまう非対称なバグがあった)なら 新規 pending state を作って promise_resolve(thenable 同化に対応済み)に通す。 どちらでもなければ None(呼び出し側は元の値をそのまま扱う)。
str_at 🔒