ladybird/Tests/LibJS/Bytecode/expected/destructuring-let-compound-assign.txt
Andreas Kling bf530ad2af LibJS: Fix destructured primitive string const loops
Mark binding-pattern identifiers with their declaration kind so local
destructuring assignments use the normal TDZ and const assignment path.
This makes local const destructuring match the environment-backed path.

Also teach GetById to expose primitive string virtual index properties
before boxing, matching StringGetOwnProperty and GetByValue. Together
these fix the SpiderMonkey for-in/of const declaration coverage and the
lexical destructuring TDZ test.
2026-05-22 01:56:57 +02:00

31 lines
870 B
Text

$1857aec1 destructuring-let-compound-assign.js:5:1
Registers: 9
Blocks: 1
Constants:
[0] = Undefined
block0:
[ 0] GetGlobal dst:reg6, `f`
[ 10] NewObject dst:reg7
[ 20] NewObject dst:reg8
[ 30] Call dst:reg5, callee:reg6, this_value:Undefined, f, arguments:[reg7, reg8]
[ 58] End value:reg5
f$ffd4f57c destructuring-let-compound-assign.js:2:5
Registers: 8
Blocks: 1
Locals: a~0
Constants:
[0] = Int32(16)
[1] = Undefined
block0:
[ 0] ThrowIfNullish src:arg0
[ 8] GetById dst:reg5, base:arg0, `patchFlag`
[ 20] Mov3 dst1:a~0, src1:reg5, dst2:reg5, src2:a~0, dst3:reg6, src3:arg1
[ 40] GetById dst:reg7, base:reg6, `patchFlag` (e.patchFlag)
[ 58] BitwiseAnd dst:reg6, lhs:Int32(16), rhs:reg7
[ 68] BitwiseOr dst:reg7, lhs:reg5, rhs:reg6
[ 78] Mov dst:a~0, src:reg7
[ 88] End value:Undefined