Problem
The bytecode compiler already lowers object destructuring assignments when a computed key, default initializer, or target contains yield, but compileObjectPattern rejects every assignment pattern with an object rest property. For example, a generator containing ({ key: value = yield, ...rest } = source) is forced back to the tree-walker even though the suspension requires resumable bytecode.
This is a real admission gap under #465, independent of stack/queue/job work.
Required semantics
- Preserve ECMA-262 RestDestructuringAssignmentEvaluation ordering: evaluate the rest assignment target before creating/copying the rest object, then perform PutValue.
- Preserve computed member target evaluation and ToPropertyKey timing exactly once.
- Support identifier, ordinary member, and
superrest assignment targets accepted by the parser. - Retain CopyDataProperties own-key ordering, exclusion, getter, symbol, and abrupt-completion behavior through the existing
object_restopcode. - Add compiler admission and runtime coverage for suspension plus observable rest-target/copy ordering.
Acceptance
- Yield-aware object assignment patterns with rest compile in generator bytecode.
- Rest target evaluation precedes CopyDataProperties and PutValue follows it.
- Existing focused unit and Test262 boundaries show no regressions.
Related: #465