pub(crate) fn attach_iterator_helpers(obj: &ObjRef)Expand description
Iterator.from(iterable)(ES2025)。任意のイテラブル(配列/Set/Map/Generator/文字列)を
即座に展開して ObjKind::Array でラップし、Iterator helpers 一式にアクセスできるようにする。
map/filter/flatMap/forEach/some/every/find/reduce は Array.prototype の
同名メソッドが(このプロパティルックアップでは配列の組込みメソッド判定が .props より
先に評価されるため)そのまま使われ、take/drop/toArray(Array に無いメソッド)のみを
.props として追加する。Generator と同じ「その場で全展開する」簡略実装(無限イテレータ非対応)。
take/drop(ES2025 Iterator Helpers)が返す新しい配列オブジェクトへ、
同じヘルパーメソッド一式を再付与する。以前はIterator.from(...)が返す
最初のオブジェクトにしかこれらのメソッドが付与されておらず、.take(n)/
.drop(n)自身が返す新しい配列オブジェクトには引き継がれないため、
Iterator.from([...]).take(2).toArray()のような定番のチェーン呼び出しが
2段目のメソッド呼び出しで「not a function」になって失敗するバグだった。