Skip to main content

make_iterator

Function make_iterator 

Source
pub fn make_iterator(items: Vec<Value>) -> ObjRef
Expand description

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 が存在しない」で壊れていた。