You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spread: [...arr] on a class X extends Array instance throws "value is not iterable" #7541
so one of is_array_subclass_instance or array_subclass_has_iterator_override is answering wrong for an instance produced by the inherited Array.from (MyArr.from(...)), and the value then falls all the way through to throw_not_iterable. Worth checking whether a directly-constructed new MyArr(...) behaves differently from an inherited-static-produced one — that split is the known-weak "native base-class subclassing" family (CLAUDE.md).
Provenance
Found while building a 32-case [...arr] semantics matrix for #7533. Pre-existing: reproduces byte-identically at f06270d06 (before the #7495/#7516/#7527 rooting stack) and is unchanged by #7540's dense fast path, which deliberately excludes subclass instances — they are GC_TYPE_OBJECT, not GC_TYPE_ARRAY, so they never reach the copy.
Every other case in that matrix matches node, including holes, sparse arrays, past-capacity indices, frozen arrays, index accessors, own @@iterator, strings, Set, Map, generators, arr.values()/arr.entries(), multi-element and call spreads.
Activity
docs(changelog): name the two pre-existing spread divergences by issue (
docs(changelog): name the two pre-existing spread divergences by issue (
perf(array): copy an ordinary dense array's spread instead of driving…
fix(runtime): dispatch inherited Array statics on a subclass construc…
fix(runtime): dispatch inherited Array statics on a subclass construc…
fix(runtime): dispatch inherited Array statics on a subclass construc…
fix(runtime): dispatch inherited Array statics on a subclass construc…
fix(instanceof): a monomorphized generic class is an instance of its …
fix(runtime): resolve inherited static getters in the class-id chain,…